ImageVerifierCode 换一换
格式:DOCX , 页数:163 ,大小:888.59KB ,
资源ID:949271      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-949271.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第14章安全引擎mpc83xx中文手册Word格式文档下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

第14章安全引擎mpc83xx中文手册Word格式文档下载.docx

1、 RNG随机数发生器 XOR奇偶生成加速器,应用于RAID应用 主/从逻辑,拥有DMA能力 32位地址/64位数据 高达200MHz的操作 主接口允许多个流水式请求 DMA数据块可为任意字节边界 四个通道,每个通道都支持命令队列(描述符指针) 通过集成控制器动态分配加密执行单元 在每个执行单元的输入和输出路径上都有256位的先进先出(FIFO)缓冲区,并对大长度数据进行流量控制 分散/聚集(Scatter/Gather)能力 聚集能力使SEC 2.4在读取输入数据时能将存储器中的多个段连接起来 相似的,分散能力使SEC 2.4在写输出数据时能可以将数据写到多个段中14.2 体系结构概述SEC

2、2.4(以后简称SEC)可以在内部总线上充当主设备的角色。这使得SEC能减轻与仅从(模式?)(slave-only)核相关的数据转移的瓶颈问题。主处理器通过它的设备驱动访问SEC,在这个过程中使用系统存储器存储数据。SEC驻留在处理器的外部存贮器映射中,因此,当有应用需要加密功能时,它仅需要为SEC创建描述符,描述符定义要执行的加密方法和数据的地址。SEC的总线主控能力使得主处理器使用几个短小的寄存器写操作建立加密通道,而让SEC在系统存储器上进行读和写操作,完成所请求的任务。图14-1显示了SEC通过内部总线与其他单元的通信图14-1 连接到MPC8349E内部总线的SEC图14-2显示了S

3、EC内部体系结构的结构图。总线和SEC的内部寄存器通过总线接口模块进行64位的数据传输。图14-2 SEC功能模块当主机在SEC的四个通道中的任何一个的取FIFO队列中写入一个描述符指针时,就开始一个操作。从这一点开始,通道将控制操作的顺序。通道使用描述符指针来读取描述符,读取之后,对描述符的第一个字进行解码,以决定要选择执行的操作和执行该操作的加密执行单元。通道请求控制器分配所需要的加密执行单元。接下来,通道请求控制器取出密钥和数据,它们的位置在描述符的剩余部分确定。控制器为了满足通道的请求,按照可编程优先级方案向主接口发出请求。数据通过执行单元的寄存器和输入FIFO送入相应的执行单元。这些

4、单元从各自的输入FIFO中读取数据,把处理过的数据写入输出FIFO中。通道向控制器发出请求,控制器通过主/从接口将输出FIFO和寄存器中的数据写回到系统存储器。对于大多数分组来说,全部有效载荷太长,无法匹配执行单元的输入和输出FIFO,因此,SEC采用了一种流量控制方案对数据进行读写。通道指示控制器读取必要数量的输入以填充输入FIFO,直到全部的有效负载都被取出。同样,当执行单元的输出FIFO累积了足够长的空间时,通道指示控制器将几块输出写入执行单元的输出FIFO.14.2.1 数据分组描述符作为一个加密加速部件,SEC控制器被设计成可以容易使用,并且能和已有的系统及软件进行集成。所有的加密功

5、能都可以通过描述符进行访问。描述符指定了要执行的加密功能,并包含了一些指针,这些指针指向所有必要的输入数据和输出数据所要写入的位置。一些描述符类型可以执行多个功能,为特定协议提供了方便。表14-1显示的是一个数据分组的描述符。表14-1 数据分组描述符字段名值/类型说明DPD_DES_CTX_CRYPTTBD代表使用上下文进行加密的DES的首部LEN_CTXINPTR_CTXIN长度指针要写的字节数要写入DES引擎的上下文IV的指针LEN_KEYPTR_KEY密钥的字节数分组加密(block cipher)密钥的指针LEN_DATAINPTR_DATAIN需要加密的数据的字节数要进行加密的数据

