区块链的密码技术--1

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

密码技术是区块链最核心、最底层的技术,是区块链系统安全运行基石。密码技术在区块链的各个环节都有应用。包括 哈希算法签名算法隐私保护算法密码协议

非对称加密体制

非对称密码体制,又叫做双面密钥密码体制或公开密钥密码体制。就是说,一个密码体制,它的加密和解密的操作分别使用两个不同的密钥,并且不可能由加密密钥推导出解密密钥。 它是区块链系统中数据层的核心技术

1、非对称密码组成方案

明文: 算法的输入,是可读的消息或数据 (未加密前的数据) 加密算法: 加密算法对明文进行各种形式的转换 公钥和私钥: 如果一个私钥用于加密,另一个就用于解密。用于加密的叫做公钥,用于解密的称为私钥。 密文: 算法的输出。取决于明文和密钥,对给定的消息,两个不用的密钥将产生不同的密文。 解密算法: 接受密文和匹配的密钥,生成原始的明文

2、经典的RSA算法原理

RSA是分组密码,对于某个n,它的明文和密文是0至n-1之间的整数。 <1>、选择两个大素数,p和q (必须是安全的素数,足够大),计算n=qp,n称为RSA算法的模数。p,q必须保密,n的长度大于1024bit。因为RSA算法的安全性就是依赖于大数问题因子分解。

<2>、计算n的欧拉数 φ(n)=(p-1)(q-1) //φ(n)为不超过n并与n互质的数的个数

<3>、选择随机加密密钥e,从[0,φ(n)-1]中选择一个与φ(n)互质的数e作为公开的加密密钥。 <4>、利用欧几里得算法,计算解密密钥d,满足de=1mod(φ(n))。其中,n和d也要互质。数e和n是公钥,d是私钥。两个素数p、q不再需要,但不可以让任何人知道。

公开密钥: PK=(e,n) 私密密钥:SK=(d,n)

解密过程

1、加密信息m(二进制表示),首先把m分成等长数据块 m1、m2、m3、···mi,块长s,其中2的s次方要小于等于n,s尽可能大 2、对应的密文是 ci =mi的e次方(mod n) 3、解密公式: mi=ci的d次方(mod n)

猜你喜欢

转载自blog.csdn.net/y943711797/article/details/125370721
今日推荐