加载中…
个人资料
区块链的作坊
区块链的作坊
  • 博客等级:
  • 博客积分:0
  • 博客访问:30,883
  • 关注人气:9
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

比特币算法——椭圆曲线ECC算法描述(一)

(2017-05-17 22:35:55)
标签:

密码技术

椭圆曲线

ecc

比特币使用另一种算法用来保护消息摘要的真实性。这种算法叫椭圆曲线算法(ECC)。在密码理论中,椭圆曲线算法是一种非对程密码,也称公钥密码。所谓非对程密码是指加密用的密钥和解密用的密钥不同,用作加密的称作私钥,需要保密,用作解密的称作公钥,顾名思义是公开的,并且从一个密钥不能推算出另一个密钥。目前使用最广泛的两种非对程密码为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的所有点的集合,且曲线上每个点都是非奇异的(连续的、可微分的)。该方程称为维尔斯特拉斯方程(Weierstrass)。椭圆曲线并非是一个椭圆,只是其方程形式类似一个计算椭圆周长的方程。

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

          这个方程代表的光滑曲线再加上一个无穷远点,就组成了椭圆曲线。

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

 

 

 

 

 

参考文献:

[1]一个关于椭圆曲线密码学的初级读本http://8btc.com

[2]深入浅出密码学——常用密码技术原理与应用,清华大学出版社,ISBN:978-7-302-29609-6

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有