pip install gmalglib
- SM2 椭圆
曲 线公钥密码算法 - 签名验签
密 钥交换加 密 解 密
- SM3
密 码杂凑算法 消息 摘要 密 钥派生 消息 认证
- SM4
分 组密码算法 - ZUC
序列 密 码算法
对于 gmalglib
from gmalglib.sm3 import SM3
obj = SM3()
obj.update(b"message")
obj.update(b"digest")
print(obj.digest().hex())
gmalglib.wrapped
gmalglib
import gmalglib
print(gmalglib.sm3_digest(b"messagedigest").hex())
Callable[[int], bytes]
,
def rnd_fn(n: int) -> bytes: ...
如不传入BCryptGenRandom
, 其余/dev/urandom
实现, 其实现类os.urandom
.
OsRandomProc
.
13th Gen Intel(R) Core(TM) i7-13700H
==================== SM2 Benchmark Test (1000 times, 32 bytes data) ====================
SM2.encrypt : 0.454363s (2200.88 times/s)
SM2.decrypt : 0.356014s (2808.88 times/s)
SM2.sign_digest : 0.088565s (11291.12 times/s)
SM2.verify_digest : 0.409243s (2443.54 times/s)
SM2.sign : 0.087475s (11431.80 times/s)
SM2.verify : 0.404026s (2475.09 times/s)
SM2.begin_key_exchange : 0.086665s (11538.62 times/s)
SM2.end_key_exchange : 0.536552s (1863.75 times/s)
==================== SM3 Benchmark Test (1,000,000,000 bytes data) ====================
SM3.update & SM3.digest : 3.083487s (324,308,109 B/s)
==================== SM4 Benchmark Test (1000000 times) ====================
SM4.encrypt : 0.197393s (5066040.91 times/s)
SM4.decrypt : 0.185619s (5387391.13 times/s)
==================== ZUC Benchmark Test (1000000 times) ====================
zuc.generate : 0.028821s (34696561.22 times/s)