资源简介
国密算法SMS4的JAVA实现
该算法已经通过国密网站的标准数据进行对比,中间变量与结果均一致,完全正确。
SMS算法是一个分组算法。该算法的分组长度为 128 比特,密钥长度为 128 比特。加密算法与密钥扩展算法都采用 32 轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
代码片段和文件信息
package test;
import java.util.Arrays;
public class SMS4 {
private static final int ENCRYPT=1;
private static final int DECRYPT=0;
public static final int ROUND=32;
private static final int BLOCK=16;
private byte[] Sbox={
(byte) 0xd6(byte) 0x90(byte) 0xe9(byte) 0xfe(byte) 0xcc(byte) 0xe10x3d(byte) 0xb70x16(byte) 0xb60x14(byte) 0xc20x28(byte) 0xfb0x2c0x05
0x2b0x67(byte) 0x9a0x760x2a(byte) 0xbe0x04(byte) 0xc3(byte) 0xaa0x440x130x260x49(byte) 0x860x06(byte) 0x99
(byte) 0x9c0x420x50(byte) 0xf4(byte) 0x91(byte) 0xef(byte) 0x980x7a0x330x540x0b0x43(byte) 0xed(byte) 0xcf(byte) 0xac0x62
(byte) 0xe4(byte) 0xb30x1c(byte) 0xa9(byte) 0xc90x08(byte) 0xe8(byte) 0x95(byte) 0x80(byte) 0xdf(byte) 0x94(byte) 0xfa0x75(byte) 0x8f0x3f(byte) 0xa6
0x470x07(byte) 0xa7(byte) 0xfc(byte) 0xf30x730x17(byte) 0xba(byte) 0x830x590x3c0x19(byte) 0xe6(byte) 0x850x4f(byte) 0xa8
0x680x6b(byte) 0x81(byte) 0xb20x710x64(byte) 0xda(byte) 0x8b(byte) 0xf8(byte) 0xeb0x0f0x4b0x700x56(byte) 0x9d0x35
0x1e0x240x0e0x5e0x630x58(byte) 0xd1(byte) 0xa20x250x220x7c0x3b0x010x210x78(byte) 0x87
(byte) 0xd40x000x460x57(byte) 0x9f(byte) 0xd30x270x520x4c0x360x02(byte) 0xe7(byte) 0xa0(byte) 0xc4(byte) 0xc8(byte) 0x9e
(byte) 0xea(byte) 0xbf(byte) 0x8a(byte) 0xd20x40(byte) 0xc70x38(byte) 0xb5(byte) 0xa3(byte) 0xf7(byte) 0xf2(byte) 0xce(byte) 0xf90x610x15(byte) 0xa1
(byte) 0xe0(byte) 0xae0x5d(byte) 0xa4(byte) 0x9b0x340x1a0x55(byte) 0xad(byte) 0x930x320x30(byte) 0xf5(byte) 0x8c(byte) 0xb1(byte) 0xe3
0x1d(byte) 0xf6(byte) 0xe20x2e(byte) 0x820x66(byte) 0xca0x60(byte) 0xc00x290x23(byte) 0xab0x0d0x530x4e0x6f
(byte) 0xd5(byte) 0xdb0x370x45(byte) 0xde(byte) 0xfd(byte) 0x8e0x2f0x03(byte) 0xff0x6a0x720x6d0x6c0x5b0x51
(byte) 0x8d0x1b(byte) 0xaf(byte) 0x92(byte) 0xbb(byte) 0xdd(byte) 0xbc0x7f0x11(byte) 0xd90x5c0x410x1f0x100x5a(byte) 0xd8
0x0a(byte) 0xc10x31(byte) 0x88(byte) 0xa5(byte) 0xcd0x7b(byte) 0xbd0x2d0x74(byte) 0xd00x12(byte) 0xb8(byte) 0xe5(byte) 0xb4(byte) 0xb0
(byte) 0x890x69(byte) 0x970x4a0x0c(byte) 0x960x770x7e0x65(byte) 0xb9(byte) 0xf10x09(byte) 0xc50x6e(byte) 0xc6(byte) 0x84
0x18(byte) 0xf00x7d(byte) 0xec0x3a(byte) 0xdc0x4d0x200x79(byte) 0xee0x5f0x3e(byte) 0xd7(byte) 0xcb0x390x48
};
private int[] CK={
0x00070e15 0x1c232a31 0x383f464d 0x545b6269
0x70777e85 0x8c939aa1 0xa8afb6bd 0xc4cbd2d9
0xe0e7eef5 0xfc030a11 0x181f262d 0x343b4249
0x50575e65 0x6c737a81 0x888f969d 0xa4abb2b9
0xc0c7ced5 0xdce3eaf1 0xf8ff060d 0x141b2229
0x30373e45 0x4c535a61 0x686f767d 0x848b9299
0xa0a7aeb5 0xbcc3cad1 0xd8dfe6ed 0xf4fb0209
0x10171e25 0x2c333a41 0x484f565d 0x646b7279
};
private int Rotl(int xint y)
{
return x<<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2012-11-27 09:14 SMS4JA\.classpath
文件 382 2012-11-27 09:14 SMS4JA\.project
文件 598 2012-11-27 09:14 SMS4JA\.settings\org.eclipse.jdt.core.prefs
文件 5356 2012-12-03 16:01 SMS4JA\bin\test\SMS4.class
文件 2653 2012-12-03 16:01 SMS4JA\bin\test\testMain.class
文件 6108 2012-11-28 18:23 SMS4JA\src\test\SMS4.java
文件 2321 2012-11-29 09:34 SMS4JA\src\test\testMain.java
目录 0 2012-12-18 10:18 SMS4JA\bin\test
目录 0 2012-12-18 10:18 SMS4JA\src\test
目录 0 2012-12-18 10:18 SMS4JA\.settings
目录 0 2012-12-18 10:18 SMS4JA\bin
目录 0 2012-12-18 10:18 SMS4JA\src
目录 0 2012-12-18 10:18 SMS4JA
----------- --------- ---------- ----- ----
17719 13
- 上一篇:java多线程视频教程共七套
- 下一篇:咕泡2018最新Java架构师培训二.txt
相关资源
- IDEA算法(java)
- 有关于计算机JAVA经典的外文翻译
- java面试笔试题 选择题 问答题 带答案
- java导出txt文件并以&分隔符每个字段数
- JAVA基础编程练习题50题及经典算法9
- commons-fileupload.jar和commons-io.jar
- Java电话计费卡程序源代码
- java连接数据库实现银行管理系统
- 计算机专业外文翻译(JAVA)
- Java实习报告
- jxl.jar包最新jar包亲测可用
- 阿里巴巴Java开发手册(正式版)326
- 银行家算法java实现带UI界面各个类文
- JavaService-2.0.10.zip,包含中文使用说明
-
sc
ript-api.jarphp-servlet.jarphp-sc ript. - java商场VIP消费情况查询系统
- 基于JAVA的医院门诊管理系统
- mvc框架+实现留言板JSP+Servletjavabean.r
- 密码管理器(Java)GUI
- java接口使用
- dom4j 官方绿色完整jar包
- GB28181国标28181的JAVA注册实现代码
- java计算器的实现--ppt课件
- B+树的创建java源码
- java文件上传案例
- jBPM4教程私塾在线视频配套学习资料
- 基于HttpClient 4.3的可访问自签名HTTPS站
- java 简单算式计算器
- 双色球设计
- JAVA实现的通讯录 能实现联系人的查找
评论
共有 条评论