资源简介
自己设计的一个很简单的s/key协议的实现方法。
代码片段和文件信息
package csu.zjq.des;
/**
* 加密过程:
* 1.初始置换IP:将明文顺序打乱重新排列,置换输出为64位。
* 2.将置换输出的64位明文分成左右凉拌,左一半为L0,右一半称为R0,各32位。
* 3。计算函数的16轮迭代。
* a)第一轮加密迭代:左半边输入L0,右半边输入R0:由轮函数f实现子密钥K1对R0的加密,
* 结果为32位数据组f(R0K1)
* b)第二轮加密迭代:左半边输入L1=R0,右半边输入R1=L0⊕f(R0K1)由轮函数f实现子密钥
* K2对R1的加密,结果为32位数据组f(R1,K2),f(R1K2)与L1模2相加,得到一个32为数据组 L1⊕f(R1K2).
* c)第3到16轮迭代分别用密钥K3,K4……K16进行。 4.再经过逆初始置换IP-1,将数据打乱重排,生成64位密文。
*
* 子密钥生成过程:
* 1.将64位的密钥经过PC-1置换生成56位密钥。
* 2.将56位的密钥分成左右两部分,分别进行移位操作(一共进行16轮),产生16个56位长度的子密钥。
* 3.将16个56位的子密钥分别进行PC-2置换生成16个48位的子密钥。
*
* 轮函数f的工作过程:
* 1.在第i次加密迭代过程中,扩展置换E对32位的Ri-1的各位通过置换表置换为48位的输出。
* 2.将该48位的输出与子密钥Ki进行异或操作,运算结果经过S盒代换运算,得到一个32位比特的输出。
* 3该32位比特输出再经过P置换表进行P运算,将其各位打乱重排,生成32位的输出。
*
*
*/
public class DES {
int[] byteKey;
public DES(int[] byteKey) {
this.byteKey = byteKey;
}
private static final int[] IP = { 58 50 42 34 26 18 10 2 60 52
44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48
40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35
27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31
23 15 7 }; // 64
private static final int[] IP_1 = { 40 8 48 16 56 24 64 32 39 7
47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45
13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11
51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49
17 57 25 }; // 64
private static final int[] PC_1 = { 57 49 41 33 25 17 9 1 58 50
42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44
36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6
61 53 45 37 29 21 13 5 28 20 12 4 }; // 56
private static final int[] PC_2 = { 14 17 11 24 1 5 3 28 15 6 21
10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47
55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36
29 32 }; // 48
private static final int[] E = { 32 1 2 3 4 5 4 5 6 7 8 9 8 9
10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20
21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 }; // 48
private static final int[] P = { 16 7 20 21 29 12 28 17 1 15 23
26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22
11 4 25 }; // 32
private static final int[][][] S_Box = {// S-�?
{// S_Box[1]
{ 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 }
{ 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 }
{ 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 }
{ 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 } }
{ // S_Box[2]
{ 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 }
{ 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 }
{ 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 }
{ 13 8 10 1 3 15 4
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-04-18 02:03 Cryptography\
文件 301 2014-04-11 10:26 Cryptography\.classpath
文件 388 2014-04-11 10:26 Cryptography\.project
目录 0 2014-04-11 10:32 Cryptography\.settings\
文件 181 2014-04-18 08:30 Cryptography\.settings\org.eclipse.core.resources.prefs
文件 598 2014-04-11 10:26 Cryptography\.settings\org.eclipse.jdt.core.prefs
目录 0 2014-04-23 20:55 Cryptography\bin\
目录 0 2014-04-23 20:55 Cryptography\bin\csu\
目录 0 2014-04-23 20:55 Cryptography\bin\csu\zjq\
目录 0 2014-04-23 20:55 Cryptography\bin\csu\zjq\des\
文件 11095 2014-04-23 20:55 Cryptography\bin\csu\zjq\des\DES.class
目录 0 2014-04-23 20:55 Cryptography\bin\csu\zjq\mainfr
文件 3600 2014-04-24 16:28 Cryptography\bin\csu\zjq\mainfr
文件 1138 2014-04-23 20:55 Cryptography\bin\csu\zjq\mainfr
文件 1474 2014-04-23 20:55 Cryptography\bin\csu\zjq\mainfr
文件 1963 2014-04-23 20:55 Cryptography\bin\csu\zjq\mainfr
目录 0 2014-04-23 20:55 Cryptography\bin\csu\zjq\rc4\
文件 1666 2014-04-23 20:55 Cryptography\bin\csu\zjq\rc4\RC4.class
目录 0 2014-04-23 20:55 Cryptography\bin\csu\zjq\rsa\
文件 5218 2014-04-23 20:55 Cryptography\bin\csu\zjq\rsa\RSA.class
文件 2777 2014-04-23 20:55 Cryptography\bin\csu\zjq\rsa\RSAy.class
目录 0 2014-04-23 20:55 Cryptography\bin\csu\zjq\skey\
文件 2075 2014-04-23 20:55 Cryptography\bin\csu\zjq\skey\MD5String.class
文件 3071 2014-04-23 20:55 Cryptography\bin\csu\zjq\skey\Skey.class
文件 1 2014-04-25 01:38 Cryptography\int.txt
文件 3366 2014-04-25 01:34 Cryptography\md5.txt
目录 0 2014-04-11 10:27 Cryptography\src\
目录 0 2014-04-11 10:27 Cryptography\src\csu\
目录 0 2014-04-17 23:16 Cryptography\src\csu\zjq\
目录 0 2014-04-11 10:28 Cryptography\src\csu\zjq\des\
文件 14354 2014-04-17 23:35 Cryptography\src\csu\zjq\des\DES.java
............此处省略11个文件信息
评论
共有 条评论