[密码学]ECC加密

椭圆曲线加密 Ellipse Curve Cryptography

椭圆曲线上的离散对数问题 Ellipse Curve Discrete logarithm Problem

椭圆曲线

注意积分公式的分母,椭圆曲线由此得名。这种曲线和椭圆一点不像。

离散对数:

y=g^x mod p,对于给定的g,x,p求y很容易,但已知y,g,p求x困难。难度与RSA中的大数分解难度相同。

椭圆曲线上的离散对数问题:

考虑方程Q=kP,其中(点Q,P属于定义在(a,b)上的模p的椭圆曲线)且k<p。对于给定的k,P,计算Q比较容易,但对于给定的Q,P,计算k困难。

y^2=x^3+9x+17( mod 23),定义椭圆群

**待续

需要一些数学技巧把明文m映射到在椭圆曲线E上的整数点Pm。可能需要对m进行padding,更糟糕的情况,需要调整椭圆曲线的(a,b)。

目前有椭圆曲线和参考点G(一个在椭圆曲线上的整数点)

用户A选择一个私钥Na(一个足够大的数),并计算公钥Pa=Na*G(椭圆曲线的点加计算)

用户B选择一个私钥Nb(一个足够大的数),并计算公钥Pb=Nb*G(椭圆曲线的点加计算)

加密:

用户A随机选取一个整数k ,计算密文Cm

Cm={kG,Pm+kPb},Pb为用户B的公钥。

解密:

解包Cm,使用用户B的私钥Nb,进行ecc上的点加计算。

(Pm+kPb)-Nb(kG)=Pm+k(Nb*G)-Nb(k*G)=Pm

相关推荐
山登绝顶我为峰 3(^v^)32 小时前
如何录制带备注的演示文稿(LaTex Beamer + Pympress)
c++·线性代数·算法·计算机·密码学·音视频·latex
应长天2 天前
密码学(斯坦福)
密码学
Turbo正则3 天前
量子计算基础概念以及八大分支
密码学·量子计算
网安INF13 天前
公钥加密与签名算法计算详解(含计算题例子)
网络·算法·网络安全·密码学
电院工程师14 天前
基于机器学习的侧信道分析(MLSCA)Python实现(带测试)
人工智能·python·嵌入式硬件·安全·机器学习·密码学
电院工程师16 天前
SM3算法C语言实现(无第三方库,带测试)
c语言·算法·安全·密码学
小七mod17 天前
【BTC】密码学原理
web3·区块链·密码学·比特币·btc·肖臻·北大区块链
电院工程师23 天前
轻量级密码算法PRESENT的C语言实现(无第三方库)
c语言·算法·安全·密码学
电院工程师23 天前
轻量级密码算法CHAM的python实现
python·嵌入式硬件·算法·安全·密码学
电院工程师24 天前
SM3算法Python实现(无第三方库)
开发语言·python·算法·安全·密码学