資源簡介
中國商用密碼.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個文件信息
評論
共有 條評論