【链圈知识】区块链中的数字签名技术

数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

数字签名涉及到区块链的认证机制,它有两个作用

  1、证明消息确实是由信息发送方签名并发送出来的

  2、确定消息的完整性。

  通过数字签名我们主要实现了:

  1、接收方能通过发送方的公钥认证发送方的身份

  2、通过私钥方式签名,别人伪造不了信息的签名

  3、发送方也通过私钥签名抵赖不了对信息的签名

  4、通过数字摘要技术保证了数据的完整性

  5、哈希函数也保证了数据不可有任何篡改


发送报文时

  发送方将报文利用数字摘要技术生成报文摘要

  用非对称密钥加密技术中私钥对报文摘要进行加密

  将原文和加密后摘要一同发送给接收方

接收报文时

  接收方利用数据摘要技术对发送方发送的原文生成报文摘要

  用公钥对发送方发送的数据进行解密,得到发送生成的报文摘要

  解密的报文摘要和接收方自己生成的报文摘要进行对比

  相同说明信息没有被揣改

数字签名的基本算法

  1、对称加密算法

对称加密指加密和解密使用相同密钥的加密算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。

  对称加密常用的算法包括:

  (1)DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;

  (2)3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;

  (3)AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。

2、非对称加密算法

  非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。私钥保存在所有者手中,需要对外人保密不可让外人知道,公钥可以向其他信息接收方公开。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

 常用的非对称加密算法包括:

(1)RSA:因由 RSA 公司发明而命名,是一个支持变长密钥的公开密钥算法,需要加密的文件块的长度也是可变的;公开密钥算法总是要依据一个数学上的难题。RSA基于大素数积难分解问题,给定两个数p、q 很容易相乘得到n,而对n进行因式分解却相对困难。

(2)ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。椭圆曲线因为用二元三次方程y^2= x^3+ ax + b来表示,类似椭圆周长计算方程而得名。公开秘钥算法要基于一个数学难题,椭圆曲线算法就是基于离散对数问题。有限域Fp上的椭圆曲线同样有加法,但已经不能给以几何意义的解释。

  椭圆曲线上的加法如下定义:

  无穷远点 O∞是零元,有O∞+ O∞= O∞,O∞+P=P

  P(x,y)的负元是-P(x,-y),有P+(-P)= O∞

  P(x1,y1),Q(x2,y2)和R(x3,y3) 有如下关系:

  x3≡k2-x1-x2(mod p)

  y3≡k(x1-x3)-y1(mod p)

  其中若P=Q 则 k=(3x2+a)/2y1 若P≠Q,则k=(y2-y1)/(x2-x1)

  考虑如下等式:

  K=kG,其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数,不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。这就是椭圆曲线加密算法采用的难题,我们通常称作离散对数问题。我们把点G称为基点(base point),k(k

  ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在:抗攻击性强;计算量小,处理速度快;存储空间占用小;带宽要求低。ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法,所以区块链也使用了ECC。

区块链中用到的签名算法SECP256K1

  区块链中生成公钥时用到的算法是SECP256K1,是一种椭圆曲线的标准化表达方式,其中256表示该椭圆曲线是256位, K代表Koblitz curve,相对应的椭圆曲线的标准换表达还有,SECP192K1,SECP192R1,SECP224K1,SECP224R1,SECP256R1,SECP384R1,SECP521R1等。

  SECP256K1曲线由下述函数定义,该函数可产生一条椭圆曲线:

  Y^2 = (x^3 + 7)} over (Fp)

  如此选取的原因,也是为了和哈希算法SHA256的输出值相一致,以及求解离散对数的困难性。

  现在描述一个利用椭圆曲线进行加密通信的过程:

  用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。

  用户A选择一个私有密钥k,并生成公开密钥K=kG。

用户A将Ep(a,b)和点K、G传给用户B

  用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M(编码方法很多,这里不作讨论),并产生一个随机整数r(r

  用户B计算点C1=M+rK;C2=rG。

  用户B将C1、C2传给用户A。

  用户A接到信息后,计算C1-kC2,结果就是点M。因为C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M

  再对点M进行解码就可以得到明文,这是区块链中用到签名算法SECP256K1的基本原理。

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

推荐阅读更多精彩内容