区块链安全盾之密码学及算法(2)

本文由“币嗨Bihi内容合伙人计划”赞助

今天呼噜继续和大家一起学习区块链安全盾之密码学及算法(2)——椭圆椭圆曲线ECC算法。

在正式开始复杂而高深的学习前,我们理解下数学上椭圆的有意思的一面。

所谓的一个椭圆曲线是满足一个特殊方程的点集,可用方程式y^2 = x^3 + ax + b表示。


也有其他椭圆曲线的代表,但学术上一个椭圆曲线是一个满足一个变量为二阶,另一个变量为3阶的二元方程。一个椭圆曲线不仅仅是一个漂亮的图片,它也有一些使它成为密码学的一个好环境的性能。

它有几个有趣的特性:

其中一个是水平对称。曲线上的任何点以X轴反射并且仍然是同样的曲线。一个更加有趣的特性是任何不垂直的线穿过曲线最多有三个交点。

让我们来把曲线想象成一个奇异的桌球游戏。取曲线上的任意两点并且把他们连起来;这条线与曲线有一个以上的交点。在这个桌球游戏里,你拿球从A射向B.当它撞上曲线,这个球向上反弹(它位于X轴以下)或者向下反弹到曲线的另一边。


我们把球移向两点叫“打点(dot)”。曲线上的任意两点能被同时打点得到一个新点。

A dot B = C

我们也能同时做一串移动来用它自己反复“打点"。

A dot A = B

A dot B = C

A dot C = D

...

事实证明如果你有两个点,一个最初的点用它自己打点n次到达一个最终点,在你只知道最重点时找到n和最初点是很难的。继续我们的奇异桌球比喻,想象一个人在一段任意时间里在一个房间里单独玩我们游戏。对他来说,他跟着上述规则来反复击球是容易的。如果一个人后来走进房间并且看到球最终的位置,即使他们知道这个游戏的所有规则和球的起点,在没有全程观察游戏直到球到达同一点的情况下,他们也不能算出球击打到那的次数。容易做,但很难解开。这就是一个非常棒的trapdoor函数的基础。

在密码理论中,椭圆曲线算法是一种非对程密码,也称公钥密码。

所谓非对程密码是指加密用的密钥和解密用的密钥不同,用作加密的称作私钥,需要保密,用作解密的称作公钥,顾名思义是公开的,并且从一个密钥不能推算出另一个密钥。目前使用最广泛的两种非对程密码为RSA和ECC,RSA历史悠久,签名较快,而验证较慢。相同密码强度而言,ECC密钥长度较短,效率更高。RSA基于大数分解问题,ECC基于椭圆曲线离散对数问题。


下面介绍这种算法的作用和描述。

1. 作用

计算一个或多个消息的摘要可以保证消息不会被更改(一旦更改就能发现),所以消息与摘要是一一对应的。但是如果攻击者有摘要算法,他就可以同时替换消息和摘要,如果只验证摘要是无法得知消息已被替换(更改),如何解决这一消息真实性的问题,这就是公钥密码的用途之一,其原理:

     (1)产生消息的人公开自己的密钥,然后用私钥对消息摘要进行加密(俗称签名),与消息、消息摘要、摘要签名一同发送给接收者;

      (2)发送者的公钥随处可得,接收者使用公钥对消息签名进行解密(验签),如果结果正确则消息真实性得到验证,从而对消息摘要进一步验证;如果结果错误则消息不可靠。

       (3)公钥是由权威机构产生的,并且可验证,所以替换公钥是不可能的。


2. 算法描述

        相比RSA,理解椭圆曲线密码算法的数学基础困难的多。首先了解几个概念。

        (1)  射影平面坐标系:它是对笛卡尔直角坐标系的扩展,增加了无穷远点的概念。在此坐标系下,两条平行的直线是有交点的,而交点就是无穷远点。两者的变换关系为:笛卡尔坐标系中的点a(x,y),令x=X/Z,y=Y/Z,则射影平面坐标系下的点a的坐标为(X, Y,Z),比如点(2,3)就转换为(2Z,3Z,Z)。

        (2)  椭圆曲线:一条椭圆曲线在射影平面上满足方程:Y^2Z+a1XYZ+a3yZ^2=X^3+a2X^2Z+a4XZ^2+a6Z^3的所有点的集合,且曲线上每个点都是非奇异的(连续的、可微分的)。该方程称为维尔斯特拉斯方程。椭圆曲线并非是一个椭圆,只是其方程形式类似一个计算椭圆周长的方程。

    (3)射影平面转换为直角平面:椭圆曲线有一个无穷远点(0:1:0),那么把可以计算出直角平面坐标系下的曲线方程:y^2+a1xy+a3y=x^3+a2x^2+a4x+a6。 这个方程代表的光滑曲线再加上一个无穷远点,就组成了椭圆曲线。

   (4)椭圆曲线一点切线的斜率:因为椭圆曲线平滑的,每一个点都有切线,斜率是切线的一个重要指标。它将在椭圆曲线密码算法中使用。



以上是初步的学习,更深的函数学习待下期进行。

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

推荐阅读更多精彩内容