CN101938352B - 一种分组密码软件加密方法 - Google Patents

一种分组密码软件加密方法 Download PDF

Info

Publication number
CN101938352B
CN101938352B CN2010102898463A CN201010289846A CN101938352B CN 101938352 B CN101938352 B CN 101938352B CN 2010102898463 A CN2010102898463 A CN 2010102898463A CN 201010289846 A CN201010289846 A CN 201010289846A CN 101938352 B CN101938352 B CN 101938352B
Authority
CN
China
Prior art keywords
key
prime
sub
256bits
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2010102898463A
Other languages
English (en)
Other versions
CN101938352A (zh
Inventor
郑志明
张筱
王文华
高莹
王钊
邱望洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2010102898463A priority Critical patent/CN101938352B/zh
Publication of CN101938352A publication Critical patent/CN101938352A/zh
Application granted granted Critical
Publication of CN101938352B publication Critical patent/CN101938352B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detergent Compositions (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种新的分组密码加密方法,该加密方法针对软件加密设计,充分利用了软件加密时内存空余量充足的特点,将传统分组密码算法中的字节替换步骤S盒的尺寸由8-8增大至12-8。本方法通过增加S盒尺寸,使加密流程的安全性,尤其是对代数攻击的抵抗能力得到极大提高,并且在软件加密中具备高速性能。该加密技术可用于通信加密、文件加密和安全协议中。

Description

一种分组密码软件加密方法
技术领域
本发明涉及信息加密技术领域,具体涉及一种分组密码的加密方法。主要应用于数字通信过程中的各种通信软件。
背景技术
分组密码加密方法是保障通信系统安全的一种重要手段,该方法构造拟随机数生成器、流密码、消息认证码和杂凑函数等,还可进而成为消息认证技术、数据完整性机构、实体认证协议以及单钥数字签名体制的核心组成步骤。
分组密码的优点是:明文信息良好的扩展行,对插入的敏感性,不需要密钥同步,较强的实用性,适合作为加密标准。比较成功的算法是美国NIST在1976年公布的DES密码算法。进入90年代,因为DES在商业系统中的广泛采用,并且有研究人员怀疑NSA在DES中加入了陷门,人们对DES类密码的研究更加深入。各种研究机构在上世纪80-90年代对其进行了大量的分析和破译工作,特别是差分密码分析(differential cryptanalysis)和线性密码分析(linear cryptanalysis)的提出,迫使人们不得不研究新的密码结构。
2001年NIST正式公布高级加密标准AES,并于2002年5月正式生效。Rijndael算法在设计简洁的同时达到了极高的安全性,从而被NIST选择成为AES标准。2003年2月欧洲最新一代的安全标准NESSIE出台。Camellia算法以其在各种软件和硬件平台上的高效率这一显著特点成为NESSIE标准中两个128bits分组密码算法之一(另一个为AES算法)。
当前主流分组密码加密方法主要包含了两大步骤:线性步骤(扩散层)和非线性步骤(混淆层)。线性步骤的作用是将明文的微小变化扩散至整个分组,一般由MDS矩阵或位移等操作实现;非线性步骤的作用则是消除输入数据与输出数据的相关性,一般由字节替换步骤(S盒)实现。
分组密码加密方法中的字节替换步骤(S盒)本质上均可看作映射:
S:GF(2n)→GF(2m)
Figure GDA0000114578720000011
其中,x∈GF(2n),fi:GF(2n)→GF(2)是布尔函数。通常简称这样的S盒为n-m的S盒。
S盒是大多数分组密码中唯一的非线性部件,为算法提供了非线性性和安全性,S盒的密码性质直接影响了密码算法的好坏。目前,S盒是分组密码研究领域的一个热点。对分组密码的主流攻击方法都建立在对算法S盒分析的基础之上。因此,在设计和分析分组密码时,必须要考虑到S盒对于各种攻击的抗性,其任何不好的性质都将影响到整个密码算法的安全性。AES和Camellia都采用了以有限域上求逆操作为核心的S盒,这种S盒对于抵抗线性和差分分析都有着良好的性质。然而,由于求逆操作的代数性质过于简单,这种S盒对代数攻击的抵抗能力并不令人满意。随着求解多变量二次方程组的数学方法取得进展时,代数攻击成功的概率将大大增加。
发明内容
针对上述问题,本发明提出了一种专门针对软件加密而设计的分组密码加密方法,该方法通过增大S盒尺寸,使加密流程的安全性(尤其是对代数攻击的抵抗能力)得到极大提高,并且在软件加密中具备高速性能。
本发明的技术方案如下(流程图参图1):
1.密钥编排步骤:
密钥编排步骤把256bits的种子密钥扩展为8个256bits的轮密钥及1个白化子密钥(白化子密钥的长度为256bits),分别作用于8个非线性步骤和最后的1次白化子密钥异或步骤。
2.轮变换步骤:
2.1)非线性步骤:采用2轮的Feistel结构,配合12-8的S盒,组成了本加密方法的非线性步骤;
2.2)线性步骤:在线性步骤中,采用了一个GF(28)上的32×32MDS矩阵P,与输入的数据向量进行乘法操作;
2.3)若步骤2.1)与步骤2.2)执行次数未达到7次,转到步骤2.1,否则继续。
3.末轮变换步骤:
3.1)非线性步骤:与步骤2.1)相同;
3.2)白化步骤:将步骤3.1)的输出数据与白化子密钥异或,得到密文。
本发明中所提出的加密方法,针对软件加密过程中内存容量远远大于硬件环境的特点而设计。本方法通过增加S盒尺寸,使加密流程的安全性(尤其是对代数攻击的抵抗能力)得到极大提高,并且在软件加密中具备高速性能。该加密技术可用于通信加密(即传输过程中的动态数据加密)、文件加密(即存储数据的静态加密)和安全协议中。
附图说明
图1是f函数结构示意图;
图2是非线性步骤结构示意图;
图3是加密流程整体结构示意图。
具体实施方式
本发明所述的一种高效安全的软件加密方法,具体实施步骤如下:
1.密钥编排步骤:本步骤的输入数据为8个长为32bits的种子密钥,记为k[-8],k[-7],…,k[-1];输出数据为72个长为32bits的子密钥,记为k[0],k[1],…,k[71],总长2304bits。其中,前2048bits为非线性步骤的子密钥,最后256bits为白化子密钥。
1.1)将计数器i赋值为0。
1.2)将imod4的结果存入变量j。
1.3)求f(k[i-8]),f(k[i-7]),f(k[i-3]),f(k[i-2])的值,其中f是由一个扩展步骤E和4个并联的S盒组成,其结构如图1所示。f的输入数据为32bits的比特串A=a1||a2||a3||...||a32,这里“||”表示比特连接。首先,扩展变换E将A扩展为长为48bits的比特串E(A):
E(A)=a2||a3||a4||a5||a32||a1||a6||…||a1||a28||a29
E的比特选择方法见表1。然后将E输出的48bits数据作为4个并联的12-8的S盒的输入,得到32bits的输出数据f(A)。S盒的数据参见表3,表3的第n个数据表示S盒输入数据为n时,所对应的输出数据。
1.4)对f(k[i-8]),f(k[i-7]),f(k[i-3]),f(k[i-2]),Φj,j这6个数据进行异或操作,其中,Φj(j=0,1,2,3)是如下常数:
Φ0=3C2D240E
Φ1=E4BB73F6
Φ2=B40B34CD
Φ3=6C9D6334;
1.5)将步骤1.4)得到的异或结果循环左移j位,即得到子密钥k[i]。
1.6)计数器i加1,当i<72时,转步骤1.2),否则继续。
2.轮变换步骤:本步骤的输入数据为待加密的256bits原文数据。
2.1)非线性步骤
根据图2所示的结构,设输入数据为:L0||R0||L1||R1||L2||R2||L3||R3,其中Li,Ri(i=0,1,2,3)均为32bits长的数据,总长256bits。对L0||R0,计算: L 0 ′ = R 0 ⊕ f ( L 0 ⊕ K 0 ) , R′0=L0
这里表示异或操作。在第2轮中进一步计算:
L 0 ′ ′ = L 0 ′ = R 0 ⊕ f ( L 0 ⊕ K 0 ) , R 0 ′ ′ = R 0 ′ ⊕ f ( L 0 ′ ⊕ K 1 )
其中,K0,K1是子密钥。
对L1||R1,L2||R2,L3||R3也分别进行上述操作,对应的子密钥按照使用的先后顺序从2304bits子密钥中选取。这样就得到了非线性步骤的256bits输出数据:
L0″||R0″||L1″||R1″||L2″||R2″||L3″||R3
2.2)线性步骤
将非线性步骤输出的256bits数据,作为32个8bits长的二进制串的并联。将这32个二进制串作为一个32×1的向量,与矩阵P相乘,得到一个新的32×1的向量,该向量的256bits数据即为线性步骤的输出数据。矩阵P的数据见表2。
2.3)若步骤2.1与步骤2.2执行次数未达到7次,转到步骤2.1,否则继续。
3.末轮变换步骤:本步骤的输出数据为原文数据加密后得到的256bits密文数据。
3.1)非线性步骤:与步骤2.1)相同。
3.2)白化步骤:将步骤3.1)的输出数据与最后256bits子密钥异或,得到密文。
本发明的解密方法,由加密方法逆向进行即可。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
表1  E比特选择表
Figure GDA0000114578720000045
Figure GDA0000114578720000051
表2  P矩阵元素表
Figure GDA0000114578720000052
表3  S盒真值表
Figure GDA0000114578720000053
Figure GDA0000114578720000061
Figure GDA0000114578720000071
Figure GDA0000114578720000081
Figure GDA0000114578720000091
Figure GDA0000114578720000101
Figure GDA0000114578720000111
Figure GDA0000114578720000121
Figure GDA0000114578720000141
Figure GDA0000114578720000151

