椭圆曲线加解密的数学原理和数字签名的原理

这篇文章的背景,假设你已经了解了什么是椭圆曲线也就是形如y^2=(x^3+a*x+b)mod(p)的方程。我们研究的是基于有限域上的离散曲线,有限域和离散是在计算机中研究问题的一个必要前提。我们假设定义曲线E(p,a,b,G,n,h)。各曲线参数说明如下:

p,a,b:定义了该曲线的数学形态,p约束限制了所有的取模运算结果位于区间[1,p-1],跟点的个数相关。

G:是曲线上的基点。

n:是曲线的阶,也就是n*G = o\propto ,这个概念源头来自于罗巴切夫斯基几何,可以通过性质来定义它。

h:所有点的个数除以n的商。

关于椭圆曲线的加法运算,和乘机运算以及阿贝尔群的性质此处不详细说明。但是最主要的两条需要说明

x+y\equiv z mod(p)

x*y\equiv z mod(p)

1、椭圆曲线加密,属于非对称加密的一种。常用的非对称加密还有RSA.留在以后的文章中详细说明。

假设alice和bob要进行加密通信。

首先两人建立通信的模型设为E(p,a,b,n,G,h),如果此处模型不一样那么后续的算法就没有建立的基础。

注意在这个模型下面n*G=O\propto (无穷远点)。

alice选择随机私钥k,并按照椭圆曲线乘积运算生成公开秘钥K=k*G.。并且将G和K传输给bob。

bob在收到消息后将明文编码到曲线上一个点M(比如按照字节作为曲线上点的x坐标,当然这里只是便于理解举了一个简单例子,实际编码方法略过),并产生自己的私钥r和公钥r*G。并计算点C1=M+r*KC2=r*G,bob将此密文c1和c2传给alice.因为运算是基于取模mod运算,所以逆运算很难。

alice收到信息后使用自己的私钥进行解密。计算C1-k*C2就会得到bob给她的信息明文

原理如下:

C1-kC2=M+rK-krG=M+rkG-krG=M

所有以上运算建立在群运算的运算法则基础之上。

2、椭圆曲线数字签名算法(ecdsa)

计算消息摘要digest = hash(message)

取摘要的len = size(n)*8个bit长度作为z

[1,len-1]范围内,随机选择一个整数k,这里随机数k的选择非常重要,需要保持随机,否则就会产生利用随机数冲突恢复私钥的漏洞。

利用k得到椭圆曲线上一点(x1,y1)=k*G

然后利用公式r=x1计算r

利用公式s=k^-1(z+r*pri) mod(n)计算s,这里k^-1表示k的模反元素。

得到数字签名(r,s)

签名验证原理,利用公钥以及签名计算一个点P(x_{p},y_{p}  ),如果x_{p} 等于r那么证明签名有效,message没有被意外篡改过。

验证过程只需要证明点P的x坐标等于r即可:

(公式1)P=s^-1*z*G + s^-1*r*pub

下面进行证明,说明为什么P点的x坐标与r相等,则证明了签名的正确性,也就是证明上公式成立的充分条件就是,message和r以及s均未被篡改过。

因为:

pub = pri*G

所以上式等价于:

P=s^-1*z*G + s^-1*r*pri*G=s^-1(z+r*pri)*G

又因为想要使得P的x坐标等于r等价于P点就是曲线上x坐标为r的点

因为点k*G的x坐标刚好就是r,所以只需证明P=k*G

所以上式等价于证明k*G = s^-1(z+r*pri)*G

根据阿贝尔群的性质只需证明:k = s^-1(z+r*pri)mod(p)

也就是:s = k^-1(z+r*pri)mod(n)

显然如果签名s和消息message(摘要)没有被篡改过,那么这就是显然成立的。

由证明过程P=k*G的条件我们也可以导出变种:

P(r,f(r))=P=s^-1*z*G + s^-1*r*pub

由此变种公式可以推到出公钥pub也是一种签名验证方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容