【技术实现步骤摘要】
基于白盒分组密码的加解密方法
本专利技术属于网络与信息安全
,特别涉及一种基于白盒分组密码的加解密方法,可用于视音频数字内容的版权保护以及移动支付场景。
技术介绍
在网络与信息安全领域,加密算法是保证信息机密性的核心技术。一般而言,加密算法公开,但其中使用的密钥需要保密,因此,密钥的安全就显得尤为重要。传统的加密算法在设计之初,假设敌手只能获得算法运行时的输入输出,即,被加密的消息以及加密之后的消息,而不知其中间状态。由此,若敌手无法恢复出密钥,则称该加密算法安全。这种敌手模型被称为黑盒模型。然而,随着互联网和物联网的普及,执行密码算法的终端平台经常位于潜在的恶意环境中。这种情况下,敌手可以观测或是改动算法运行时的中间状态,从而帮助自己提取出密钥。这种敌手模型被称为白盒模型,而白盒密码研究的正是如何在白盒模型下保护密码算法的安全性。目前,白盒密码方案的设计包括两大类,分别是设计已有分组密码算法的白盒实现和设计新的白盒分组密码算法。其中,白盒实现主要针对高级加密标准AES,数据加密标准DES,以及国家商用密码标准SM4等分组密码标准算法,但是,许多白盒实现面临各种各样的攻击。截至目前,对于AES,DES以及SM4这三种分组密码标准算法还没有公认安全的白盒实现。新的白盒分组密码算法则采用了不同的思路,即在设计之初就考虑白盒模型。近几年,一些白盒分组密码算法被相继提出,其中最有竞争力的两个白盒分组密码加解密方法是SPNbox和WEM,分别出自AndreyBogdanov等人于2016年在ASIACRY ...
【技术保护点】
1.一种基于白盒分组密码的加解密方法,其特征在于,包括如下:/n(1)密钥生成:/n(1a)服务器将一个128位的主密钥看作输入,通过密钥导出函数KDF变换,输出25个16位的轮密钥,即用主密钥生成轮密钥;/n(1b)服务器将65536个16位比特串0,1,10,…,11111111111111111看作输入,应用25个轮密钥对每个输入的比特串依次执行初始轮密钥加操作和24轮群加密与轮密钥加的循环操作,输出一个包含65536个16位比特串的查找表,即用轮密钥生成查找表;/n(1c)服务器将由8个随机数构成的一个8*8对角矩阵看作输入,并用输入左乘系统预选的矩阵,输出一个8*8的随机矩阵;/n(2)分组加密:/n(2a)服务器将128位的明文分组看作输入,并将其分成小块,对每个小块依次执行初始轮密钥加操作和24轮群加密与轮密钥加的循环操作,然后对小块进行级联;/n(2b)应用随机矩阵对级联后的小块进行线性置换,再与一个由加密循环轮次决定的比特串进行异或操作,将异或结果作为本轮加密操作的输出和下轮加密操作的输入;/n(2c)循环执行(2a)到(2b)共7次,以最后一轮加密操作的输出作为最终 ...
【技术特征摘要】
1.一种基于白盒分组密码的加解密方法,其特征在于,包括如下:
(1)密钥生成:
(1a)服务器将一个128位的主密钥看作输入,通过密钥导出函数KDF变换,输出25个16位的轮密钥,即用主密钥生成轮密钥;
(1b)服务器将65536个16位比特串0,1,10,…,11111111111111111看作输入,应用25个轮密钥对每个输入的比特串依次执行初始轮密钥加操作和24轮群加密与轮密钥加的循环操作,输出一个包含65536个16位比特串的查找表,即用轮密钥生成查找表;
(1c)服务器将由8个随机数构成的一个8*8对角矩阵看作输入,并用输入左乘系统预选的矩阵,输出一个8*8的随机矩阵;
(2)分组加密:
(2a)服务器将128位的明文分组看作输入,并将其分成小块,对每个小块依次执行初始轮密钥加操作和24轮群加密与轮密钥加的循环操作,然后对小块进行级联;
(2b)应用随机矩阵对级联后的小块进行线性置换,再与一个由加密循环轮次决定的比特串进行异或操作,将异或结果作为本轮加密操作的输出和下轮加密操作的输入;
(2c)循环执行(2a)到(2b)共7次,以最后一轮加密操作的输出作为最终输出的128位的密文分组;
(3)分组解密:
(3a)用户设备将128位的密文分组看作输入,并将该输入与一个由解密循环轮次决定的比特串进行异或操作,再应用随机矩阵对异或结果进行线性置换,并将线性置换的结果分成多个小分组;
(3b)将(3a)所分的每一个小分组视为索引,在查找表中查找该索引对应的内容,并对内容进行级联,再将级联后的内容作为本轮解密操作的输出和下轮解密操作的输入;
(3c)循环执行(3a)到(3b)共7次,以最后一轮解密操作的输出作为最终输出的解密后的128位的明文分组。
2.根据权利要求1所述的方法,其中(1a)中通过密钥导出函数KDF变换,输出25个16位的轮密钥,是采用安全哈希算法族里的输出可扩展函数SHAKE128对128位的主密钥进行变换,输出25个16位的轮密钥。
3.根据权利要求1所述的方法,其中(1b)中应用由主密钥生成的25个轮密钥,对每个输入的比特串依次执行初始轮密钥加操作和24轮群加密与轮密钥加的循环操作,实现如下:
(1b1)初始轮密钥加...
【专利技术属性】
技术研发人员:刘君,陈杰,原梓清,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。