6、的指针LEN_DATAOUTPTR_DATAOUT加密后的数据的字节数要写入加密输出的位置的指针LEN_CTXOUTPTR_CTXOUT输出上下文IV的长度要写入改变了的上下文的位置的指针Null lengthNull pointer对固定长度的描述符过滤器为0对固定长度的描述符过滤器为空长度(Length)指针(Pointer)每个描述符都包括8个长字,每个为64位。其组成如下: 一个长字的首部首部描述所需要的服务和一些编码信息。这些信息指示要使用哪些EU和设置哪些模式。它还指示当描述符操作完成时,是否需要通知主机。 七个长字,它们包含用来定位输入或输出数据的指针和长度。每个指针可以直接指向

7、数据,也可以指向一个链接表,该链接表将数据段连接在一起。更多信息请参见14.4节“描述符概述”。14.2.2 执行单元(Execution Unit)执行单元是一个一般术语,指的是一个加密处理协议的要求执行数学排列(?)的功能部件。执行单元与IPSec、IKE、SSL/TLS、iSCSI、SRTP以及802.11i处理兼容,它们可以协作执行高级的加密任务。SEC的执行单元如下: PKEU用于计算非对称密钥操作,包括模指数(和其他的模算法函数)或ECC指针算法 DEU用于执行使用DES和3DES的分组加密,对称密钥加密 AFEU用于执行兼容RC的流密码对称密钥加密 AESU用于执行高级加密标准算

8、法和XOR加速 MDEU用于执行使用MD-5、SHA-1或SHA-256的安全散列算法 RNG用于随机数生成14.5节“执行单元”中对每一个执行单元进行了详细描述。14.2.2.1 公共密钥执行单元(PKEU)PKEU可以执行很多高级数学函数,支持RSA和ECC公开密钥加密算法。ECC在F2m(基于多项式的)和F(p)模式中支持。该EU支持所有级别的功能,以帮助主微处理器执行其所需要的加密任务。例如,在最高级,加速器执行模指数支持RSA算法,执行点乘支持ECC算法。在较低级别,PKEU可以执行一些简单的操作,例如模乘。更多信息参见14.5.1节“公开密钥执行单元(PKEU)”。14.2.2.1

9、.1 椭圆曲线运算PKEU有其自己的数据和控制单元,包括一个通用寄存器组,该寄存器组位于可编程大小的算术单元里。字段或模数的大小可以设定160位到512位之间的任意值,增量值为8,可编程。即每个变量i支持的实际字段的大小为8i-7至8i。其结果是由硬件支持一个范围很大的密码安全机制。大的字段或模数产生很高的安全性,但是性能较低;执行时间是由字段或模数的大小决定的。例如,如果字段长度为160位,则其提供的安全性与1024位的RSA大致相当。字段长度为208位,则其安全性与2048位的RSA相当。PKEU包含了为椭圆曲线处理实现原子函数的特定程序点算术运算和有限字段算术运算。点运算(乘、加、加倍)

10、包含一个或多个有限字段运算,即加、乘、求反和平方。点加和加倍运算每个都使用了这四种操作。类似的,点乘运算使用了所有的EC点乘和有限字段运算。所有这些功能在模运算和基于多项式的有限字段中都支持。14.2.2.1.2 模指数(Modular Exponentiation)运算PKEU还可以执行常规整数模算法。该运算是RSA公开密钥算法的整数部分,但它还可在ECC数字签名的生成和Diffie-Hellman密钥交换中发挥作用。SEC的PKEU支持的模算法函数如下: R2 mod N AE mod N (A B) R1 mod N B) R2 mod N (A + B) mod N (A B) mod

