山东大学软件工程应用与实践——使用CUDA/GPU技术加速密码运算(第十周)

2021SC@SDUSC

在之前的篇章中我们对SM2国密算法中的ECC算法进行了原理分析,现在对SM2算法中的公钥加密算法进行更为深刻的分析。

 一、SM2公钥加密算法

根据之前讲过的ECC算法,知道私钥dB和基点G很容易求出公钥PB,但是只知道公钥和基点求私钥是非常困难的。

接下来,看加密过程。

  其中,k为随机数发生器产生的随机数,明文为M,密文C由C1\C2\C3三个部分拼接而成。C3部分即将x2\M\y2拼接后用哈希函数得到的一个比特串。C2部分由明文M和t异或得到,具体之后分析。另外在A3中h代表“余因子”或“协因子”,它的值为有限域的阶和基点G的阶的比值,一般取1,保证生成的子群的阶比较大,也可以理解为为了确保生成元阶的点远远少于椭圆曲线定义的所有点数,避免穷举攻击,使其概率接近为0.

补充知识:

 密码杂凑算法Hv输出的是长度为v比特的杂凑值,而KDF密钥派生函数输出的是长度为klen的密钥数据比特串K。因此需要循环多次将长度为v的杂凑值拼接成长度为klen的K比特串,即上图中方框b)部分。c)代表若klen/v不能得到整数则需要取最后一个部分的最左边若干个比特将其刚好拼接成长度klen的比特串。

扫描二维码关注公众号,回复: 13648448 查看本文章

二、具体实例

 

 

 最终输出密文C即圈出部分。 

参考网址:

参考视频:【SM2公钥加密算法】| SM2加密过程详解 | 椭圆曲线加密| 公钥加密| 密码学| 信息安全_哔哩哔哩_bilibili 

猜你喜欢

转载自blog.csdn.net/qq_47801057/article/details/121894098