资源简介
中国商用密码.rar
代码片段和文件信息
//qibaofu
package com.sure.crypto.digests;
import com.sure.crypto.util.Pack;
public class SM3Digest extends GeneralDigest{
private static final int DIGEST_LENGTH = 32;
private int[] X = new int[68];
private int[] Y = new int[64];
private int xOff;
private int H1 H2 H3 H4 H5 H6 H7 H8;
private static final int T1 = 0x79cc4519;
private static final int T2 = 0x7a879d8a;
public SM3Digest() {
// TODO Auto-generated constructor stub
reset();
}
public SM3Digest(SM3Digest t)
{
super(t);
H1 = t.H1;
H2 = t.H2;
H3 = t.H3;
H4 = t.H4;
H5 = t.H5;
H6 = t.H6;
H7 = t.H7;
H8 = t.H8;
System.arraycopy(t.X 0 X 0 t.X.length);
System.arraycopy(t.Y 0 Y 0 t.Y.length);
xOff = t.xOff;
}
@Override
protected void processBlock() {
// TODO Auto-generated method stub
//为W1W2...W67赋值
for(int i=16; i<68; i++){
X[i] = P1(X[i-16]^X[i-9]^(X[i-3]<<15 | X[i-3]>>>17))^(X[i-13]<<7 | X[i-13]>>>25)^X[i-6];
}
//为W0‘W1‘..W63‘赋值
for(int j=0;j<64;j++){
Y[j] = X[j]^X[j+4];
}
int A = H1;
int B = H2;
int C = H3;
int D = H4;
int E = H5;
int F = H6;
int G = H7;
int H = H8;
int tempSS1 = 0;
int SS1 = 0;
int SS2 = 0;
int TT1 = 0;
int TT2 = 0;
for(int i=0;i<16;i++){
tempSS1 = (A<<12 | A>>>20) + E + (T1<>>(32-i));
SS1 = tempSS1<<7 | tempSS1>>>25;
SS2 = SS1^(A<<12 | A>>>20);
TT1 = f1(ABC) + D + SS2 + Y[i];
TT2 = g1(EFG) + H + SS1 + X[i];
D = C;
C = B<<9 | B>>>23;
B = A;
A = TT1;
H = G;
G = F<<19|F>>>13;
F = E;
E = P0(TT2);
}
for(int j=16;j<64;j++){
tempSS1 = (A<<12 | A>>>20) + E + (T2<>>(32-j));
SS1 = tempSS1<<7 | tempSS1>>>25;
SS2 = SS1^(A<<12 | A>>>20);
TT1 = f2(ABC) + D + SS2 + Y[j];
TT2 = g2(EFG) + H + SS1 + X[j];
D = C;
C = B<<9 | B>>>23;
B = A;
A = TT1;
H = G;
G = F<<19|F>>>13;
F = E;
E = P0(TT2);
}
H1 = H1^A;
H2 = H2^B;
H3 = H3^C;
H4 = H4^D;
H5 = H5^E;
H6 = H6^F;
H7 = H7^G;
H8 = H8^H;
//
// reset start of the buffer.
//
xOff = 0;
for (int i = 0; i < 16; i++)
{
X[i] = 0;
}
}
@Override
protected void processLength(long bitLength) {
// TODO Auto-generated method stub
if (xOff > 14)
{
processBlock();
}
X[14] = (int)(bitLength >>> 32);
X[15] = (int)(bitLength & 0xffffffff);
}
/**
* @函数功能:将消息分组B(i)划分为16个字W0W1...W15
* @param in inOff
*/
protected void processWord(byte[] in int inOff) {
// TODO Auto-generated method stub
int n = in[inOff]<<24;
n |= (in[++inOff]&0xff)<<16;
n |= (in[++inOff]&0xff)<<8;
n |= (in[++inOff]&0xff);
X[xOff] = n;
if(++xOff == 16)
{
processBl
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 326 2009-12-31 15:04 中国商用密码\SMS4\C\sms4\readme.txt
文件 784 2011-07-05 16:37 中国商用密码\SMS4\C\SMS41\SMS41\functions.h
文件 3017 2011-11-03 14:31 中国商用密码\SM3\sm3\sm3.h
文件 695 2012-08-03 00:06 中国商用密码\SMS4\C\sms4-1.h
文件 1391 2010-07-18 19:10 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_head.h
文件 55 2011-07-04 17:50 中国商用密码\SMS4\C\SMS41\SMS41\SW_RV.h
文件 10598 2011-11-03 14:27 中国商用密码\SM3\sm3\sm3.c
文件 846 2011-10-27 17:28 中国商用密码\SM3\sm3\sm3test.c
文件 4978 2012-08-03 00:06 中国商用密码\SMS4\C\sms4-1.c
文件 12112 2012-08-02 15:16 中国商用密码\SMS4\C\sms4.c
文件 12216 2009-12-31 14:45 中国商用密码\SMS4\C\sms4\src\sms4.c
文件 245 2010-07-17 22:15 中国商用密码\SMS4\C\SMS4_5Modes\src\ByteToInt.cpp
文件 128 2010-07-17 22:15 中国商用密码\SMS4\C\SMS4_5Modes\src\Fill.cpp
文件 9390 2011-07-05 17:37 中国商用密码\SMS4\C\SMS41\SMS41\functions.cpp
文件 298 2010-07-17 22:15 中国商用密码\SMS4\C\SMS4_5Modes\src\IntToByte.cpp
文件 912 2010-07-17 22:32 中国商用密码\SMS4\C\SMS4_5Modes\src\KeyGenerate.cpp
文件 10867 2010-07-18 20:26 中国商用密码\SMS4\C\SMS4_5Modes\src\Main.cpp
文件 466 2010-07-18 16:09 中国商用密码\SMS4\C\SMS4_5Modes\src\Plus.cpp
文件 1659 2010-07-17 21:34 中国商用密码\SMS4\C\SMS4_5Modes\src\SBOX.cpp
文件 1436 2010-07-18 19:50 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_De_CBC.cpp
文件 1424 2010-07-18 19:50 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_De_CFB.cpp
文件 1429 2010-07-18 19:50 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_De_CTR.cpp
文件 1374 2010-07-18 19:50 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_De_OFB.cpp
文件 1242 2010-07-18 19:35 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_Decrypt.cpp
文件 530 2010-07-17 23:33 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_DecyptBlock.cpp
文件 1280 2010-07-18 19:38 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_En_CBC.cpp
文件 1288 2010-07-18 19:53 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_En_CFB.cpp
文件 1332 2010-07-18 19:50 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_En_CTR.cpp
文件 1261 2010-07-18 19:50 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_En_OFB.cpp
文件 1089 2010-07-18 19:34 中国商用密码\SMS4\C\SMS4_5Modes\src\SMS4_Encrypt.cpp
............此处省略65个文件信息
相关资源
- 垃圾短信拦截系统的设计与实现.kdh
- BASIS学习环境服务器搭建方案.pdf
- 1068515楼月免费MP3录音软件v3.0.zip
- 串口工具.zip
- 亿景简单进销存2017服装版Reg注册版
- 宏达服装租赁管理系统Reg注册版.rar
- 宏达电梯维修管理系统专业版Reg注册
- EPM公式.rar
-
Jsc
ript.NET程序开发.pdf - 07SD101-8_电力电缆井设计与安装.pdf
- huaqianshu1_10760544.zip
- SetupNetwork.rar
- 金融行业标准(JRT0123—2018)《非银行
- XunFeiVoiceWebAPI.zip
- 自编Sniffer含源代码.rar
- BaiduNetdiskDownload.zip
- 《自动控制原理(第3版)》.rar
- NCIS调查表辅助工具V1.5.3版本.rar
- 计算机图形学基础教程.docx
- IEEE1516.1-2010.pdf
- hoaxa_10753670.zip
- 0kyngz.zip
- hjdfgd_9363943.zip
- LastProject2.zip
-
jeesite-fr
amework-4.1.3-20190307-src.zip - SemEval2010_task8_all_data.rar
- a2766e26449ed3aa88a07ea788517e46.rar
- 清华《编译原理》课后习题答案
- 品茗全系列写锁.rar
- 0.1完美版秒余额快捷马.rar
评论
共有 条评论