Claims (2)

1.一种分组密码加密方法,其特征在于,该方法包括如下步骤:
A.密钥编排步骤:
把256bits的种子密钥扩展为8个256bits的轮密钥及1个256bits的白化子密钥,分别作用于8个非线性步骤和最后的1次白化子密钥异或步骤;
所述步骤A的实现方法为:
1)将计数器i赋值为0;
2)将imod4的结果存入变量j;
3)求f(k[i-8]),f(k[i-7]),f(k[i-3]),f(k[i-2])的值,其中f是由一个扩展步骤E和4个并联的S盒组成,f的输入数据为32bits的比特串A=a1||a2||a3||…||a32,这里“||”表示比特连接,
首先,扩展变换E将A扩展为长为48bits的比特串E(A):
E(A)=a2||a3||a4||a5||a32||a1||a6||…||a1||a28||a29
然后将E输出的48bits数据作为4个并联的12-8的S盒的输入,得到32bits的输出数据f(A);
4)对f(k[i-8]),f(k[i-7]),f(k[i-3]),f(k[i-2]),Φj,j进行异或操作,其中Φj是常数;
5)将步骤4)得到的异或结果循环左移j位,得到子密钥k[i];
6)计数器i加1,当i<72时,转步骤2),否则继续;
B.轮变换步骤:
B1.非线性步骤:包括2轮的Feistel结构,配合12-8的S盒;
所述步骤B1的实现方法为:
设输入数据为:L0||R0||L1||R1||L2||R2||L3||R3,其中Li,Ri(i=0,1,2,3)均为32bits长的数据,对L0||R0,计算:
Figure FDA0000147393250000011
R0′=L0,这里
Figure FDA0000147393250000012
表示异或操作,进一步计算:
L 0 ′ ′ = L 0 ′ = R 0 ⊕ f ( L 0 ⊕ K 0 ) , R 0 ′ ′ = R 0 ′ ⊕ f ( L 0 ′ ⊕ K 1 )
其中,K0,K1为子密钥;
对L1||R1,L2||R2,L3||R3也分别进行上述操作,对应的子密钥按照使用的先后顺序从2304bits子密钥中选取,这样就得到了256bits输出数据:L0″||R0″||L1″||R1″||L2″||R2″||L3″||R3″;
B2线性步骤:采用一个GF(28)上的32×32MDS矩阵P,与输入的数据向量进行乘法操作;
所述步骤B2的实现方法为:
将步骤B1中输出的256bits数据,作为32个8bits长的二进制串的并联,将这32个二进制串作为一个32×1的向量,与矩阵P相乘,得到一个新的32×1的向量,该向量的256bits数据即为本步骤的输出数据;
B3若步骤B1与步骤B2执行次数未达到7次,转到步骤B1,否则执行步骤C;
C.末轮变换步骤:
C1.非线性步骤:与步骤B1相同;
C2.白化步骤:将步骤C1的输出数据与白化子密钥异或,得到密文。
2.如权利要求1所述的加密方法,其特征在于,所述Φj是如下常数:
Φ0=3C2D240E
Φ1=E4BB73F6
Φ2=B40B34CD
Φ3=6C9D6334。
CN2010102898463A 2010-09-23 2010-09-23 一种分组密码软件加密方法 Expired - Fee Related CN101938352B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102898463A CN101938352B (zh) 2010-09-23 2010-09-23 一种分组密码软件加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102898463A CN101938352B (zh) 2010-09-23 2010-09-23 一种分组密码软件加密方法