11、 N其中,有如下参数定义:A=AR mod N,N为模向量,A和B为输入向量,E为指数向量,R为2 s 。N向量向上舍入为最接近的32的倍数,该数的位长即为s。PKEU可以为最大长度为2048位的操作数执行模运算。模必须大或等于97位(13 个字节)。不将其视为一个限制,因为对于长度比该数值小的数据,没有有效的加密应用存在。而且对于较小长度的数据,使用硬件加速不是很恰当。PKEU使用Montgomery模乘算法执行核心功能。加减功能用来支持已知的中国余数定理,以更好的执行RSA算法。14.2.2.2 数据加密标准执行单元(DEU Data Encryption Standad Executio

12、n Unit)DES执行单元(DEU)依照数据加密标准算法(ANSI x3.92)执行批量数据的加密和解密。DEU也可以计算3DES,3DES是DES算法的扩展,在该算法中,每一个64位的输入块都被处理三次。SEC支持双密钥(K1=K3)或三密钥3DES。DEU的执行使用一个共享的56位密钥和一个初始化向量(IV),对64位的数据块进行序列置换。SEC支持两种操作模式:电子编码簿(electronic code book ECB)和加密时钟链接(cipher clock chaining CBC)。更多信息参见14.5.2节 “数据加密标准执行单元(DEU)”。14.2.2.3 ARC四执行单

13、元(AFEU ARC Four Execution Unit)AFEU对一种批量加密算法进行加速,该算法与RSA安全公司的RC4流加密兼容。该算法是面向字节的,也就是说,一个字节的明文通过一个密钥被加密为一个字节的密文。该密钥的长度是可变的,且AFEU支持的密钥长度为8位到128位,这就提供了一个范围比较大的安全强度。ARC4是一个对称算法,即通信双方共享同一个密钥。更多信息请参见14.5.3节 “ARC四执行单元(A7FEU)”。14.2.2.4 高级加密标准执行单元(AESU Advanced Encryption Standad Execution Unit)AESU对符合高级加密标准(

14、Rijndael)算法的批量数据加密/解密进行加速。AESU在128 位的分组上执行,密钥的长度可以选择为:128、192或256位。AESU是一个对称密钥算法,发送方和接收方使用相同的密钥进行加密和解密。在加密之前将会话密钥(session key)和IV提供给AESU模块。处理器将数据处理为128位的输入提供给该模块。AESU可以运行在ECB、CBC、CTR和CCM模式。AESU也被用来执行异或(XOR)操作,异或操作被用来产生用于RAID存储应用的奇偶数据。当在该种模式下进行处理时,不使用会话密钥,而且AESU可以对最多3个数据流同时进行XOR操作,以产生奇偶数据。更多信息请参见14.5

15、.4节 “高级加密标准执行单元(AESU)”。14.2.2.5 报文摘要执行单元(MDEU Message Digest Execution Unit)MDEU使用作用于批量数据散列操作的MD5、SHA1或SHA256算法,为出现在输入总线上的所有数据计算一个单一报文摘要(散列或完成性检验)值。利用任意散列算法,将较大的报文映射到一个比较小的输出空间中;因此可能存在冲突,虽然不大会发生。160位的散列值是一个足够大的空间,使得冲突非常少。散列函数的安全性基于定位冲突的难度,也就是说,在计算理论上,两个相似但不同的报文是不可能产生相同的散列输出的。 MD5生成一个128位的哈希值;该算法在RFC

16、 1321规定 SHA1是一个160位的散列函数,在ANSI X9.30-2和 FIPS 180-1标准中规定 SHA-224和SHA256是加密的散列函数,它们提供了防止冲突冲击的完整保护 MDEU还支持HMAC计算 ,在RFC2104规定更多信息请参见14.5.4节 “报文摘要执行单元(MDEU)”。14.2.2.6 随机数发生器(RNG Random Number Generator)RNG是一个用于生成64位随机数的功能部件。它的随机性和不确定性遵从FIPS140-1标准。因为许多加密算法都使用随机数产生加密值(一个临时值),因此SEC使用一个私有的RNG是非常必要的。必须维持每一个随

