• 大小: 8.51M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-06
  • 语言: 其他
  • 标签: 其他  

资源简介

中国商用密码.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个文件信息

评论

共有 条评论