• 大小: 38KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: s/key  

资源简介

自己设计的一个很简单的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\mainframe\
     文件        3600  2014-04-24 16:28  Cryptography\bin\csu\zjq\mainframe\Mainframe.class
     文件        1138  2014-04-23 20:55  Cryptography\bin\csu\zjq\mainframe\Skeyframe$1.class
     文件        1474  2014-04-23 20:55  Cryptography\bin\csu\zjq\mainframe\Skeyframe$2.class
     文件        1963  2014-04-23 20:55  Cryptography\bin\csu\zjq\mainframe\Skeyframe.class
     目录           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个文件信息

评论

共有 条评论

相关资源