[发明专利]一种Piccolo加密算法硬件实现方法有效
申请号: | 201410022523.6 | 申请日: | 2014-01-17 |
公开(公告)号: | CN103731257A | 公开(公告)日: | 2014-04-16 |
发明(设计)人: | 李浪;贺位位;刘波涛;邹祎;许琼方;刘辉 | 申请(专利权)人: | 衡阳师范学院 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 长沙市融智专利事务所 43114 | 代理人: | 黄美成 |
地址: | 421002 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 piccolo 加密算法 硬件 实现 方法 | ||
技术领域
本发明涉及信息安全中的密码算法领域,特别是涉及轻量级密码Piccolo算法硬件实现方法。
背景技术
Piccolo轻量级密码算法是在2011年国际顶级密码硬件与嵌入式系统会议(CHES)上被提出,是一种适合资源受限的智能卡加密算法。
Piccolo算法是一种轻量级分组加密算法,分组长度64位,密钥长度有80位和128位,其中密钥为80位时记作Piccolo-80,迭代轮数r为25轮;密钥128位记作Piccolo-128,迭代轮数r为31轮。算法采用非平衡型Feistel结构;算法包括密钥扩展运算,每轮中,加密数据同子密钥都进行异或运算(AddRoundKey,ARK操作)、F函数运算与RP轮置换函数运算(最后一轮没有使用RP轮置换函数);将64位明文输入分为4个分支,每个分支为16位;将从左到右第一个分支与第三个分支分别同白化密钥wk0与wk1进行异或(AddWhiteningKey,AWK操作);然后进行r-1轮迭代加密;最后一轮输入的64位中间值同样划分为4个分支,每个分支为16位;然后进行同样的F函数运算和子密钥异或运算(AddRoundKey,ARK操作),得到的结果第一个分支与第三个分支直接同白化密钥wk0与wk1进行异或,最终得到64位密文输出。RP函数置换运算将输入64位值划分为8个字节,然后进行字节的置换操作,如图4所示,将RP轮置换函数的64输入位数据从高位到低位依次划分为8个字节g0,g1,g2,g3,g4,g5,g6,g7,以g2,g7,g4,g1,g6,g3,g0,g5作为RP轮置换函数运算的64位输出数据。
密钥扩展部分:
初始密钥key长度为80位:
将初始密钥从高位开始按16位一组划分为5个部分,分别记作k0、k1、k2、k3及k4,按照以下公式生成白化密钥wka和轮密钥rk2i、rk2i+1,其中,0≤a<4,0≤i<r,r表示轮运算轮数;
白化密钥扩展:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于衡阳师范学院,未经衡阳师范学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410022523.6/2.html,转载请声明来源钻瓜专利网。