资源简介
华科密码学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 < groups; 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包
相关资源
- Remote Desktop Organizer v1.4.7 支持win10
- 3des加解密_C 实现
- RSA AES DES ECC加密算法源码
- 密码学课程设计:DES加密解密算法的
- 提供几个加密算法的源码
- DES IP置换IP逆置换
- DES的C 源码
- Design of Analog CMOS Integrated Circuits 拉扎
- codesys编程手册中文版
- System Design Interview - An Insider’s Guide
- Grokking the System Design Interview
- 翻译的美国大学经典参考书,Roland
- 认识界面以及PCB设计整体要求
- The Research on Smart Drill-in Fluid Design
- 埃塞俄比亚东北部Dessie转诊医院的糖
- Altium designer超全元件库+封装库部分
- dive into design patterns(Alexander Shvets)
- Antenna Theory Analysis and Design.3rd Edition
- FMEDesktop2019特别版forMacv2019.0.0.0.19181苹
- LANDesk 管理解决方案和采用英特尔:r
- Mentor Graphics Expedition Enterprise v7.9.5.r
- PowerDesigner16.6 破解补丁
- Altium Designer实战攻略与高速PCB设计P
- 复旦dc综合工具教程
- lotus domino notes(包括client administrato
- Type-c 接口封装,24引脚,Altium Design
- Behavior Designer 1.6.3(u2018.3.0).unitypa
- Codesys变成入门手册
- xenapp 7.6 xendesktop 7.6 企業版55永久用戶
-
Databa
se Reliability Engineering Designing
评论
共有 条评论