我的介绍。 |
密码学的艺术和科学是将信息以使它安全从意想不到的接受者或使用。加密技术的两个基本构建块用于块密码替换和换位。替代技术的明文字母替换为其他字母但是在换位技术,洗牌的比特被执行时,通过应用一些排列。世界范围内加密标准,如DES(数据加密标准)、AES(高级加密标准)和ee(契约里的加密标准),其中一些仍然广泛用于解决沟通的问题在一个不安全的通道。但是,与今天的先进技术他们似乎不像一个想安全、快速。在本文中,我们提出了对称加密技术比传统的基于Feistel密码计划有两大优点。首先,加密和解密过程更简单,因此更快。第二,安全级别高是由于固有的自然poly-alphabetic替换映射方法中使用的加密过程和转置操作执行后一级密文的一代。 |
二世。文献综述 |
1997年国家标准与技术研究所宣布竞争算法的(DES)[1]替换并举行公开会议讨论的标准提出了高级加密标准(AES) [6]。1999年NIST宣布五个决赛:火星[12],将[13],Rijndael [14], Twofish蛇[15],[16]。火星把128位的输入块分为4个32位字。火星使用32-round失衡Feistel网络:在每一轮一个数据字和一些关键字修改剩余的数据的话。将,20-round Feistel RSA密码的安全公司,要简单得多。Pre-whitening ?和Post美白?步骤被用来增加算法的强度,美白是一个简单的主意Xor材料的输入或输出材料的关键。Twofish 16 -轮Feistel网络有两个修改。一个是比特旋转之前和之后的数据进入圆的函数。 The other alteration is dynamic S-boxes. In serpent ,there are 32 rounds—a high number—each of which consists of XORing the key and the intermediate data, a pass through Sboxes, and a linear function that combines fixed rotations and XOR. Bruce Scheneir[17] proposed a fast and unpatented block cipher available freely to people for public use. Blowfish[18] is a secret-key block cipher, is a Feistel network, iterating a simple encryption function 16 times. The block size is 64 bits, and the key can be any length up to 448 bits. Although there is a complex initialization phase required before any encryption can take place, the actual encryption of data is very efficient on large microprocessors. |
三世。算法 |
FPSKEA是一个块密码,需要输入的128位的明文块产生128位和128位的关键的密文块。它是一个基于多个应用程序的产品密码substitution-permutation因此是一个基于SP-network密码组合。它的基本结构是解释如下图所示。 |
以上架构清晰地显示了加密和解密过程用于将明文转换为从密文密文和明文分别。在加密过程中,鉴于明文消息分为16个字符块(相当于128位),那么每个块128位通过替换映射部分,它将给定的明文块(128位)转换成一级密码文本块(128位),使用128位的关键。这一级密文块送入换位部分,第一级密文块转换成最终的使用四子密钥来自原始密钥密文块中使用这种换位部分结合置换操作。如果? n的块的数量在一个给定的消息,上面写程序是重复? n”的次数将完整的明文消息转换成密文信息。 |
的反向过程解密密文块转换为明文块也显示在图5.1。在解密过程中,密文块(128位)是通过Detransposition部分首先,将它转换成水平一个密文块通过使用四子键来源于原始键(128位)和通过应用反向排列操作。这一级密码文本块然后通过逆映射部分,产生原始明文块,通过使用和反向替换操作的关键。 |
加密过程 |
加密方法包括三个简单的步骤 |
1)矩阵使用密钥和初始化 |
2)替换映射使用天地盒(矩阵)和 |
3)换位操作使用数组和资料库。 |
IMPLEMENTAION算法 |
STEP.1初始矩阵结构 |
一个矩阵九十五16行和列定义。列矩阵的每一行充满了ASCII编码的字符从空白(ASCII = 32) 0到列(ASCII = 126)九十四年列代表的元素矩阵。 |
代码1初始化过程。 |
因为我= 0 to15 |
j = 0到94 |
M[我][j] = + 32 |
EndFor |
Code.1:初始化矩阵M的明文字符的ASCII代码 |
一个16字符(128位)密钥K与关键人物K通过K[15][0]是用于加密和解密。第i行矩阵给出一个初始的圆形转变,许多倍的数量等于ASCII代码(i + 1) th关键字符转移矩阵m的内容,因为我= 0到14岁。例如如果k[1]是什么?“ASII值为97的矩阵的行0 M应该对循环移位的97倍。 |
Code2。循环移位操作应用于M矩阵的行。 |
我= 0到14 |
n = ASCII (k (i + 1)) |
m = 0到n |
j = 94 0 |
M M[我][j + 1] =[我][j] |
EndFor |
EndFor |
n = ASCII (k [0]) |
= 0到n形式 |
j = 94 0 |
M [15] [j + 1] = M [15] [j] |
EndFor |
M M [15] [0] = [15] [95] |
EndFor |
这些正确的循环操作使矩阵的内容的安排只有消息的发送方和接收方知道而不是敌人的关键是未知的。 |
进一步给出了矩阵的i行右二循环转变尽可能多的次数等于ASCII (K(我)转移矩阵M的内容,因为我= 0到15。例如,行0 M是正确的循环将尽可能多的次数等于的ASCII值K [0]。矩阵的第一行M是给出一个正确的循环移位尽可能多的次数等于关键字符的ASCII值K[1]等等。 |
代码3秒循环移位操作应用于矩阵M的行。 |
因为我= 0到15 |
n = ASCII (K[我]) |
m = 0到n |
j = 94 0 |
M M[我][j + 1] =[我][j] |
EndFor |
M[我][0]= M[我][95] |
EndFor |
EndFor |
这些转移操作确保没有对手将无法找到一个引用从他/她可以开始工作提取密钥,即使他/她能够获得一个纯文本消息和相应的密文信息。这些循环右移操作的行矩阵M只做一次,在一个加密的开始部分。 |
替换映射过程 |
代码4显示了映射过程中使用纯文本字符块转化为一级密文字符块。给定消息如果分为16块纯文本字符。字符p[我]是,如果计算j =纯文本字符的ASCII代码p[我]- 32。这个数字j,用作矩阵的列数m .使用j列号我们继续发现矩阵的元素i行。这个元素是作为一级密文字符cL1[我]对于一个给定的纯文本字符p[我]。例如,对于纯文本字符P[0]在一块我= 0,j =纯文本字符的ASCII代码P[0] - 32用作矩阵的列数行0 M获得一级密文字符对应P [0]。通过这种方式,所有的16块纯文本字符被映射到16使密文字符用cL[我],我= 0到15。 |
纯文本字符的代码4映射块使密文字符。 |
因为我= 0到15 |
J = ASCII (p[我]- 32) |
cL1[我]= M[我][j] |
EndFor |
步骤2。换位 |
使有效的密文字符cL1[我]在一块16生产使用矩阵M进一步转置使用数组的元素循环左移和右使用资料库来自密钥。这个操作使输出结果密文字符很难由任何对手没有密钥解密。 |
查寻代 |
四个资料库ks1 ks2 ks3和ks4生成使用密钥K这样的角色: |
Ks1 = (ASCII编码的字符和k的国防部13)+ 1 |
1 < = ks1 < = 13 |
Ks2 = (ASCII编码的字符和k的国防部5)+ 1 |
1 < = ks2 < = 5 |
Ks3 = (ASCII编码的字符和k的国防部6)+ 1 |
1 < = ks3 < = 6 |
Ks4 = (ASCII编码的字符和k的国防部14)+ 1 |
1 < = ks4 < = 14 |
代码5查寻生成过程 |
n = o |
因为我= 0到15 |
n = n + ASCII (K[我]) |
EndFor |
ks1 = (n % 13) + 1 |
ks2 = (n % 5) + 1 |
ks3 = (n % 6) + 1 |
ks4 = (n % 14) + 1 |
步骤3。换位的一级密文字符数组。 |
一级密文字符的字符块(CL1(0)通过CL1(15)转移到一个16个元素数组A1。数组A1是正确的循环将尽可能多的次数等于Ks1的整数值。这个操作之后,前八的元素A1(左大多数元素)转移到另一个数组A2拥有8个元素位置。然后,A2是正确的循环将尽可能多的次数等于Ks2的整数值。其他八个元素的数组A1(最右边的元素)转移到另一个8元素数组A3是左圆了尽可能多的次数等于Ks3的整数值。然后A2和A3是连接转移到16个元素数组A4。这16个元素数组,A4。是正确的循环将尽可能多的次数等于Ks4的整数值。 |
换位操作上执行一级密文字符 |
一级密码文本块转移到数组, |
因为我= 0到15 |
A1[我]= CL1[我] |
EndFor |
正确的循环移位一级密码textblock数组A1使用查寻ks1 |
ks1 n = 0 |
因为我= 15 - 0 |
A1 (i + 1) = A1(我) |
EndFor |
A1 A1 [0] = [16] |
EndFor |
一半的数组A1转移到数组A2和正确使用循环转变查寻ks2 |
因为我= 0到7 |
A2 A1[我]=[我] |
EndFor |
Ks2 n = 0 |
因为我= 7 - 0 |
A2 (i + 1) = A2(我) |
EndFor |
A2 [0] = A2 [8] |
EndFor |
转移另一半A1数组的数组A3,圆形转变使用查寻ks3。 |
因为我= 0到7 |
A3[我]= A1 (i + 8) |
EndFor |
Ks3 n = 0 |
A3 [8] = A3 [0] |
因为我= 0到7 |
A3[我]= A3 (i + 1) |
EndFor |
EndFor |
连接A2 andA3 A4和转让 |
因为我= 0到7 |
A4[我]= A2(我) |
EndFor |
我= o 7 |
A4 (i + 8) = A3(我) |
EndFor |
对圆形转变一级密码文本块数组A4使用查寻ks4 |
ks4 n = 0 |
因为我= 15 - 0 |
A4 (i + 1) = A4(我) |
EndFor |
A4 [0] = A4 [16] |
EndFor |
一级密文字符的代码。6,换位在一块使用数组 |
这个操作之后,A4represent密文字符的内容在一个给定的块。数组的元素A4搬到密文块C(0)通过C (15)。转移操作代码所示。7所示。密文块用于创建输出密文信息文件。 |
因为我= 0到15 |
[我]C[我]= A4 |
EndFor |
Code.7:转置一级密文字符转移到密文块。 |
解密过程。 |
加密的加密算法执行相反的操作,P = D (K、C)。它是在三个步骤中完成。这里,密文字符C (i),在16块使用数组和马t r我处理。加密算法,生成符合的密钥一样的加密算法。 |
步骤1。最初的矩阵结构。 |
一个相同的矩阵M,用于将明文字符映射到一级密文字符,用来做逆映射的一级密文字符在解密成明文字符。解密网站,这个矩阵是使用密钥创建的K一样的加密。 |
步骤2。De-transposition密文字符使用数组。 |
参考代码。8展示de-transposing操作进行密文字符使用循环转变:ied opposi te的基于“增大化现实”技术的射线方向。de-transposing操作转换为C[我]CL1[我]。 |
/ /传输密文块数组A4 |
我= 15 |
A4[我]= C[我] |
EndFor |
/ /左循环转变一级密码文本块数组A4使用查寻ks4 |
Ks4 n = 0 |
A4 [16] = A4 [0] |
因为我= 0到15 |
A4[我]= A4 (i + 1) |
EndFor |
EndFor |
/ /数组的一半A4转移到数组A2和左循环转变使用查寻ks2 |
因为我= 0到7 |
A2[我]= A4(我) |
Endfor |
ks2 n = 0 |
A2 [8] = A2 [0] |
EndFor |
因为我= 0到7 |
A2[我]= A2 (i + 1) |
EndFor |
/ /传递数组A4的另一半数组A3和右循环转变使用查寻ks3 |
因为我= 0到7 |
A3[我]= A4 (i + 8) |
EndFor |
ks3 n = 0 |
因为我= 7 - 0 |
A3 (i + 1) = A3(我) |
EndFor |
A3 [0] = A3 [8] |
EndFor |
/ /连接A2and A3我到A1 |
因为我= 0到7 |
A1[我]= A2(我) |
EndFor |
因为我= 0到7 |
1 (i + 8) = A3(我) |
EndFor |
/ /左循环转变一级密码文本块数组A1使用查寻ks1 |
Ks1 n = 0 |
A1 A1 [16] = [0] |
因为我= 0到15 |
A1[我]= A1 (i + 1) |
EndFor |
EndFor |
/ /移动de-transposed密文字符块一级密码文本块使用数组 |
因为我= 0到15 |
CL1[我]= A4(我) |
EndFor |
Code8: De-transposition密文字符在一块使用 |
密文字符,通过c [15] c[0],在文本块转移到16个元素数组A4。这个数组左循环移位尽可能多的次数等于tio关键Ks4的整数值。此操作前八后转移到另一个数组中的元素A2拥有八个元素然后这个数组左循环移位尽可能多的次数等于关键Ks2的整数值。其他八个元素的数组A1转移到数组A3就圆了尽可能多的次数等于关键Ks3那么A2和A3数组的内容连接到数组A1自己拥有16个元素数组A1左循环移位尽可能多的次数等于关键Ks1的整数值。 |
这个操作数组的内容后A1correspondas总公司一级密文字符块对应的映射操作完成后获得的一个加密使用矩阵。 |
步骤3。使用矩阵逆映射 |
如果cL1[我]是总公司一级密文字符块,逆映射,完成P[我]= char((列号j i行矩阵M, cL1[我]元素)+ 32)。例如,我们第一级密文字符,Cl1[1],在一块? #”,继续搜索#发现列的矩阵M。j在第一行cL1 [1] = [1] [j]。然后我们确定字符的ASCII = (j + 32)赋予相对应的明文字符P [1] cl1 [1]。这样我们可以逆密文字符每一块映射到回到原始消息明文字符文件。 |
Code9。逆映射的一级密文字符到明文字符使用矩阵M。 |
因为我= 0到15 |
J = 0 |
虽然cL1[我]不等于M[我][j] |
J = + 1 |
EndWhile |
是谁的ASII P[我]=字符(j + 32) |
EndFor |
四。结论 |
拟议中的对称加密技术有两个最重要的优势传统方案基于Feistel密码。首先,加密和解密过程更简单,因此更快。第二,安全级别高是由于固有的自然poly-alphabetic替换映射方法中使用的加密过程和转置操作执行后一级密文的一代。 |
|
数据乍一看 |
|
图1 |
|
|
引用 |
- 菲利普Kilian . Rogaway ?如何保护DES对详尽的关键搜索?密码学的发展——加密”96年,斯普林格出版社,第267 - 252页,1996年
- 托马斯B。E、哔叽.V,证明安全的AES Substitution-Permutation网络?2005年12日国际研讨会,囊,第二卷。3897年,p . 65 - 81年,2005年
- 威廉·C巴克?推荐的TripleData加密算法(TDEA)分组密码?,IJCSAC, 2005年。
- 萨达姆政权El-Garf El-Ramly, t·苏莱曼A.H.,?Dynamic generation of s-boxes in block cipher systems?:CryptoScience会议,诉讼国家出版十八,体积:2,页:389 - 397年,2003年
- 5。埃琳娜·c . Laskari Gerasimos c . Meletiou和迈克尔·n·Vrahatis ?利用演化计算方法的设计S-Boxes吗?2001年,联邦InformationProcessing标准出版197年11月26日。
- 宣布高级加密标准(AES),联邦信息处理标准Publication197, 2001年11月26日。
- 胡安·索托和劳伦斯Bassham ?先进的随机性测试EncryptionStandard入围候选人吗?计算机安全部门,国家标准与技术研究所,2000年3月28日
- 苏珊朗道? 21世纪通信安全:高级加密标准?AMS的通知,体积47,第四,apr2000。
- SchneierB。, ?快速软件加密?剑桥安全研讨会论文集(1993年12月),斯普林格出版社,1994,第204 - 191页,1993
- AameerNadeem, m . YounusJaved博士“性能分析的数据encrption标准”,0 - 7803 - 9421 - 6/2005 IEEE。
- 苏珊朗道?站测试时间:DataEncryption标准吗?3月,通知AMS, Vol47,没有。3,MARCH2000。
- Carolynn Burwick,铜匠,爱德华。D。阿维尼翁,火星加密算法?,CiteSeer, 1997年。
- 罗纳德·l·Rivest1 M.J.B. Robshaw2, r . Sidney2和Y.L. Yin2, ?将块密码吗?麻省理工学院计算机科学实验室报告,20 - 30页,1998年。
- Bruce Schneier约翰·凯尔西Doug鳕鱼,大卫·瓦格纳NielsFerguson克里斯·霍尔”CiteSeer TwofishA 128位块密码?,1998。
- 罗斯•Anderson1 EliBiham, Lars克努森?蛇:2000年高级加密标准的建议吗?。
- Christophe De Canniere,亚历克斯科夫和巴特Preneel”介绍块地穴分析”IEEE学报》,第94卷,2号,2006年。
- PriyaDhawan,性能比较:安全设计选择?2002年10月,微软开发者网络。
- Schneier B。,?Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)?Fast Software Encryption, Cambridge Security WorkshopProceedingSpringer-Verlag, pp. 191-2041994.
|