17、机数的匿名性,以及下一个随机数的不可预知性。符合FIPS140标准的私有RNG允许系统产生随机的请求(challenge)或随机密钥,所以该密钥可以在更高级别的应用代码中保持隐藏,提供一个附加的物理安全方法。更多信息请参见14.5.5节 “随机数发生器(RNG)”。14.2.3 加密通道 SEC包括四个管理数据和EU功能的加密通道。每个通道的组成如下: 一个取FIFO,包保存等待服务的描述符的指针队列 一个配置寄存器,它允许用户选择SEC事件信号 多个控制寄存器,包括正在处理的事务的信息 一个状态寄存器,包括最后一个未完成的总线请求的指示 一个描述符缓冲区,用于保存活动的描述符 分散和聚集链表

18、缓冲区,用于保存活动的链表只要通道空闲且其取FIFO非空,通道就从取FIFO读取下一个描述符指针。使用该指针,通道取出描述符,并将它放入其描述符缓冲区。为服务该描述符,通道按下列步骤控制执行。1. 分析描述符首部,确定所需要的加密服务,向控制器请求使用合适的EU。2. 等待控制器准许访问所请求的EU。3. 为请求的服务设置EU中的适当的模式位。4. 使用来自描述符缓冲区的指针取出“数据包”,经它们放入EU输入FIFO或EU寄存器(适当的)中。术语数据报在这里是指任何加密处理的输入或输出,例如密钥、散列结果、输入上下文、输出上下文或文本数据。“上下文”是指要处理的明文或密文。5. 如果数据长度超

19、过EU FIFO的大小,继续取输入数据,并将输出数据写入存贮器。6. 等待EU完成处理。7. 完成时,从输出FIFO和上下文寄存器卸载结果,使用描述符缓冲区中的指针,将它们写入外部存贮器。8. 如果请求多个服务,返回到步骤3。9. 释放EU。(注意,在以前的Freescale安全协处理器中,可以为多个描述符的使用保留EU。利用SEC 2.4增加的功能,这种静态分配已没有必要,且不再支持。在描述符完成后,始终释放EU。)10. 如果描述符首部允许完成通知,执行该通知。 通道可以通过中断或将描述符首部写回主机存贮器的方式通知主机它处理完了描述符。在写回方式中,写回的值与所读取的值相同,只是将完成字

20、段置为全1。此外,可以把通道配置为在每个描述符结束时或在所选择的描述符结束时发出通知。关于配置信号的更多信息参见14.6.1.1节“加密通道配置寄存器(CCCR)”。 许多安全协议包括加密和分组有效载荷的散列。为做到这一点而不需要两次通过数据,通道可以配置数据流,让它通过多个EU。在这种情况下,一个EU是主EU,其他则为辅EU。主EU通过控制器从存贮器接收数据,辅EU通过监听SEC总线接收数据。 由两种类型的监听: 把数据送给主EU,辅EU监听相同的输入数据。称之为内监听(in-snooping)。 辅EU可以监听主EU的输出数据。称之为外监听(out-snooping)。 在SEC中,辅EU

21、始终为MDEU。 更多信息参见14.6节“加密通道”。14.2.4 SEC控制器 SEC控制器管理片上资源,包括各个执行单元(EU)、FIFO、主/从接口和连接所有不同模块的内部总线。控制器接收来自主/从接口和各个加密通道的服务请求,并调度所请求的服务。控制器可以按两种模式配置每个片上资源: 主机控制的访问主机直接负责将所有数据移入和移出资源。该模式通常只在调试模式中使用。 通道控制的访问通道可以从任何可用的执行单元请求一个特殊服务。这是正常操作状态。 系统总线接口和对系统存贮器的访问是性能的关键因素,SEC控制器的64位主/从接口允许它获得辅(secondary)总线不可能达到的性能。14.