Publications (2)

Publication Number Publication Date
CN101938352A CN101938352A (zh) 2011-01-05
CN101938352B true CN101938352B (zh) 2012-07-04

Family

ID=43391502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102898463A Expired - Fee Related CN101938352B (zh) 2010-09-23 2010-09-23 一种分组密码软件加密方法

Country Status (1)

Country Link
CN (1) CN101938352B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110430038B (zh) * 2019-06-20 2022-11-29 中国人民解放军战略支援部队信息工程大学 分组密码设计中面向硬件实现的mds矩阵构造方法及装置
CN111147230A (zh) * 2019-12-31 2020-05-12 东方红卫星移动通信有限公司 一种基于低轨卫星物联网轻量级星间的信息加密传输方法
CN112636899B (zh) * 2020-09-21 2022-03-18 中国电子科技集团公司第三十研究所 一种轻量化s盒设计方法
CN112511293B (zh) * 2020-09-21 2022-03-18 中国电子科技集团公司第三十研究所 基于比特与运算的s盒参数化设计方法及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1697369A (zh) * 2005-06-14 2005-11-16 河北工业大学 分组密码加密解密的方法及其加密解密器
CN101578813A (zh) * 2007-01-11 2009-11-11 皇家飞利浦电子股份有限公司 跟踪实现的拷贝

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1697369A (zh) * 2005-06-14 2005-11-16 河北工业大学 分组密码加密解密的方法及其加密解密器
CN101578813A (zh) * 2007-01-11 2009-11-11 皇家飞利浦电子股份有限公司 跟踪实现的拷贝

