一种Piccolo加密算法硬件实现方法技术

技术编号:9936742 阅读:180 留言:0更新日期:2014-04-18 19:40
一种Piccolo加密算法硬件实现方法,其特征在于,包括以下步骤:步骤1:将64位的待加密数据加载至寄存器;步骤2:将加载至寄存器的64位待加密数据从高位开始按16位一组依次分成4组,记作:P0、P1、P2及P3;同时将初始密钥key进行Piccolo白化密钥扩展运算,生成16位白化密钥wka,其中,0≤a<4,a为整数;设定加密轮数r:当初始密钥长度为80位时,加密轮数r=25;当初始密钥长度为128位时,加密轮数r=31;步骤3:将P0与wk0进行异或运算获得P′0,P2与wk1进行异或运算获得P′2,P′0、P1、P′2及P3组成轮运算的运算数据,对轮运算的运算数据进行r轮轮运算;轮运算包括以下几个步骤:1)将P′0和P′2分别进行F函数变换,将获得的变换结果分别记为P″0和P″2,同时将初始密钥key进行Piccolo轮密钥扩展运算,生成两个16位轮密钥rk2i、rk2i+1,其中,0≤i<r,第i轮轮运算需要使用两个轮密钥rk2i、rk2i+1;2)将P″0、轮密钥rk2i及P1进行异或运算,获得运算结果记为P′1;将P″2、轮密钥rk2i+1及P3进行异或运算,获得运算结果记为P3′;3)将P″0、P′1、P′2及P′3组成64位的运算数据status,对运算数据status进行RP轮置换函数运算,获得RP运算结果statusRP,如果到达r轮,则进入步骤4;否则,将64位运算结果statusRP从高位开始按16位一组依次分成4组,记作:及令P0′=status0RP,P1=status1RP,P2′=status2RP]]>及P3=status3RP,]]>返回步骤1);步骤4:对statusRP进行RP?1轮置换函数运算,获得RP?1轮置换函数运算结果将64位的从高位开始按16位一组依次分成4组,记作:及将与wk2进行异或运算获得将与wk3进行异或运算获得利用及组成64位密文,完成加密操作。

【技术实现步骤摘要】

【技术保护点】
一种Piccolo加密算法硬件实现方法,其特征在于,包括以下步骤:步骤1:将64位的待加密数据加载至寄存器;步骤2:将加载至寄存器的64位待加密数据从高位开始按16位一组依次分成4组,记作:P0、P1、P2及P3;同时将初始密钥key进行Piccolo白化密钥扩展运算,生成16位白化密钥wka,其中,0≤a<4,a为整数;设定加密轮数r:当初始密钥长度为80位时,加密轮数r=25;当初始密钥长度为128位时,加密轮数r=31;步骤3:将P0与wk0进行异或运算获得P′0,P2与wk1进行异或运算获得P′2,P′0、P1、P′2及P3组成轮运算的运算数据,对轮运算的运算数据进行r轮轮运算;轮运算包括以下几个步骤:1)将P′0和P′2分别进行F函数变换,将获得的变换结果分别记为P″0和P″2,同时将初始密钥key进行Piccolo轮密钥扩展运算,生成两个16位轮密钥rk2i、rk2i+1,其中,0≤i<r,第i轮轮运算需要使用两个轮密钥rk2i、rk2i+1;2)将P″0、轮密钥rk2i及P1进行异或运算,获得运算结果记为P′1;将P″2、轮密钥rk2i+1及P3进行异或运算,获得运算结果记为P3′;3)将P″0、P′1、P′2及P′3组成64位的运算数据status,对运算数据status进行RP轮置换函数运算,获得RP运算结果statusRP,如果到达r轮,则进入步骤4;否则,将64位运算结果statusRP从高位开始按16位一组依次分成4组,记作:及令P0′=status0RP,P1=status1RP,P2′=status2RP]]>及P3=status3RP,]]>返回步骤1);步骤4:对statusRP进行RP?1轮置换函数运算,获得RP?1轮置换函数运算结果将64位的从高位开始按16位一组依次分成4组,记作:及将与wk2进行异或运算获得将与wk3进行异或运算获得利用及组成64位密文,完成加密操作。...

【技术特征摘要】

【专利技术属性】
技术研发人员:李浪贺位位刘波涛邹祎许琼方刘辉
申请(专利权)人:衡阳师范学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1