中国商用密码.rar


中国商用密码.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  中国商用密码SMS4Csms4
eadme.txt

     文件        784  2011-07-05 16:37  中国商用密码SMS4CSMS41SMS41functions.h

     文件       3017  2011-11-03 14:31  中国商用密码SM3sm3sm3.h

     文件        695  2012-08-03 00:06  中国商用密码SMS4Csms4-1.h

     文件       1391  2010-07-18 19:10  中国商用密码SMS4CSMS4_5ModessrcSMS4_head.h

     文件         55  2011-07-04 17:50  中国商用密码SMS4CSMS41SMS41SW_RV.h

     文件      10598  2011-11-03 14:27  中国商用密码SM3sm3sm3.c

     文件        846  2011-10-27 17:28  中国商用密码SM3sm3sm3test.c

     文件       4978  2012-08-03 00:06  中国商用密码SMS4Csms4-1.c

     文件      12112  2012-08-02 15:16  中国商用密码SMS4Csms4.c

     文件      12216  2009-12-31 14:45  中国商用密码SMS4Csms4srcsms4.c

     文件        245  2010-07-17 22:15  中国商用密码SMS4CSMS4_5ModessrcByteToInt.cpp

     文件        128  2010-07-17 22:15  中国商用密码SMS4CSMS4_5ModessrcFill.cpp

     文件       9390  2011-07-05 17:37  中国商用密码SMS4CSMS41SMS41functions.cpp

     文件        298  2010-07-17 22:15  中国商用密码SMS4CSMS4_5ModessrcIntToByte.cpp

     文件        912  2010-07-17 22:32  中国商用密码SMS4CSMS4_5ModessrcKeyGenerate.cpp

     文件      10867  2010-07-18 20:26  中国商用密码SMS4CSMS4_5ModessrcMain.cpp

     文件        466  2010-07-18 16:09  中国商用密码SMS4CSMS4_5ModessrcPlus.cpp

     文件       1659  2010-07-17 21:34  中国商用密码SMS4CSMS4_5ModessrcSBOX.cpp

     文件       1436  2010-07-18 19:50  中国商用密码SMS4CSMS4_5ModessrcSMS4_De_CBC.cpp

     文件       1424  2010-07-18 19:50  中国商用密码SMS4CSMS4_5ModessrcSMS4_De_CFB.cpp

     文件       1429  2010-07-18 19:50  中国商用密码SMS4CSMS4_5ModessrcSMS4_De_CTR.cpp

     文件       1374  2010-07-18 19:50  中国商用密码SMS4CSMS4_5ModessrcSMS4_De_OFB.cpp

     文件       1242  2010-07-18 19:35  中国商用密码SMS4CSMS4_5ModessrcSMS4_Decrypt.cpp

     文件        530  2010-07-17 23:33  中国商用密码SMS4CSMS4_5ModessrcSMS4_DecyptBlock.cpp

     文件       1280  2010-07-18 19:38  中国商用密码SMS4CSMS4_5ModessrcSMS4_En_CBC.cpp

     文件       1288  2010-07-18 19:53  中国商用密码SMS4CSMS4_5ModessrcSMS4_En_CFB.cpp

     文件       1332  2010-07-18 19:50  中国商用密码SMS4CSMS4_5ModessrcSMS4_En_CTR.cpp

     文件       1261  2010-07-18 19:50  中国商用密码SMS4CSMS4_5ModessrcSMS4_En_OFB.cpp

     文件       1089  2010-07-18 19:34  中国商用密码SMS4CSMS4_5ModessrcSMS4_Encrypt.cpp

............此处省略65个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)