• 大小: 256KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: C/C++
  • 标签: SM4  C语言  CTR  XTS  国密  

资源简介

SM4国密加密算法C语言实现,VS2010工程,内含测试用例和分组密码有五种工作体制:ECB/CBC/CFB/OFB/CTR/XTS,SM4实现源码。直接就可以编译使用

资源截图

代码片段和文件信息

/*
 * SM4 Encryption alogrithm (SMS4 algorithm)
 * GM/T 0002-2012 Chinese National Standard ref:http://www.oscca.gov.cn/ 
 * thanks to Xyssl
 * thnaks and refers to http://hi.baidu.com/numax/blog/item/80addfefddfb93e4cf1b3e61.html
 */
#include “sm4.h“

// Test vector 1
// plain: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
// key:   01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
//     round key and temp computing result:
//     rk[ 0] = f12186f9 X[ 0] = 27fad345
//     rk[ 1] = 41662b61 X[ 1] = a18b4cb2
//     rk[ 2] = 5a6ab19a X[ 2] = 11c1e22a
//     rk[ 3] = 7ba92077 X[ 3] = cc13e2ee
//     rk[ 4] = 367360f4 X[ 4] = f87c5bd5
//     rk[ 5] = 776a0c61 X[ 5] = 33220757
//     rk[ 6] = b6bb89b3 X[ 6] = 77f4c297
//     rk[ 7] = 24763151 X[ 7] = 7a96f2eb
//     rk[ 8] = a520307c X[ 8] = 27dac07f
//     rk[ 9] = b7584dbd X[ 9] = 42dd0f19
//     rk[10] = c30753ed X[10] = b8a5da02
//     rk[11] = 7ee55b57 X[11] = 907127fa
//     rk[12] = 6988608c X[12] = 8b952b83
//     rk[13] = 30d895b7 X[13] = d42b7c59
//     rk[14] = 44ba14af X[14] = 2ffc5831
//     rk[15] = 104495a1 X[15] = f69e6888
//     rk[16] = d120b428 X[16] = af2432c4
//     rk[17] = 73b55fa3 X[17] = ed1ec85e
//     rk[18] = cc874966 X[18] = 55a3ba22
//     rk[19] = 92244439 X[19] = 124b18aa
//     rk[20] = e89e641f X[20] = 6ae7725f
//     rk[21] = 98ca015a X[21] = f4cba1f9
//     rk[22] = c7159060 X[22] = 1dcdfa10
//     rk[23] = 99e1fd2e X[23] = 2ff60603
//     rk[24] = b79bd80c X[24] = eff24fdc
//     rk[25] = 1d2115b0 X[25] = 6fe46b75
//     rk[26] = 0e228aeb X[26] = 893450ad
//     rk[27] = f1780c81 X[27] = 7b938f4c
//     rk[28] = 428d3654 X[28] = 536e4246
//     rk[29] = 62293496 X[29] = 86b3e94f
//     rk[30] = 01cf72e5 X[30] = d206965e
//     rk[31] = 9124a012 X[31] = 681edf34
// cypher: 68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46
// 
// test vector 2
// the same key and plain 1000000 times coumpting 
// plain:  01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
// key:    01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
// cypher: 59 52 98 c7 c6 fd 27 1f 04 02 f8 04 c3 3d 3f 66

#include 
#include 
//#include “svdpi.h“


/*
 * 32-bit integer manipulation macros (big endian)
 */
#ifndef GET_ULONG_BE
#define GET_ULONG_BE(nbi)                             \
{                                                       \
    (n) = ( (unsigned long) (b)[(i)    ] << 24 )        \
        | ( (unsigned long) (b)[(i) + 1] << 16 )        \
        | ( (unsigned long) (b)[(i) + 2] <<  8 )        \
        | ( (unsigned long) (b)[(i) + 3]       );       \
}
#endif

#ifndef PUT_ULONG_BE
#define PUT_ULONG_BE(nbi)                             \
{                                                       \
    (b)[(i)    ] = (unsigned char) ( (n) >> 24 );       \
    (b)[(i) + 1] = (unsigned char) ( (n) >> 16 );       \
    (b)[(i) + 2] = (unsigned char) ( (n) >>  8 );       \

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      16999  2017-11-13 17:49  sm4_5mode\sm4_5mode\sm4.c

     文件       2554  2017-11-13 17:47  sm4_5mode\sm4_5mode\sm4.h

     文件       4022  2017-11-13 17:32  sm4_5mode\sm4_5mode\sm4_5mode.vcxproj

     文件       1145  2017-11-13 17:32  sm4_5mode\sm4_5mode\sm4_5mode.vcxproj.filters

     文件        143  2017-11-13 17:23  sm4_5mode\sm4_5mode\sm4_5mode.vcxproj.user

     文件       7230  2017-11-13 17:50  sm4_5mode\sm4_5mode\sm4_test.c

     文件    1724416  2017-11-13 17:53  sm4_5mode\sm4_5mode.sdf

     文件        894  2017-11-13 17:23  sm4_5mode\sm4_5mode.sln

    ..A..H.     13312  2017-11-13 17:53  sm4_5mode\sm4_5mode.suo

     目录          0  2017-11-13 17:52  sm4_5mode\sm4_5mode

     目录          0  2017-11-13 17:53  sm4_5mode

----------- ---------  ---------- -----  ----

              1770715                    11


评论

共有 条评论