【技术实现步骤摘要】
本专利技术涉及一种数据加密和解密的方法,具体涉及一种分组密码算法的密钥扩展 方法,用于生成分组密码算法的各轮子密钥。
技术介绍
信息时代计算机技术迅猛发展,分组密码因为具有速度快、易于标准化和便于软 硬件实现等特点,成为信息安全领域中实现数据加密、消息鉴别、认证及密钥管理的核心密 码算法,在计算机、通信等领域广泛应用。分组密码算法是将需要数据保护的原始数据序列(即明文)进行分组,对每个分 组在密钥作用下进行加密操作,将明文转换为不能识别的无规律数据(即密文)。将密文进 行传输以保证数据安全,数据接受方使用同一组密钥即可将密文解密为明文。分组密码算 法加密操作通常经过多轮函数作用,每一轮都需要对应的一组子密钥。在加密和解密的实 施过程中,通信双方只共享一组初始的种子密钥,通过密钥扩展算法将种子密钥扩展生成 需要的子密钥,减小存储量、通信量,提高系统性能。目前典型分组密码算法的密钥扩展算法通常适用于密钥长度为128比特、192比 特或256比特的密钥扩展。256比特密钥长度是分组密码算法应用中一种典型的密钥长度, 在数据安全的压力下,256比特明文分组日益受到密码设计者的青睐,相应的256比特长度 的密钥使用频率逐步提升,因此,设计256比特密钥长度的分组密码算法将具有很强的实 用性。密钥扩展算法首先要保证安全性,即要求密钥扩展算法的设计具有子密钥统计独 立性和灵敏性。统计独立性即要求子密钥之间不存在简单关系,灵敏性即要求种子密钥少 数几比特的改变可以较大程度的改变相应的子密钥。此外,密钥扩展算法的速度不应影响 加密或解密的工作进程,算法在软硬件条件下实现的 ...
【技术保护点】
一种应用于分组密码加密解密算法的密钥扩展方法,其特征在于,生成轮数为8的子密钥的步骤如下:A.初始化:定义长度为80的数组W,该数组的元素长度为32比特;将256比特的种子密钥依次写入数组W[0]~W[7]作为输入;W[8]~W[79]用来存储扩展生成的子密钥;B.计算生成子密钥,采用如下迭代函数:W[i]={FS(W[i-8])+FS(W[i-7])+FS(W[i-3])+FS(W[i-2])+F↓[imod 4]+t(i)}<<<(7i+3)mod32其中:-i为数组下标,从8开始每次增加1进行迭代,i≤79;-FS为非线性变换函数;-Φ的取值为4个常数;-t为一个函数,用来将其参数转化为二进制表示;-“<<<”表示循环左移;C.输出子密钥:将数组W[i](i=8,9,…,79)中的元素顺序输出即为子密钥。
【技术特征摘要】
一种应用于分组密码加密解密算法的密钥扩展方法,其特征在于,生成轮数为8的子密钥的步骤如下A.初始化定义长度为80的数组W,该数组的元素长度为32比特;将256比特的种子密钥依次写入数组W~W[7]作为输入;W[8]~W[79]用来存储扩展生成的子密钥;B.计算生成子密钥,采用如下迭代函数W[i]={FS(W[i 8])+FS(W[i 7])+FS(W[i 3])+FS(W[i 2]) +Fimod 4+t(i)}<<<(7i+3)mod32其中 i为数组下标,从8开始每次增加1进行迭代,i≤79; FS为非线性变换函数; Φ的取值为4个常数; t为一个函数,用来将其参数转化为二进制表示; “<<<”表示循环左移;C....
【专利技术属性】
技术研发人员:郑志明,张筱,高莹,王钊,邱望洁,王文华,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。