资源简介
国密算法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
相关资源
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
- 操作系统作业 (pv,作业管理,等5个
- 基于C/S架构考试系统(Java)
- java access 仓库管理系统 源码
- 一元多项式相加 java实现
- java软件工程师简历模板——应届生
- DES(CFB) JAVA
- java读取局域网共享机器文件
- [免费]java学习 存储过程
- pl/0词法分析器和语法分析器(java)
评论
共有 条评论