VC2983G的AKA協议中F1至F5的UE端的实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC2983G的AKA協议中F1至F5的UE端的实现

VC2983G的AKA协议中F1至F5的UE端的实现 P2nbsp;AES算法原理和C语言代码设计实现BR2.1nbsp;分组密码设计准则BRnbsp;Rijndael算法是分组密码,也具有分组密码的一般设计准则,分组密码的设计就是要求算法能在密钥控制下置换,对输入的明文进行加密变换。好的分组密码应该是既难破译高效又容易实现。BR(1)安全性准则BRnbsp;nbsp;nbsp; 安全性原则主要是指由香农提出的混乱和扩散原则。BRnbsp;nbsp;nbsp; 混乱原则是指人们所设计的密码应使得密钥和明文以及密文之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说无法利用。BRnbsp;nbsp;nbsp; 扩散原则是指人们所设计的密码应使得密钥的每一位数字影响密文的许多位数字,以防止对密钥进行逐段破译,而且明文的每一位数字也应该影响密文的许多位数字,以便隐蔽明文数字的统计特性。BRnbsp;nbsp;nbsp; 当然这种密码体制必须能抵抗现在所有的己知密码攻击。BRnbsp;nbsp;nbsp; (2)效率性准则BRnbsp;nbsp;nbsp; 效率准则是与安全性准则互补的,指的是算法在执行加/解密时所要占用的资源量,加密/解密在软件的实现中,主要与所要求的内存和存储程序所占用的内存有关,在硬件的实现中,与要求的芯片的面积有关。BRnbsp;nbsp;nbsp; (3)易实现准则BRnbsp;nbsp;nbsp; 分组密码可以用软件和硬件来实现。硬件实现的优点是可获得较高的加密解密速度,软件实现的优点是灵活性强、代价低。BR2.2nbsp;Rijndael算法综述BRnbsp;AES,高级数据加密标准的简称,由美国国家标准和技术研究所(NIST)在1997年宣布征集,最终,在2000年,它宣布采用了比利时的密码专家Joan Daemen博士和Vincent Rijmen博士开发的Rijndael算法做为最终算法。Rijndael加密算法是分组长度可变、密钥长度也可变的分组密码。分组长度、密钥长度彼此独立地确定为128、192、256比特。总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。BRnbsp;Rijndael是一个密钥迭代分组密码,包含了轮变换对状态的重复作用。轮数Nr 的值取决于分组和密钥的长度。对于AES,当密钥长度为128比特时,Nr =10;当密钥长度为192比特时,Nr =12;当密钥长度为256比特时,Nr =14。算法的加密过程如图1所示。它包括一个初始密钥加法,记作AddRoundKey,接着进行Nr-1次轮变换(Round),最后再使用一个轮变换(FinalRound)。 轮变换由4个步骤组成:SubBytes,ShiftRows,MixColumns和AddRoundKey。最后一轮与前Nr -1次轮变换稍有不同,省掉了其中的MixColumns步骤。/P PBR图1 Rijndeal加密C语言实现过程图BR相关的术语定义和表示BR#8226;状态(State):密码运算的中间结果称为状态。BR nbsp; #8226;State的表示:状态用以字节为基本构成元素的矩阵阵列来表示,该阵列有4行,列数记为Nb。 BRnbsp;  Nb=分组长度(bits)÷ 32BRnbsp;nbsp;nbsp; Nb可以取的值为4,6,8,对应的分组长度为128,192,256bits。BR#8226;密码密钥(Cipher Key)的表示: Cipher Key(简称Key)类似地用一个4行的矩阵阵列来表示,列数记为Nk。nbsp; BRnbsp;nbsp;nbsp;nbsp; Nk=密钥长度(bits)÷32BR nbsp;nbsp; Nk可以取的值为4,6,8,对应的密钥长度为128,192,256bits。BR2.3nbsp;Rijndael加密步骤及C语言代码实现BR本次设计采用128位明文分组,128位密钥,下面结合具体实现代码,依照加密流程,对加密的几个具体步骤进行分析。/P P2.3.1nbsp;SubBytesBRnbsp;nbsp;nbsp; ByteSubstitution是一个非线性的字节替代,独立地在每个状态字节上进行运算。它包括两个变换。BRnbsp; 1.nbsp; 在有限域GF(28)上求乘法逆,‘00’映射到它自身。BRnbsp; 2.nbsp; 在GF(2)上进行下面的仿射变换:/P P仿射变换,实际上是涉及一个矩阵乘法BRnbsp;BR图2nbsp; 矩阵乘法示意图/P P其中Y=[y7,y6…,.y0]为经SubByte作用后的值。这个变化,Rijndael采用一个S盒

文档评论(0)

sd47f8cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档