在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 基于FPGA的祖冲之算法研究与实现

基于FPGA的祖冲之算法研究与实现

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.22M
  • 下载次数:3
  • 浏览次数:79
  • 发布时间:2020-10-05
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
基于FPGA的祖冲之算法研究与实现 内容很详细 欢迎下载
第20卷 基于 FPGA的祖沖之算法研究与实现李歌陶琳高献伟 ·15· 2.X ∥sH; 3.x2=57∥sH; 4,X3=52∥SH 其中‖表示级联。 1.3非线性函数F 非线性函数F包括2个32位的记忆单元R1和R2,输入为X,X1和X2,输出为一个32位的字 W,其作用是破坏LFSR的线性结构,具体步骤为: F(X。,X1,X2) W=(X0④R1)+R2mod232; W1=RI+XImod2 R2GⅩ2 4.R1=S(L1(W1∥W2H)); 5.R2=S(L2(W2∥W1H) 上述的线性变换L1和L2分别为 L1(X)=X((X<<<32)④(X<<<3210)团(X<<<3218)(X<<<324) L2(X)=X(X<<<328④(X<<<14)团(X<<<322)出(X<<<3230) 均是32位到32位变换。S表示S盒运算,32×32的S盒由4个并列的8×8的S盒组成,即 S=(S,S1,S2,S3),其中S0=S2,S1=S3,因此只需定义两个S盒S和S1,这样的结构化的 设计方法,降低了硬件实现的代价。(2 .4密钥加载 假设128位的初始密钥k,128位的初始向量ⅳ和240位的长整型常量字符串D分别为 k=k∥k1∥k2∥…∥k1 ∥i0ltiv2∥∥ 15 D=do∥d1d2∥.∥d1s k,iv和D被加载到LFSR的S,…ss中:s;=k,∥d;∥i;,其中0≤i≤15。1 2zUC算法的硬件实现策略 在本文中ZUC算法的执行过程主要有四个步骤:密钥加载,初始化阶段,工作阶段和密钥流产生 ·16 北京电子科技学院学报 2012年 阶段。「4具体过程如下图2所示 密钥加敦 2.1密钥加载阶段 ---- 1·+--------=-- 在密钥加载阶段,将128位的初始密钥和128位的空“一比精变一比卜 初始化向量载人LFSR,同时设置32位的记忆单元R,[数 非线性函数F 密钥流翰出 R2为0值。 LFSR初始化模 ESR L作化模 LFSR T作化模 2.2初始化阶段 是舌j 代32轮 个密镁 在初始化阶段,算法执行下面的操作32次: 是 结束 1. Bitreorganization() 初始化阶段 E作阶段 密钥流产生阶段 2.W=F(X,X1,X2); 图2算法执行过程 3. L FSR WithInitialisation Mode(w>l) entity zuc 13 port〔 2.3工作阶段 k, iv:in std logic vector( 127 downto 0); z out :out std logic vector(31 downto 0); 在工作阶段,算法执行下面的操作1次,并弃掉F cIxin std loGIC: reset: in std logic 的输出W klen: in std logic vector(4 downto 1. Bitreorganization() nd zuc 2.F(X0,X1,X2); 图3实体端口定义程序 3. lFSR WithWorkMode( 2.4密钥流产生阶段 k[1270] out r1.D] 在密钥流产生阶段,每次迭代执行以下操作1次,Z iv[127.0] clk 是一个32位字的输出 neset 1. Bitreorganization() klen[4. 0] nst 2.z=F(X0,X:,X2)X3 图4实体端口定义模块 3. LFSR With WorkModeo) 3算法实现 本文采用Aera公司 Stratix iv系列的EP4SE530F43C3芯片,以 Quartus lI8.1为开发环境,米 用硬件描述语言VHDL进行ZUC算法的FPGA实现。ZUC算法实现的整体结构可分为库函数模 块和主程序模块两大模块。在ZUC算法库函数模块中定义了函数和过程,在主程序中进行调用。主 程序中定义了实体端口如图3所示,编译生成的模块图如图4所示。利用状态机对过程进行控制, ZUC算法的主程序中包含了S,S1,S2,S3和S1五个状态。[6 本文以2011年1月中科院发布的3GPP机密性和完整性算法128EEA38128EIA3标准中的文 献3作为测试数据实现的标准6,将实验仿真所得到的计算数据与该标准进行对照,对于输入128位 第20卷 基于FPGA的祖冲之算法研究与实现李歌陶琳高献伟 17· 初始密钥k和128位初始向量ⅳ,可以得到正确的32位的密钥流zout 4结果分析 由于中科院每组输入只公布了两个密钥输出结果,设置了四组不同的输人情况,故木次实验设置 产生的密钥个数klen是3,分别设置输入为全0,全1和两组任意数值四种情况下的仿真,其实验仿真 结果如图5、图6图7和图8所示。下图中ck是时钟,,k分别是输入的初始密钥和初始向量, reset 是复位信号,zout是输出的密钥流, count是初始化阶段计数标志, count是密钥产生阶段的计数标 7] E6378ns st M式 r Tane B Pointer 02.B2ns InaJa 7日2 ns Stat 50P T6s.0 ZEs. D U0cc0000000 000000010C0OCGDCCDCCOC0OC0000000 3130Bk 002mR二d的z 00000000 X C657CTAO X 7096E9BB H6 F kewmt 图5输入iv:00000000000000000000000 图6输入iv: ffff ff ffff ffffff ff f:fff! ff ff ff ff k:O0000000000000000000000000000000 k: ff ffff ff ffff ff ff ff if ffff ffff ffff 输出zout:27BEDE74018082DA87D4E5E 输出zout:0657CFAO7096398B734B6CB4 Marr T me Bc 555.6r meryet mrs Ma测Tm 450 ,自 T05.0 391灿TEb 5239DA7亚C350E74 【BAC的s031 141272Xz1913 4HECMLD 的:」c 图7输入ⅳv:84319aa8de6915ca1f6bda6bfbd8c766图8输入ⅳ:52959daba0bf176ece2dc31504Seb574 k: 3d4c 4be9 6a82 fd ae b5 8564 1d b17b 45 5b k: 4d 32 ob fa d4 c2 85 bf d6 b8 bd o0 f3 9d 8b 41 输出zout:1471C2723279C4194B8EA41D 输出zout:ED4400E70633E5C5B28EA9BA ZU℃算法是序列算法,在算法执行过程中,密钥加载阶段使用1轮时钟,初始化阶段使用32轮时 钟,工作阶段使用1轮时钟,之后每产生一个密钥,需要1轮时钟,即前面密钥加载阶段,初始化阶段 和工作阶段一共所需的34轮时钟只需执行一次,之后实际产生密钥仅需一轮时钟即可。根据吞吐量 的定义:吞吐量一处理的bit数/秒。在兀C算法模式下,一个时钟周期产生32bt的密钥,则吞吐量 可表示成:吞吐量-32×工作主频。 在本文设计中,综合与布局布线选项中都以速度最大化为目的,最终FPGA实现达到了较高的吞 吐量,具体的实验数据如下表1: 表1实验数据 设备硬件占用资源(ALUT)寄存器数 Total register)工作主频/MHz吞吐量/Mbs1 EP4SE530F43C3 1031 111.76 3576.32 北京电子科技学院学报 2012年 5结束语 本文采用ⅤHDL语言完成了对祖冲之序列密码算法的硬件实现,以 Altera公司 Stratix iv系列 中的EP4SE530F43C3作为目标芯片,在 QuartusⅡ开发环境下进行综合仿真,且得出了正确的结果, 满足高吞吐量的指标,利用较少的资源得到了较快的速度,本文为今后对祖冲之算法更加深入的研究 和优化奠定了基础。 参考文献: [1] ETSI/SAGE TS 35. 222-2011, Specification of the 3 GPP Confidentiality and Integrity Algorithms 128-EEA3 &. 128-EIA3; Document 2: ZUC Specification[S] [2]冯秀涛.3 GPP LTE国际加密标准ZUC算法.信息安全与通信保密,2011(12):45-46 3]杜红红,张文英祖冲之算法的安全分析.计算机技术与发展,2012,22(6):151-155. [4]高献伟,周玉坤,路而红,等.DES算法硬件实现的研究.北京电子科技学院学报,2001,9(1):11-16 [5]丁冬平,高献伟.SM3算法的FPGA设计与实现.微型机与应用,2012年,31(5):26-28 [6] ETSI/SAGE TS 35. 223-2011, Specification of the 3 GPP Confidentiality and Integrity Algorithms 128-EEA3 & 128-EIA3; Document 3: Implernentors'test data[S 冂]施玉松,李维英,邢成文.基于FPGA快速同步算法的研究.北京电子科技学院学报,2006,14(2):32-35 作者简介: 李歌(1988—),女,硕士研究生,主要研究方向:密码算法的硬件实现等 【实例截图】
【核心代码】

标签:

实例下载地址

基于FPGA的祖冲之算法研究与实现

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警