mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-27 10:46:27 +08:00
Created SM4/SMS4分组密码 (markdown)
24
SM4-SMS4分组密码.md
Normal file
24
SM4-SMS4分组密码.md
Normal file
@@ -0,0 +1,24 @@
|
||||
SMS4是我国无线局域网标准WAPI中所采用的分组密码标准,随后被我国商用密码标准采用,又名SM4(SM是“商密”的缩写,目前公布的其他商密标准包括SM2椭圆曲线公钥密码、SM3密码杂凑算法)。作为我国商用密码的分组密码标准,预计SMS4在国内的敏感但非机密的应用领域会逐渐取代3DES、AES等国外分组密码标准,用于通信加密、数据加密等应用场合。
|
||||
|
||||
SMS4的密钥长度和分组长度均为128比特,其设计安全性等同于AES-128,但是近年来的一些密码分析表明SMS4的安全性略弱于AES-128。由于SMS4的密钥长度固定为128比特,并有提供更长的可选密钥长度,因此SMS4不适用于保护需长期保密的数据,如需50年才能解密的保密文档。
|
||||
|
||||
SMS4存在一定的性能问题。由于SMS4设计时的预计应用领域为低功耗芯片(即WAPI芯片),因此SMS4针对减少硬件电路数量进行了优化,带来的后果是SMS4的软件实现效率很低,难以充分利用主流32位/64位通用处理器的计算能力,其软件实现的效率通常大大低于AES-128的软件实现。
|
||||
|
||||
GmSSL提供了SMS4的实现。
|
||||
|
||||
调用SMS4的命令行例子如下:
|
||||
|
||||
```
|
||||
$ echo hello | gmssl enc -sms4-cbc > ciphertext.bin
|
||||
enter sms4-cbc encryption password:********
|
||||
Verifying - enter sms4-cbc encryption password:********
|
||||
|
||||
$ cat cipehrtext.bin | gems enc -sms4-cbc -d
|
||||
enter sms4-cbc decryption password:********
|
||||
hello
|
||||
```
|
||||
|
||||
GmSSL提供了SMS4的`EVP_sms4_cbc()`等`EVP_CIPHER`对象,应用可以通过`EVP_EncryptInit/Update/Final()`函数访问,具体调用方法请参考`EVP_EncryptInit(3)`手册页。
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user