一种针对Twofish加密芯片的DFA分析方法及系统的制作方法

文档序号:7676885阅读:321来源:国知局
专利名称:一种针对Twofish加密芯片的DFA分析方法及系统的制作方法
技术领域
本发明涉及密码安全技术领域,尤其涉及一种针对Twofish硬件的DFA分析方法及系统,利用DFA技术进行Twofish密码分析并评估其安全性。
背景技术
DFA113(Differential Fault Analysis)技术是一种高效的密码分析方法,这一分析方法是基于寄存器中短暂的错误输入会导致少量的错误输出。我们利用这一原理,在加密或者解密过程中插入一个或者多个比特位的错误,能够得到错误输入对应的错误输出差分,从而能够通过差分分析得到密码系统的S盒部件或者密钥等信息。这里我们所使用的DFA攻击模型是字节随机错误模型,它假设攻击者能够在加密算法的某个步骤中引入一个字节的随机错误。字节错误模型可以通过接地、电磁干扰、频率干扰、光照等物理手段引入到设备当中2。Twofish3算法是Bruce在1998年作为AES候选算法提出的,它的分组长度为 U8bit,密钥长度有三种可选U8bit、192bit、256bit。算法经过16轮迭代,其最大特点是 4个S盒由子密钥控制,在加密过程中,明文的左半部分要经过循环移位,S盒代换,矩阵混淆,函数混淆以及子密钥模加。一轮Twofish的结构如

图1,算法具体如下在第一轮前面和最后一轮后面均有一个与子密钥进行异或的白化过程。具体轮函数结构可以表示为
权利要求
1.一种针对Twofish加密芯片的DFA分析方法,其特征在于,包括①令k= O ;②初始化一个集合candk,candk的元素是个三元组(owkk,skkj0,Sk1^1),分别代表控制 Sboxk的两个字节密钥,跟对应的输出白化密钥字节;③初始化一系列的aid(d)集合;④随机选定一个明文P,利用加密设备进行一次新的加密,得到密文c,再次利用同一明文P加密一次,并在加密的最后一轮第k字节引入一个字节的随机错误得到错误密文 c',这样得到一个新的差分错误样本8个三元组(c [i],c [i]',£3,^(0<1<8),其中 c[i]表示密文的第i个字节;⑤从cand集合当中取出1个可能值(owkk,sku,Skkil),如果已经遍历完成,转4,否则利用这个可能值计算第k字节的Sbc^k输出so = sboxk(owkk θ c\k\,(skk 0,skkl))so = sboxk(owkk 十 c[A], (skk 0,skkl))⑥计算A=拟十拟',并判断(a·ε丨,e3ji) e aid(d) (O彡i < 8)这8个关系式是否成立,如果8个关系式当中任意一个成立,将三元组(owk。,SlvSk1)从cand当中去除,其中对于i = 0,4,判断是否属于aid(0),其它情况下为aid(0) Π aid(l) Π aid(2);⑦判断cand集合大小,如果cand大小为1,则此三元组即为对应的三个密钥值,否则转⑤;⑧令k: = k+1,判断k是否小于4,如果成立,转②;⑨利用加密设备加密明文P得到密文C,形成明密文对(P,C);⑩穷举剩下的32比特密钥,然后将前几步确定的96比特子密钥与这32比特密钥串成 128比特密钥,利用这些密钥和Twofish算法解密C,得到P',若P = P',则此128比特密钥即为完整的正确密钥K; 利用前几步得到的正确密钥K跟Twofish算法解密攻击者手头的机密数据所有密文,还原得到明文信息,结束。
2.一种针对Twofish硬件的DFA的分析系统,其特征在于模块1 用于在硬件加密系统中插入一个字节长度的随机错误ε,同时跟踪错误传播途径;模块2 用于初始化一个集合cand,cand的元素是个三元组(Owktl, sk0, Sk1),分别代表控制Sbc^tl的两个字节密钥,跟对应的输出白化密钥字节;模块3 用于初始化一系列的aid(d)集合;模块4:用于得到一个新的差分错误样本8个三元组(c[i],c[i]',ε 3, i) (O ^ i < 8),其中c[i]表示密文的第i个字节,如果没有新样本,结束,输出未能唯一确定密钥;模块5:用于从cand集合当中取出1个可能值(Owktl, Sktl, Sk1),如果已经遍历完成,转 3,否则利用这个可能值计算第O字节的sboh输出so = sbox0{owk0 十 C
,(Sk0ySk1))so = sbox0{owk0 十 C
,(Sk0ySk1))模块6 用于计算S1 =拟十拟,并判断(a · ε丨,ε 3,i) e aid(d) (O ^ i < 8)这8个关系式是否成立,如果8个关系式当中任意一个成立,将三元组(owk。,sk0, Sk1)从cand当中去除,其中对于i = 0,4,判断是否属于aid(0),其它情况下为aid(0) Π aid(l) Π aid(2); 模块7 用于判断cand集合大小,如果cand大小为1,则此三元组即为对应的三个密钥值,算法结束,否则转模块5。
全文摘要
本发明涉及密码芯片安全技术领域,尤其涉及一种Twofish加密硬件的DFA分析方法及系统。本发明结合Twofish这类未知S盒的加密系统的特点,跟踪密码硬件中错误传播途径,在未知S盒的情况下进行DFA分析,改进了传统的DFA分析方法,使得在未知S盒的情况下也能够进行有效的DFA分析,分析得到密钥;在DFA的基础上运用不可能输入输出差分集合,对可能的集合进行筛选,从而有效的进行密钥的分析;结合字节随机错误模型以及不可能输入输出差分集合方法,有效降低了算法的复杂度,使得这一DFA分析方法仅需16对错误样本,在4*224的计算复杂度上就能够成功恢复出96bit的密钥。
文档编号H04L9/06GK102158338SQ20111013717
公开日2011年8月17日 申请日期2011年5月25日 优先权日2011年5月25日
发明者伍前红, 唐明, 张欣雨, 沈菲, 邓慧, 邱镇龙 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1