22、2.4.1 主机控制的访问 完全通过寄存器读/写访问就可以使用所有的执行单元。SEC作为从设备操作,主机必须将写信息定位到SEC的适合寄存器和FIFO中。写信息通常通过描述符提供。该模式更是CPU密集型的,需要大量使用SEC寄存器。推荐仅为使用一个EU的操作或为调试目的使用主机控制的访问。更多信息参见14.7节“控制器”。14.2.4.2 通道控制的访问 当把一个描述符指针写入一个通道的取FIFO时,处理开始。根据描述符首部所请求的服务,通道向控制器申请为它分配必要的EU。如果所有合适的EU都已经被其他通道占用,则该通道停止,并等待取数据,直到合适的EU可用为止。如果多个通道同时请求同一EU,

23、则按加权优先级或轮转方法分配EU。 一旦得到了所请求的EU,通道就请求控制器取出并装入合适的数据。控制器作为系统总线上的主设备工作,按字节边界读和写数据。通道操作EU,进一步请求控制器把输出数据写入系统存贮器。当描述符处理完毕时,通道请求控制器释放EU,让其他通道使用。14.2.5 总线接口 主/从接口管理SEC内部执行单元与MPC8349E内部总线的通信。所有的片上资源都是内存映射的,可以按字节边界处理对SEC的从访问。SEC执行按字节边界执行发起者读操作,在内部调整数据,按适合的字边界存放。系统总线接口和对系统存贮器的访问是性能的关键因素,SEC控制器的64位主/从接口允许它获得辅(sec

24、ondary)总线不可能达到的性能。更多信息参见14.8节“总线接口”。14.3 内存空间的配置表14-2给出了基址映射,表14-3提供了地址映射,包括执行单元中的所有寄存器。给出了18位的SEC地址总线值。这些地址值是距内存映射的寄存器基址的偏移量,该基址在IMMRBAR中设定。更多信息参见2.2节“完全IMMR映射”。注意,这些表用的是模8地址,未给出用于64位字中选择字节的三个最低有效位。表14-2 SEC基址映射偏移量模块类型节/页0x3_00000x3_0FFF 保留0x3_10000x3_10FF控制器仲裁器/控制器控制寄存器空间资源控制14.7/14-920x3_11000x3_

25、11FF通道1加密通道1数据控制14.6/14-810x3_12000x3_12FF通道2加密通道20x3_13000x3_13FF通道3加密通道30x3_14000x3_14FF通道4加密通道40x3_20000x3_20FFDEUDES/3DES 执行单元14.5.2/14-340x3_40000x3_40FFAESUAES 执行单元14.5.6/14-680x3_60000x3_60FFMDEU报文摘要执行单元14.5.4/14-510x3_80000x3_8FFFAFEUARC四执行单元14.5.3/14-420x3_A0000x3_AFFFRNG随机数发生器14.5.5/14-630

26、x3_C0000x3_CFFFPKEU公开密钥执行单元14.5.1/14-26表14-3给出了所有功能寄存器的系统地址映射。在偏移量0x0000xFFF之间未定义的4字节地址空间是保留的。表14-3 SEC地址映射寄存器访问控制复位控制器寄存器0x3_1008IMR中断屏蔽寄存器R/W0x0000_0000_0000_000014.7.2.1/14-940x3_1010ISR中断状态寄存器R14.7.2.2/14-950x3_1018ICR中断清除寄存器W14.7.2.3/14-950x3_1020ID标识寄存器0x0000_0000_0000_004014.7.2.4/14-970x3_10

27、28EUASREU分配状态寄存器0xF0F0_F0F0_00FF_F0F014.7.2/14-930x3_1030MCR主控制寄存器0000_0000_0000_000014.7.2.5/14-970x3_1108CCCR1加密通道1配置寄存器14.6.1.1/14-820x3_1110CCPSR1加密通道1指针状态寄存器0x0000_0000_0000_000714.6.1.2/14-840x3_1140CDPR1加密通道1当前描述符指针寄存器14.6.1.3/14-900x3_1148FF1加密通道1取FIFO 地址寄存器14.6.1.4/14-900x3_11800x3_11BFDBn加密通道1描述符缓冲区0714.6.1.5/14-910x3_1

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2