版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第14章 安全引擎(Security Engine)本章对MPC8349E集成安全引擎(SEC 2.4)的功能进行了描述。分为如下主题:14.1节,“概述”14.2节,“体系结构概述”14.3节,“内存空间的配置“14.4节,“描述符概述”14.5节,“执行单元“14.6节,“加密通道”14.7节,“控制器“14.8节,“总线接口”14.9节,“省电模式“14.1 概述SEC 2.4的设计目的是将计算密集型的安全功能从MPC8349E的处理器核心中转移出去,这些功能包括:密钥的生成和交换、认证、批量加密等。它经过优化,可以处理与 IPsec、IKE、SSL/TLS、iSCSI、SRTP和802
2、.11i相关的算法。SEC 2.4(应用于MPC8349E)源自基于PowerQUICC 家族中其他成员的集成安全核心,这些成员包括应用于MPC8272/MPC8248的SEC 1.0版本。该安全引擎的执行单元和主要特性如下:l PKEU公共密钥执行单元,支持:n RSA和Diffie-Hellman算法u 可编程字段最大为2048位n 椭圆曲线加密算法(Elliptic curve cryptography)u F2m和F(p)模式u 可编程字段最大为511位l DEU数据加密标准执行单元n DES,3DES算法n 在3DES算法中使用双密钥(K1,K2,K1)或者三密钥(K1,K2,K3)
3、n 在DES和3DES中使用ECB和CBC模式l AESU高级加密标准单元n 实现Rijndael对称密钥加密算法n ECB,CBC,CCM和计数器模式n 128位,192位,256位密钥长度l AFEUARC四执行单元n 实现了一个流加密,兼容RC4算法n 40位到128位可编程密钥l MDEU报文摘要执行单元n SHA模式,报文摘要为160位、224位、或256位n MD5模式,报文摘要可为128位n HMAC,可以使用上面两种算法l RNG随机数发生器l XOR奇偶生成加速器,应用于RAID应用l 主/从逻辑,拥有DMA能力n 32位地址/64位数据n 高达200MHz的操作n 主接口允
4、许多个流水式请求n DMA数据块可为任意字节边界l 四个通道,每个通道都支持命令队列(描述符指针)n 通过集成控制器动态分配加密执行单元n 在每个执行单元的输入和输出路径上都有256位的先进先出(FIFO)缓冲区,并对大长度数据进行流量控制l 分散/聚集(Scatter/Gather)能力n 聚集能力使SEC 2.4在读取输入数据时能将存储器中的多个段连接起来n 相似的,分散能力使SEC 2.4在写输出数据时能可以将数据写到多个段中14.2 体系结构概述SEC 2.4(以后简称SEC)可以在内部总线上充当主设备的角色。这使得SEC能减轻与仅从(模式?)(slave-only)核相关的数据转移的
5、瓶颈问题。主处理器通过它的设备驱动访问SEC,在这个过程中使用系统存储器存储数据。SEC驻留在处理器的外部存贮器映射中,因此,当有应用需要加密功能时,它仅需要为SEC创建描述符,描述符定义要执行的加密方法和数据的地址。SEC的总线主控能力使得主处理器使用几个短小的寄存器写操作建立加密通道,而让SEC在系统存储器上进行读和写操作,完成所请求的任务。图14-1显示了SEC通过内部总线与其他单元的通信图14-1 连接到MPC8349E内部总线的SEC图14-2显示了SEC内部体系结构的结构图。总线和SEC的内部寄存器通过总线接口模块进行64位的数据传输。图14-2 SEC功能模块当主机在SEC的四个
6、通道中的任何一个的取FIFO队列中写入一个描述符指针时,就开始一个操作。从这一点开始,通道将控制操作的顺序。通道使用描述符指针来读取描述符,读取之后,对描述符的第一个字进行解码,以决定要选择执行的操作和执行该操作的加密执行单元。通道请求控制器分配所需要的加密执行单元。接下来,通道请求控制器取出密钥和数据,它们的位置在描述符的剩余部分确定。控制器为了满足通道的请求,按照可编程优先级方案向主接口发出请求。数据通过执行单元的寄存器和输入FIFO送入相应的执行单元。这些单元从各自的输入FIFO中读取数据,把处理过的数据写入输出FIFO中。通道向控制器发出请求,控制器通过主/从接口将输出FIFO和寄存器
7、中的数据写回到系统存储器。对于大多数分组来说,全部有效载荷太长,无法匹配执行单元的输入和输出FIFO,因此,SEC采用了一种流量控制方案对数据进行读写。通道指示控制器读取必要数量的输入以填充输入FIFO,直到全部的有效负载都被取出。同样,当执行单元的输出FIFO累积了足够长的空间时,通道指示控制器将几块输出写入执行单元的输出FIFO.14.2.1 数据分组描述符作为一个加密加速部件,SEC控制器被设计成可以容易使用,并且能和已有的系统及软件进行集成。所有的加密功能都可以通过描述符进行访问。描述符指定了要执行的加密功能,并包含了一些指针,这些指针指向所有必要的输入数据和输出数据所要写入的位置。一
8、些描述符类型可以执行多个功能,为特定协议提供了方便。表14-1显示的是一个数据分组的描述符。表14-1 数据分组描述符字段名值/类型说明DPD_DES_CTX_CRYPTTBD代表使用上下文进行加密的DES的首部LEN_CTXINPTR_CTXIN长度指针要写的字节数要写入DES引擎的上下文IV的指针LEN_KEYPTR_KEY长度指针密钥的字节数分组加密(block cipher)密钥的指针LEN_DATAINPTR_DATAIN长度指针需要加密的数据的字节数要进行加密的数据的指针LEN_DATAOUTPTR_DATAOUT长度指针加密后的数据的字节数要写入加密输出的位置的指针LEN_CTX
9、OUTPTR_CTXOUT长度指针输出上下文IV的长度要写入改变了的上下文的位置的指针Null lengthNull pointer长度指针对固定长度的描述符过滤器为0对固定长度的描述符过滤器为空Null lengthNull pointer长度(Length)指针(Pointer)对固定长度的描述符过滤器为0对固定长度的描述符过滤器为空每个描述符都包括8个长字,每个为64位。其组成如下:l 一个长字的首部首部描述所需要的服务和一些编码信息。这些信息指示要使用哪些EU和设置哪些模式。它还指示当描述符操作完成时,是否需要通知主机。l 七个长字,它们包含用来定位输入或输出数据的指针和长度。每个指针
10、可以直接指向数据,也可以指向一个链接表,该链接表将数据段连接在一起。更多信息请参见14.4节“描述符概述”。14.2.2 执行单元(Execution Unit)执行单元是一个一般术语,指的是一个加密处理协议的要求执行数学排列(?)的功能部件。执行单元与IPSec、IKE、SSL/TLS、iSCSI、SRTP以及802.11i处理兼容,它们可以协作执行高级的加密任务。SEC的执行单元如下:l PKEU用于计算非对称密钥操作,包括模指数(和其他的模算法函数)或ECC指针算法l DEU用于执行使用DES和3DES的分组加密,对称密钥加密l AFEU用于执行兼容RC的流密码对称密钥加密l AESU用
11、于执行高级加密标准算法和XOR加速l MDEU用于执行使用MD-5、SHA-1或SHA-256的安全散列算法l RNG用于随机数生成14.5节“执行单元”中对每一个执行单元进行了详细描述。14.2.2.1 公共密钥执行单元(PKEU)PKEU可以执行很多高级数学函数,支持RSA和ECC公开密钥加密算法。ECC在F2m(基于多项式的)和F(p)模式中支持。该EU支持所有级别的功能,以帮助主微处理器执行其所需要的加密任务。例如,在最高级,加速器执行模指数支持RSA算法,执行点乘支持ECC算法。在较低级别,PKEU可以执行一些简单的操作,例如模乘。更多信息参见14.5.1节“公开密钥执行单元(PKE
12、U)”。14.2.2.1.1 椭圆曲线运算PKEU有其自己的数据和控制单元,包括一个通用寄存器组,该寄存器组位于可编程大小的算术单元里。字段或模数的大小可以设定160位到512位之间的任意值,增量值为8,可编程。即每个变量i支持的实际字段的大小为8i-7至8i。其结果是由硬件支持一个范围很大的密码安全机制。大的字段或模数产生很高的安全性,但是性能较低;执行时间是由字段或模数的大小决定的。例如,如果字段长度为160位,则其提供的安全性与1024位的RSA大致相当。字段长度为208位,则其安全性与2048位的RSA相当。PKEU包含了为椭圆曲线处理实现原子函数的特定程序点算术运算和有限字段算术运算
13、。点运算(乘、加、加倍)包含一个或多个有限字段运算,即加、乘、求反和平方。点加和加倍运算每个都使用了这四种操作。类似的,点乘运算使用了所有的EC点乘和有限字段运算。所有这些功能在模运算和基于多项式的有限字段中都支持。14.2.2.1.2 模指数(Modular Exponentiation)运算PKEU还可以执行常规整数模算法。该运算是RSA公开密钥算法的整数部分,但它还可在ECC数字签名的生成和Diffie-Hellman密钥交换中发挥作用。SEC的PKEU支持的模算法函数如下:l R2 mod Nl AE mod Nl (A × B) R1 mod Nl (A × B)
14、 R2 mod Nl (A + B) mod Nl (A B) mod 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 数据加密标准执行单元(D
15、EU Data Encryption Standad Execution 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节
16、 “数据加密标准执行单元(DEU)”。14.2.2.3 ARC四执行单元(AFEU ARC Four Execution Unit)AFEU对一种批量加密算法进行加速,该算法与RSA安全公司的RC4流加密兼容。该算法是面向字节的,也就是说,一个字节的明文通过一个密钥被加密为一个字节的密文。该密钥的长度是可变的,且AFEU支持的密钥长度为8位到128位,这就提供了一个范围比较大的安全强度。ARC4是一个对称算法,即通信双方共享同一个密钥。更多信息请参见14.5.3节 “ARC四执行单元(A7FEU)”。14.2.2.4 高级加密标准执行单元(AESU Advanced Encryption St
17、andad Execution Unit)AESU对符合高级加密标准(Rijndael)算法的批量数据加密/解密进行加速。AESU在128 位的分组上执行,密钥的长度可以选择为:128、192或256位。AESU是一个对称密钥算法,发送方和接收方使用相同的密钥进行加密和解密。在加密之前将会话密钥(session key)和IV提供给AESU模块。处理器将数据处理为128位的输入提供给该模块。AESU可以运行在ECB、CBC、CTR和CCM模式。AESU也被用来执行异或(XOR)操作,异或操作被用来产生用于RAID存储应用的奇偶数据。当在该种模式下进行处理时,不使用会话密钥,而且AESU可以对最
18、多3个数据流同时进行XOR操作,以产生奇偶数据。更多信息请参见14.5.4节 “高级加密标准执行单元(AESU)”。14.2.2.5 报文摘要执行单元(MDEU Message Digest Execution Unit)MDEU使用作用于批量数据散列操作的MD5、SHA1或SHA256算法,为出现在输入总线上的所有数据计算一个单一报文摘要(散列或完成性检验)值。利用任意散列算法,将较大的报文映射到一个比较小的输出空间中;因此可能存在冲突,虽然不大会发生。160位的散列值是一个足够大的空间,使得冲突非常少。散列函数的安全性基于定位冲突的难度,也就是说,在计算理论上,两个相似但不同的报文是不可能
19、产生相同的散列输出的。l MD5生成一个128位的哈希值;该算法在RFC 1321规定l SHA1是一个160位的散列函数,在ANSI X9.30-2和 FIPS 180-1标准中规定l SHA-224和SHA256是加密的散列函数,它们提供了防止冲突冲击的完整保护l MDEU还支持HMAC计算 ,在RFC2104规定更多信息请参见14.5.4节 “报文摘要执行单元(MDEU)”。14.2.2.6 随机数发生器(RNG Random Number Generator)RNG是一个用于生成64位随机数的功能部件。它的随机性和不确定性遵从FIPS140-1标准。因为许多加密算法都使用随机数产生加密
20、值(一个临时值),因此SEC使用一个私有的RNG是非常必要的。必须维持每一个随机数的匿名性,以及下一个随机数的不可预知性。符合FIPS140标准的私有RNG允许系统产生随机的请求(challenge)或随机密钥,所以该密钥可以在更高级别的应用代码中保持隐藏,提供一个附加的物理安全方法。更多信息请参见14.5.5节 “随机数发生器(RNG)”。14.2.3 加密通道SEC包括四个管理数据和EU功能的加密通道。每个通道的组成如下:l 一个取FIFO,包保存等待服务的描述符的指针队列l 一个配置寄存器,它允许用户选择SEC事件信号l 多个控制寄存器,包括正在处理的事务的信息l 一个状态寄存器,包括最
21、后一个未完成的总线请求的指示l 一个描述符缓冲区,用于保存活动的描述符l 分散和聚集链表缓冲区,用于保存活动的链表只要通道空闲且其取FIFO非空,通道就从取FIFO读取下一个描述符指针。使用该指针,通道取出描述符,并将它放入其描述符缓冲区。为服务该描述符,通道按下列步骤控制执行。1. 分析描述符首部,确定所需要的加密服务,向控制器请求使用合适的EU。2. 等待控制器准许访问所请求的EU。3. 为请求的服务设置EU中的适当的模式位。4. 使用来自描述符缓冲区的指针取出“数据包”,经它们放入EU输入FIFO或EU寄存器(适当的)中。术语数据报在这里是指任何加密处理的输入或输出,例如密钥、散列结果、
22、输入上下文、输出上下文或文本数据。“上下文”是指要处理的明文或密文。5. 如果数据长度超过EU FIFO的大小,继续取输入数据,并将输出数据写入存贮器。6. 等待EU完成处理。7. 完成时,从输出FIFO和上下文寄存器卸载结果,使用描述符缓冲区中的指针,将它们写入外部存贮器。8. 如果请求多个服务,返回到步骤3。9. 释放EU。(注意,在以前的Freescale安全协处理器中,可以为多个描述符的使用保留EU。利用SEC 2.4增加的功能,这种静态分配已没有必要,且不再支持。在描述符完成后,始终释放EU。)10. 如果描述符首部允许完成通知,执行该通知。通道可以通过中断或将描述符首部写回主机存贮
23、器的方式通知主机它处理完了描述符。在写回方式中,写回的值与所读取的值相同,只是将完成字段置为全1。此外,可以把通道配置为在每个描述符结束时或在所选择的描述符结束时发出通知。关于配置信号的更多信息参见14.6.1.1节“加密通道配置寄存器(CCCR)”。许多安全协议包括加密和分组有效载荷的散列。为做到这一点而不需要两次通过数据,通道可以配置数据流,让它通过多个EU。在这种情况下,一个EU是主EU,其他则为辅EU。主EU通过控制器从存贮器接收数据,辅EU通过监听SEC总线接收数据。由两种类型的监听:l 把数据送给主EU,辅EU监听相同的输入数据。称之为内监听(in-snooping)。l 辅EU可
24、以监听主EU的输出数据。称之为外监听(out-snooping)。在SEC中,辅EU始终为MDEU。更多信息参见14.6节“加密通道”。14.2.4 SEC控制器SEC控制器管理片上资源,包括各个执行单元(EU)、FIFO、主/从接口和连接所有不同模块的内部总线。控制器接收来自主/从接口和各个加密通道的服务请求,并调度所请求的服务。控制器可以按两种模式配置每个片上资源:l 主机控制的访问主机直接负责将所有数据移入和移出资源。该模式通常只在调试模式中使用。l 通道控制的访问通道可以从任何可用的执行单元请求一个特殊服务。这是正常操作状态。系统总线接口和对系统存贮器的访问是性能的关键因素,SEC控制
25、器的64位主/从接口允许它获得辅(secondary)总线不可能达到的性能。14.2.4.1 主机控制的访问完全通过寄存器读/写访问就可以使用所有的执行单元。SEC作为从设备操作,主机必须将写信息定位到SEC的适合寄存器和FIFO中。写信息通常通过描述符提供。该模式更是CPU密集型的,需要大量使用SEC寄存器。推荐仅为使用一个EU的操作或为调试目的使用主机控制的访问。更多信息参见14.7节“控制器”。14.2.4.2 通道控制的访问当把一个描述符指针写入一个通道的取FIFO时,处理开始。根据描述符首部所请求的服务,通道向控制器申请为它分配必要的EU。如果所有合适的EU都已经被其他通道占用,则该
26、通道停止,并等待取数据,直到合适的EU可用为止。如果多个通道同时请求同一EU,则按加权优先级或轮转方法分配EU。一旦得到了所请求的EU,通道就请求控制器取出并装入合适的数据。控制器作为系统总线上的主设备工作,按字节边界读和写数据。通道操作EU,进一步请求控制器把输出数据写入系统存贮器。当描述符处理完毕时,通道请求控制器释放EU,让其他通道使用。14.2.5 总线接口主/从接口管理SEC内部执行单元与MPC8349E内部总线的通信。所有的片上资源都是内存映射的,可以按字节边界处理对SEC的从访问。SEC执行按字节边界执行发起者读操作,在内部调整数据,按适合的字边界存放。系统总线接口和对系统存贮器
27、的访问是性能的关键因素,SEC控制器的64位主/从接口允许它获得辅(secondary)总线不可能达到的性能。更多信息参见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控制器仲
28、裁器/控制器控制寄存器空间资源控制14.7/14-920x3_11000x3_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-4
29、20x3_A0000x3_AFFFRNG随机数发生器14.5.5/14-630x3_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中断状态寄存器R0x0000_0000_0000_000014.7.2.2/14-950x3_1018ICR中断清除寄存器W0x00
30、00_0000_0000_000014.7.2.3/14-950x3_1020ID标识寄存器R0x0000_0000_0000_004014.7.2.4/14-970x3_1028EUASREU分配状态寄存器R0xF0F0_F0F0_00FF_F0F014.7.2/14-930x3_1030MCR主控制寄存器R/W0000_0000_0000_000014.7.2.5/14-97通道10x3_1108CCCR1加密通道1配置寄存器R/W0x0000_0000_0000_000014.6.1.1/14-820x3_1110CCPSR1加密通道1指针状态寄存器R0x0000_0000_0000_0
31、00714.6.1.2/14-840x3_1140CDPR1加密通道1当前描述符指针寄存器R0x0000_0000_0000_000014.6.1.3/14-900x3_1148FF1加密通道1取FIFO 地址寄存器W0x0000_0000_0000_000014.6.1.4/14-900x3_11800x3_11BFDBn加密通道1描述符缓冲区07R0x0000_0000_0000_000014.6.1.5/14-91通道20x3_1208CCCR2加密通道2配置寄存器R/W0x0000_0000_0000_000014.6.1.1/14-820x3_1210CCPSR2加密通道2指针状态寄
32、存器R0x0000_0000_0000_000714.6.1.2/14-840x3_1240CDPR2加密通道2当前描述符指针寄存器R0x0000_0000_0000_000014.6.1.3/14-900x3_1248FF2加密通道2取FIFO 地址寄存器W0x0000_0000_0000_000014.6.1.4/14-900x3_12800x3_12BFDBn加密通道2描述符缓冲区07R0x0000_0000_0000_000014.6.1.5/14-91通道30x3_1308CCCR3加密通道3配置寄存器R/W0x0000_0000_0000_000014.6.1.1/14-820x3
33、_1310CCPSR3加密通道3指针状态寄存器R0x0000_0000_0000_000714.6.1.2/14-840x3_1340CDPR3加密通道3当前描述符指针寄存器R0x0000_0000_0000_000014.6.1.3/14-900x3_1348FF3加密通道3取FIFO 地址寄存器W0x0000_0000_0000_000014.6.1.4/14-900x3_13800x3_13BFDBn加密通道3描述符缓冲区07R0x0000_0000_0000_000014.6.1.5/14-91通道40x3_1408CCCR4加密通道4配置寄存器R/W0x0000_0000_0000_
34、000014.6.1.1/14-820x3_1410CCPSR4加密通道4指针状态寄存器R0x0000_0000_0000_000714.6.1.2/14-840x3_1440CDPR4加密通道4当前描述符指针寄存器R0x0000_0000_0000_000014.6.1.3/14-900x3_1448FF4加密通道4取FIFO 地址寄存器W0x0000_0000_0000_000014.6.1.4/14-900x3_14800x3_14BFDBn加密通道4描述符缓冲区07R0x0000_0000_0000_000014.6.1.5/14-91数据加密标准执行单元(DEU)0x3_2000 D
35、EUMRDEU模式寄存器R/W0x0000_0000_0000_000014.5.2.1/14-340x3_2008 DEUKSRDEU密钥长度寄存器R/W0x0000_0000_0000_000014.5.2.2/14-350x3_2010 DEUDSRDEU数据长度寄存器R/W0x0000_0000_0000_000014.5.2.3/14-360x3_2018 DEURCRDEU复位控制寄存器R/W0x0000_0000_0000_000014.5.2.4/14-360x3_2028 DEUSRDEU状态寄存器R0x0000_0000_0000_000014.5.2.5/14-370x3
36、_2030 DEUISRDEU中断状态寄存器R0x0000_0000_0000_000014.5.2.6/14-380x3_2038 DEUICRDEU中断控制寄存器R/W0x0000_0000_0000_300014.5.2.7/14-400x3_2050 DEUEUGDEU EU-Go寄存器W0x0000_0000_0000_000014.5.2.8/14-410x3_2100 DEUIVDEU初始向量寄存器R/W0x0000_0000_0000_000014.5.2.9/14-420x3_2400 DEUK1DEU密钥寄存器 1W14.5.2.10/14-420x3_2408 DEUK2
37、DEU密钥寄存器 2W14.5.2.10/14-420x3_2410 DEUK3DEU密钥寄存器 3W14.5.2.10/14-420x3_28000x3_2FFFDEU FIFOR/W0x0000_0000_0000_000014.5.2.11/14-42高级数据加密标准执行单元(AESU)0x3_4000 AESUMRAESU模式寄存器R/W0x0000_0000_0000_000014.5.6.1/14-680x3_4008 AESUKSRAESU密钥长度寄存器R/W0x0000_0000_0000_000014.5.6.2/14-710x3_4010 AESUDSRAESU数据长度寄存
38、器R/W0x0000_0000_0000_000014.5.6.3/14-710x3_4018 AESURCRAESU复位控制寄存器R/W0x0000_0000_0000_000014.5.6.4/14-720x3_4028 AESUSRAESU状态寄存器R0x0000_0000_0000_000014.5.6.5/14-730x3_4030 AESUISRAESU中断状态寄存器R0x0000_0000_0000_000014.5.6.6/14-740x3_4038 AESUICRAESU中断控制寄存器R/W0x0000_0000_0000_100014.5.6.7/14-750x3_4050
39、 AESUEMRAESU报文结束寄存器W0x0000_0000_0000_000014.5.6.8/14-760x3_4100 AESU上下文存贮器寄存器R/W0x0000_0000_0000_000014.5.6.9/14-770x3_44000x3_4408AESU密钥存储器R/W0x0000_0000_0000_000014.5.6.9.5/14-810x3_48000x3_4FFFAESU FIFO R/W0x0000_0000_0000_000014.5.6.9.6/14-81报文摘要执行单元(MDEU)0x3_6000 MDEUMRMDEU模式寄存器R/W0x0000_0000_0
40、000_000014.5.4.1/14-510x3_6008 MDEUKSRMDEU密钥长度寄存器R/W0x0000_0000_0000_000014.5.4.3/14-550x3_6010 MDEUDSRMDEU数据长度寄存器R/W0x0000_0000_0000_000014.5.4.4/14-560x3_6018 MDEURCRMDEU复位控制寄存器R/W0x0000_0000_0000_000014.5.4.5/14-560x3_6028 MDEUSRMDEU状态寄存器R0x0000_0000_0000_000014.5.4.6/14-570x3_6030 MDEUISRMDEU中断状
41、态寄存器R0x0000_0000_0000_000014.5.4.7/14-580x3_6038 MDEUICRMDEU中断控制寄存器R/W0x0000_0000_0000_100014.5.4.8/14-590x3_6040 MDEUICVSRMDEU ICV长度寄存器R/W0x0000_0000_0000_000014.5.4.9/14-600x3_6050 MDEUEUGMDEU EU-Go寄存器W0x0000_0000_0000_000014.5.4.10/14-610x3_61000x3_6120MDEU上下文存贮器寄存器R/W0x0000_0000_0000_000014.5.4.
42、11/14-610x3_64000x3_647FMDEU密钥存储器W0x0000_0000_0000_000014.5.4.12/14-620x3_68000x3_6FFFMDEU FIFOW0x0000_0000_0000_000014.5.4.13/14-63ARC四执行单元(AFEU)0x3_8000 AFEUMRAFEU模式寄存器R/W0x0000_0000_0000_000014.5.3.1/14-430x3_808 AFEUKSRAFEU密钥长度寄存器R/W0x0000_0000_0000_000014.5.3.3/14-440x3_8010 AFEUDSRAFEU数据长度寄存器R
43、/W0x0000_0000_0000_000014.5.3.4/14-450x3_8018 AFEURCRAFEU复位控制寄存器R/W0x0000_0000_0000_000014.5.3.5/14-460x3_8028 AFEUSRAFEU状态寄存器R0x0000_0000_0000_000014.5.3.6/14-460x3_8030 AFEUISRAFEU中断状态寄存器R0x0000_0000_0000_000014.5.3.7/14-470x3_8038 AFEUICRAFEU中断控制寄存器R/W0x0000_0000_0000_100014.5.3.8/14-490x3_8050 A
44、FEUEMRAFEU报文结束寄存器W0x0000_0000_0000_000014.5.3.9/14-500x3_81000x3_81FFAFEU上下文存贮器寄存器R/W0x0000_0000_0000_000014.5.3.10.1/14-500x3_8200 AFEU上下文存贮器指针R/W0x0000_0000_0000_000014.5.3.10.2/14-510x3_8400 AFEUK0AFEU密钥寄存器 0W14.5.3.11/14-510x3_848 AFEUK1AFEU密钥寄存器1 W14.5.3.11/14-510x3_88000x3_8FFFAFEU FIFOR/W0x00
45、00_0000_0000_000014.5.3.11.1/14-51随机数发生器(RNG)0x3_A000 RNGMRRNG模式寄存器R/W0x0000_0000_0000_000014.5.5.1/14-630x3_A010RNGDSRRNG数据长度寄存器R/W0x0000_0000_0000_000014.5.5.2/14-640x3_A018 RNGRCRRNG复位控制寄存器R/W0x0000_0000_0000_000014.5.5.3/14-650x3_A028 RNGSRRNG状态寄存器R0x0000_0000_0000_000014.5.5.4/14-650x3_A030 RNG
46、ISRRNG中断状态寄存器R0x0000_0000_0000_000014.5.5.5/14-660x3_A038 RNGICRRNG中断控制寄存器R/W0x0000_0000_0000_100014.5.5.6/14-670x3_A050RNGEUGRNG EU-Go寄存器W0x0000_0000_0000_000014.5.5.7/14-680x3_A8000x3_AFFFRNG FIFO R0x0000_0000_0000_000014.5.5.8/14-68公开密钥执行单元 (PKEU)0x3_C000 PKEUMRPKEU模式寄存器R/W0x0000_0000_0000_000014
47、.5.1.1/14-260x3_C008 PKEUKSRPKEU密钥长度寄存器R/W0x0000_0000_0000_000014.5.1.2/14-280x3_C010 PKEUDSRPKEU数据长度寄存器R/W0x0000_0000_0000_000014.5.1.3/14-280x3_C018 PKEURCRPKEU复位控制寄存器R/W0x0000_0000_0000_000014.5.1.5/14-290x3_C028 PKEUSRPKEU状态寄存器R0x0000_0000_0000_000014.5.1.6/14-300x3_C030 PKEUISRPKEU中断状态寄存器R0x000
48、0_0000_0000_000014.5.1.7/14-310x3_C038 PKEUICRPKEU中断控制寄存器R/W0x0000_0000_0000_100014.5.1.8/14-320x3_C040PKEUABSPKEU AB长度寄存器R/W0x0000_0000_0000_000014.5.1.3/14-280x3_C050 PKEUEUGPKEU EU-GoW0x0000_0000_0000_000014.5.1.9/14-330x3_C2000x3_C23FPKEU参数存储器A0R/W0x0000_0000_0000_000014.5.1.10/14-330x3_C2400x3_
49、C27FPKEU参数存储器A1R/W0x0000_0000_0000_00000x3_C2800x3_C2BFPKEU参数存储器A2R/W0x0000_0000_0000_00000x3_C2C00x3_C2FFPKEU参数存储器A3R/W0x0000_0000_0000_00000x3_C3000x3_C33FPKEU参数存储器B0R/W0x0000_0000_0000_00000x3_C3400x3_C37FPKEU参数存储器B1R/W0x0000_0000_0000_00000x3_C3800x3_C3BFPKEU参数存储器B2R/W0x0000_0000_0000_00000x3_C3
50、C00x3_C3FFPKEU参数存储器B3R/W0x0000_0000_0000_00000x3_C4000x3_C4FFPKEU参数存储器EW0x0000_0000_0000_00000x3_C8000x3_C8FFPKEU参数存储器NR/W0x0000_0000_0000_000014.4 描述符概述主处理器维护一个当前发安全会话以及这些会话的对应密钥和上下文的记录。一旦主机决定请求一个安全操作,它就建立一个描述符,这个描述符包含SEC执行这个安全操作的所有信息。主机在主存中创建这个描述符,然后将指向这个描述符的指针写入SEC一个通道的取FIFO。该通道用这个指针将描述符读入它的描述符缓冲
51、区。一旦获得这个描述符,SEC通过它的总线主控能力来获得输入,并输出结果,因此使主处理机摆脱了数据传送和加密操作的负担。为方便测试,使用SEC的主机控制模式,主机可以直接向SEC写入密钥、上下文和文本数据。这种方法避免了使用描述符。14.4.1 描述符结构SEC描述符在概念上与大多数具有DMA能力的设备所使用的描述符相似。这些描述符固定长度为64个字节,也就是八个64位的字(称为双字)。一个描述符由一个首部双字和七个指针双字组成,如图14-3所示的那样。首部双字指明了要执行的安全操作、所需要的执行单元和每一个执行单元的模式。所有的指针字都具有相同的格式,包含用来定位输入或输出数据包的指针和长度
52、信息(比如密钥、上下文或文本数据)。描述符中提供的大量指针允许多个算法同时操作,这些操作需要取得多个密钥,提取和返回上下文。不需要的指针双字可以指定它的长度为0,通道略过对应的操作。图14-3 描述符格式SEC描述符包含分散/聚集能力,这意味着描述符中的每一个指针可以直接指向一个连续的数据包,也可以指向一个链表,这个链表包含一系列用来装配数据包的指针和长度。当使用一个链表读取输入数据时,称之为聚集操作;当链表用于写输出数据时,称之为分散操作。14.4.2 描述符格式首部双字描述符由主机建立,通过所请求的加密操作控制SEC。描述符首部定义了要执行的操作、每种操作的模式、以及控制器和通道进行内部数据传送所使用的内部地址。SEC的设备驱动程序允许主机为每个加密操作创建正确的首部。图14-4. 首部双字表144 首部双字位定义位名称说明OP_003 EU_SEL0 主EU选择:可能的取值见14.4.2.1/14-17。411 MODE0 主模式:用于设定主EU的模式数据。该模式数据针对所选择的EU。该字段直接传给所选EU的模式寄存器的位5663。 OP_11215 EU_SEL1 辅EU选择:可能的取值见14.4.2.1/14-17。 1623 MODE1 辅模式: 用于设定辅EU的模式数据。该模式数据针对所选择的EU。该字段直接传给所选EU的模式寄存器的位5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度特色小镇场地硬化与文化旅游开发合同3篇
- 2025年度智慧城市项目公司营销策划合同3篇
- 二零二五年度个人与公司间代收代付房产交易合同范本2篇
- 2025年度全款购置特色民宿买卖合同3篇
- 2025年度公司与员工租车及车辆租赁续租协议3篇
- 2025年度汽车租赁公司与个人汽车租赁风险管理协议3篇
- 2025年度农业农机智能化控制系统开发合同2篇
- 二零二五年度紧急物资公路运输保障协议3篇
- 二零二五年度农村机井承包与水资源高效利用合同
- 2025年度个人与企业间房屋购置公对私借款协议3篇
- JGJT46-2024《施工现场临时用电安全技术标准》条文解读
- 五星级大酒店会议团队接待方案
- 2024届上海高考语文课内古诗文背诵默写篇目(精校版)
- MOOC 模拟电子技术基础-华中科技大学 中国大学慕课答案
- 驾照体检表完整版本
- 新大象版六年级上册科学全册精编知识点(期末复习资料)
- 王家岩隧道工程地质勘察报告(总结)
- 《昆明的雨》优质课一等奖(课堂PPT)
- EHS的组织架构和职责说明(共2页)
- 油气田地面建设工程ppt课件
- 旅行社计调OP培训手册pdf
评论
0/150
提交评论