. .
椭圆曲线加密算法的 C 语言设计和实现
椭圆曲线加密算法于1985年提出,由于自身优点,它一出现便受到关注,现在密码学界普
遍认为它将替代 RSA 加密算法成为通用的公钥加密算法。那么我们今天就来看看椭圆曲线
加密算法是如何通过 C 语言来设计实现的。
一、椭圆曲线加密算法的 C 语言设计
1、椭圆曲线加密系统的根本构造
椭圆曲线的加解密流程如图1所示:
椭圆曲线进展加密通信的过程如下:首先选定一个适合加密的椭圆曲线 Ep(a,b),并取椭
圆曲线上的一点作为基点 G。选择一个私有密钥 k,并生成公开密钥 K=kG。加密时,将明
文编码到 Ep(a,b)上的一点 M,并产生一个随机整数 r(r<n)。
计算点 C1=M+rK,C2=rGo 将 C1、C2存入密文。解密时,从密文中读出 CI、C2,计算
C1-kC2,根据 C1-kC2=M+rK-k( rG)=M+rK-r( kG)=M,解得的结果就是点 M,即明文。
2、高精度整数的表示
加密算法几乎都是建立在高精度大整数的运算上, 而一般的程序语言都不提供大整数的构
. v .