Also Published As

Publication number Publication date
CN101938352A (zh) 2011-01-05

Similar Documents

Publication Publication Date Title
Rahim et al. Cryptography technique with modular multiplication block cipher and playfair cipher
Yegireddi et al. A survey on conventional encryption algorithms of Cryptography
CN113206736A (zh) 一种基于aes加密算法的加密方法
CN103152362B (zh) 基于云计算的大数据文件加密传输方法
CN109302280B (zh) 一种aes密钥扩展方法
Singh Modified Vigenere encryption algorithm and its hybrid implementation with Base64 and AES
JP2008513811A (ja) 計算変換の方法及びシステム
CN101938352B (zh) 一种分组密码软件加密方法
Kolate et al. An information security using DNA cryptography along with AES algorithm
Yan et al. An improved AES key expansion algorithm
CN108270545A (zh) 一种基于移动互联网的改进的des数据加密算法
CN102013974B (zh) 基于随机变化的非线性步骤的加密方法和解密方法
US20150172045A1 (en) Method of cryption
Tiwari Cryptography in blockchain
Deepthi Kakumani et al. Improved related-cipher attack on Salsa and ChaCha: revisited
Mendrofa et al. Collaborative encryption algorithm between vigenere cipher, rotation of matrix (ROM), and one time pad (OTP) algoritma
Kumar et al. A novel framework for secure file transmission using modified AES and MD5 algorithms
Rani et al. Implementation and comparison of hybrid encryption model for secure network using AES and Elgamal.
Tarawneh Cryptography: Recent Advances and Research Perspectives
Sulaiman et al. A new shift column transformation: an enhancement of Rijndael key scheduling
Phull et al. Symmetric cryptography using multiple access circular queues (MACQ)
CN112422278A (zh) 面向字节的随机多表替换加密与解密方法
Arunkumar et al. Nonce reuse/misuse resistance authentication encryption schemes for modern TLS cipher suites and QUIC based web servers
Azzawi Enhancing the encryption process of advanced encryption standard (AES) by using proposed algorithm to generate S-Box
Zhang et al. Cryptanalysis of acorn in nonce-reuse setting

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Zheng Zhiming

Inventor after: Zhang Xiao

Inventor after: Wang Wenhua

Inventor after: Gao Ying

Inventor after: Wang Zhao

Inventor after: Qiu Wangjie

Inventor before: Zheng Zhiming

Inventor before: Wang Wenhua

Inventor before: Zhang Xiao

Inventor before: Gao Ying

Inventor before: Wang Zhao

Inventor before: Qiu Wangjie

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ZHENG ZHIMING WANG WENHUA ZHANG XIAO GAO YING WANG ZHAO QIU WANGJIE TO: ZHENG ZHIMING ZHANG XIAO WANG WENHUA GAO YING WANG ZHAO QIU WANGJIE

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120704

Termination date: 20150923

EXPY Termination of patent right or utility model