显然,由于对n做素因子分解很难,所以由公钥计算出私钥也很难。 上述给出 (n , e) 和 (n , d)。 1.密钥分发 用户创建完交易信息 T ,就可以把它公告给其它用户,试图得到其它用户的认可。收到该消息的任何用户都可以用转出账户(创建交易人的公钥)和数字签名(创建交易人用自己的私钥生成的)来验证该用户是不是该账户的拥有者,有没有权力从该账户转账。
一、密钥生成
二、加密/解密算法
m=(cmemodn)dmodn
aφ(N)modN=1。于是在RSA中有:
① N = pq
②
φ(N)=(p−1)(q−1)
③ 选择整数 e 和 d ,d 为 e 关于模 φ(n) 的模反元素
④
e⋅d=1+k⋅φ(N)(k>0,k∈Z),于是有:
Cd=(Me)d=M1+k⋅φ(N)=M1⋅(Mφ(N))k=M1⋅(1)k=M1=MmodN三、举例
四、区块链中的应用
若要保护对称加密算法密钥的机密性,那么发送方可用接收方的公钥对消息加密得到密文,将密文发送给接收方,接收方用自己的私钥解密获得消息明文。除了接收方之外的其它人由于不知道私钥,所以不可能破解出消息。
2.身份认证
若要进行身份认证,则发送方用自己的私钥对消息加密,并将得到的密文附于明文之后一同发送给接收方,接收方用发送方的公钥解密,将解密得到的消息与明文消息对比,若一致则认为消息来自于真实的发送方,否则认为消息并非来自真实发送方。这里所说的密文就是所谓的数字签名。其实这么说并不太准确,由于消息可能比较长,所以发送方加密的不是消息本身,而是消息的哈希值。
3.交易数字化
① 签名数字化——身份认证
在上述身份认证的描述中,我们可以看到公钥的作用是公开向外界别标榜自己的身份,而私钥的作用是对消息生成数字签名,用数字签名向外界证明自己的身份与公钥所标榜的身份相符。因此,我们就用公钥作为账户,用私钥对交易信息生成数字签名,来解决了交易中账户和签名的问题。
用户可以按照以下步骤生成自己的账户和交易:
第一步,用RSA生成公钥 (n , e) 和私钥(n , d),用公钥 (n , e) 作为自己的账号;
第二步,填写交易信息 T ;
第三步,用自己的私钥对交易信息 T 生成数字签名
s=(H(T))dmodn ,其中 T 表示一种哈希函数,将 s 加入交易信息,得到最终的交易信息。
字段
值
转出账户
自己的公钥 (n , e)
转入账户
收款人的公钥 (n’ , e’)
金额
1000.00
其它(时间、说明等)
略
数字签名
s
② 账户数字化——唯一性
在上述过程中我们使用公钥解决了签名数字化问题,但整个过程中对账户唯一性问题从未涉及。而区块链确实没有通过任何机制检验新账户的唯一性。
我们使用公钥来作为用户标识,尽管我们没有强制要求账户标识唯一,但公钥的随机性使得账户标识几乎不可能出现重合。
以RSA的密钥生成过程为例。
如果素数 p 和 q 都取1024位,那么 n 和 φ(n) 就都大约是2048位;
若 e 取随机值,由于 ed mod φ(n) = 1 ,那么 d 也是随机值,大约也是2048位。
因此公钥 (e , d) 大约是4096位的随机值;
也就是说,我们使用4096位的随机值作为账户标识的;
所以,出现两个账户标识相同的概率是
240961 ;
我们死于小行星撞击地球的概率是7481万分之一。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算