資源簡介
華科密碼學2014年課設,包括SPN的課本算法實現,增加輪數,增加分組長度的加強版本可通過隨機性檢測的SPN實現,SPN的差分以及線性攻擊實現,暴力破解算法實現;DES算法實現,DES加解密文件算法實現,RSA算法實現。經過中國剩余定理以及蒙哥馬利算法優化的RSA算法實現。

代碼片段和文件信息
package?com.cyc.www.cry;
import?java.io.DataInputStream;
import?java.io.DataOutputStream;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.RandomAccessFile;
/**
?*?@since?2014/9/4
?*?@author?Hust
?*?密鑰為64位,明文,密文均處理成64位分組,輸入時數字用16進制表示
?*?加密文件時不考慮文件的編碼方式,只需要處理底層的字節流就可以了
?*/
public?class?DesTest?{
public?DesTest()?{
}
public?static?void?main(String[]?args)?throws?IOException?{
??//long?plain?=?0x0123456789ABCDEFL?key?=?0xFEDCBA9876543210L;
??//long?plain?=?0Lkey?=?0L;
//long?plain?=?0xFFFFFFFFFFFFFFFFLkey?=?0xFFFFFFFFFFFFFFFFL;
long?plain??=0x51454B582DDF440AL?key?=?0x3849674C2602319EL;
?//?long?plain?=?0x6c6561726e696e67Lkey?=?0x636f6d7075746572L;
//long?plain?=?0x434f4d5055544552L?key?=?0x5345435552495459L;
??DesTest?desTest?=?new?DesTest();
??desTest.getKey56(key);
??desTest.showEnAndDeDemo(key?plain);
}
public?void?showEnAndDeDemo(long?keylong?plain)?throws?IOException?{
System.out.printf(“明文是:%x\n“plain);
long?plainlong?=?Encry(plain?key);
System.out.printf(“加密最終的結果是:%x\n“?plainlong);
long?result?=?deCry(plainlong);
System.out.printf(“解密的結果:%x\n“result);
EncryFile(“D:\\測試文件.txt“?“D:\\1.txt“);
DecryFile(“D:\\1.txt“?“D:\\2.txt“);
}
public?long?Encry(long?plainlong?key)?{
long[]?[]?plaingroup?=?new?long[17][2];
plaingroup[0]?=?IPSub(plain?IPTable);
for?(int?i?=?0;?i?16;?i++)?{
plaingroup[i+1]?=encryOne(plaingroup[i]?keyArrage(i));
}
long?plainlong?=?(plaingroup[16][1]<<32)?+?plaingroup[16][0];
long[]?plainlongtemp?=?new?long[2];
plainlongtemp=?IPSub(plainlong?UnIPTable);
plainlong?=?(plainlongtemp[0]?<32)?+?plainlongtemp[1];
return?plainlong;
}
public?long?deCry(long?cihper)?{
long?[][]?decry?=?new?long[17][2];
decry[0]?=?IPSub(cihper?IPTable);
for?(int?i?=?0;?i?16;?i++)?{
decry[i+1]?=?encryOne(decry[i]keyArrage(15?-?i));
}
long?crylongF?=?(decry[16][1]<<32)?+?decry[16][0];
long[]??crylongtemp?=?new?long[2];
crylongtemp=?IPSub(crylongF?UnIPTable);
crylongF?=?(crylongtemp[0]<<32)?+?crylongtemp[1];
return?crylongF;
}
/*
?*?加密文件
?*/
public?void?EncryFile(String?plainFileString?cipherFile)?throws?IOException?{
long?last?=?0x0808080808080808L;
? byte[]?lastbit?=?new?byte[8];
long?plainTemp?=?0x0L;
? long?cipherTemp?=?0x0L;
? long?key?=?0x3849674C2602319EL;
try?{
FileInputStream?fin?=?new?FileInputStream(plainFile);
FileOutputStream?fout?=?new?FileOutputStream(cipherFiletrue);
DataInputStream??din?=?new?DataInputStream(fin);
DataOutputStream?dOut?=?new?DataOutputStream(fout);
RandomAccessFile?in?=?new?RandomAccessFile(plainFile?“r“);
long?length?=?in.length();
long?groups?=?length/8;
long?yuuu?=?length%8;
for?(int?i?=?0;?i? plainTemp?=?din.readLong();
cipherTemp?=?Encry(plainTemp?key)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????301??2014-07-13?09:43??CryTest\.classpath
?????文件?????????383??2014-07-21?10:48??CryTest\.project
?????目錄???????????0??2014-09-06?21:51??CryTest\.settings\
?????文件?????????598??2014-07-13?09:43??CryTest\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2014-09-07?10:48??CryTest\bin\
?????目錄???????????0??2014-09-07?10:48??CryTest\bin\com\
?????目錄???????????0??2014-09-07?10:48??CryTest\bin\com\cyc\
?????目錄???????????0??2014-09-07?10:48??CryTest\bin\com\cyc\www\
?????目錄???????????0??2014-09-12?23:39??CryTest\bin\com\cyc\www\cry\
?????文件???????12083??2014-09-12?19:40??CryTest\bin\com\cyc\www\cry\DesTest.class
?????文件????????2699??2014-09-12?20:54??CryTest\bin\com\cyc\www\cry\MgmlDemo.class
?????文件????????3668??2014-09-12?09:46??CryTest\bin\com\cyc\www\cry\RSA.class
?????文件????????6473??2014-09-12?23:36??CryTest\bin\com\cyc\www\cry\SPN.class
?????文件????????6034??2014-09-11?15:33??CryTest\bin\com\cyc\www\cry\SPN_ATTACK_DIFF.class
?????文件????????6278??2014-09-11?15:24??CryTest\bin\com\cyc\www\cry\SPN_ATTACK_LINEAR.class
?????文件????????5630??2014-09-07?10:48??CryTest\bin\com\cyc\www\cry\SPNF.class
?????目錄???????????0??2014-09-02?19:36??CryTest\src\
?????目錄???????????0??2014-09-02?19:36??CryTest\src\com\
?????目錄???????????0??2014-09-02?19:36??CryTest\src\com\cyc\
?????目錄???????????0??2014-09-02?19:36??CryTest\src\com\cyc\www\
?????目錄???????????0??2014-09-12?23:39??CryTest\src\com\cyc\www\cry\
?????文件???????13433??2014-09-12?19:40??CryTest\src\com\cyc\www\cry\DesTest.java
?????文件????????1882??2014-09-12?20:54??CryTest\src\com\cyc\www\cry\MgmlDemo.java
?????文件????????3167??2014-09-12?09:46??CryTest\src\com\cyc\www\cry\RSA.java
?????文件????????5190??2014-09-12?23:36??CryTest\src\com\cyc\www\cry\SPN.java
?????文件????????6265??2014-09-11?15:33??CryTest\src\com\cyc\www\cry\SPN_ATTACK_DIFF.java
?????文件????????6898??2014-09-11?15:24??CryTest\src\com\cyc\www\cry\SPN_ATTACK_LINEAR.java
?????文件????????5538??2014-09-07?10:45??CryTest\src\com\cyc\www\cry\SPNF.java
?????文件????????2407??2014-09-02?10:45??CryTest\測試數據.txt
- 上一篇:黑客工具包大全.doc
- 下一篇:DNS隱秘隧道pcap包
評論
共有 條評論