资 源 简 介
分组密码就是将明文数据按固定长度进行分组,然后在同一密钥控制下逐组进行加密,从而将各个明文分组变换成一个等长的密文分组的密码。其中二进制明文分组的长度称为该分组密码的分组规模。
SM4密码算法的整体结构图如下:
在SM4的源代码中存在如下几个函数:
void sm4_setkey_enc(sm4_context *ctx,unsigned char key[16])
void sm4_setkey_dec(sm4_context *ctx,unsigned char key[16])
void sm4_crypt_ecb( sm4_context *ctx,int mode,int length, unsigned char *input,unsigned char *output)
void sm4_crypt_cbc( sm4_context *ctx,int mode,int length,unsigned char iv[16],unsigned char *input,unsigned char *output )
static void sm4_setkey( unsigned long SK[32], unsigned char key[16] )