以RSA为例讨论数字货币中的公钥密码

一、数字货币

目的:便捷、去中心化

切入点:
货币数字化——->交易数字化(用RSA解决)
中心节点记账——>记账去中心化

交易数字化包括:账户数字化(唯一标识问题)、金额数字化、签名数字化(身份认证问题)
记账去中心化(分布式数据完整性问题)包括:谁来记账(矿工)?账本可信(账本完整性保护问题)?

唯一性和身份认证问题可以借助于公钥密码,用公钥作为账户时候可以顺便解决账户唯一性的问题(以RSA为例),以私钥为数字签名。
哈希函数解决账本完整性保护问题

二、账户与签名数字化

公钥密码(非对称密码)与RSA

公钥如何解决身份认证?
公钥e作用:向外界标榜自己的身份——>账户
私钥d作用:对消息生成数字签名——>生成签名
用数字签名向外界表明自己的身份与公钥标榜的身份相符

密钥分发问题(公钥加密、私钥解密):A想给B发文件,A可以用B的公钥把文件加密发给B,B用自己的私钥解密
身份认证问题(私钥加密、公钥解密):A给B发消息,A用自己的私钥将消息加密得到密文(此处的密文就是所谓的数字签名,消息比较长,加密的其实不是消息本身,而是消息的哈希值),A将密文和消息本身传送给B,B用A的公钥解密得到明文,将明文与原始消息对比,一致就说明发送者是A,因为只有拥有与A公钥对应的私钥的人才可以做到一致

RSA相关数学基础:整除、最大公因子(欧几里得算法)、互素、乘法逆元、欧拉函数、欧拉定理
整除
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
a经过若干次幂再模n后又等于a,若把这个操作拆分成两步,第一步就相当于加密,第二部相当于解密
在这里插入图片描述
RSA算法原理:
在这里插入图片描述
对RSA的攻击原理:破解私钥的关键是对n做素因子分解
在这里插入图片描述
解决攻击方法:让n的素因子变得很难?让n只有两个素因子,且素因子很大
在这里插入图片描述
因为素因子分解很难,所以由公钥e计算出私钥d也很难

交易数字化的步骤:

  1. 用RSA生成公钥e和私钥d,用公e作为自己的账号
  2. 填写交易信息T:转出转入账户、金额、其他
    在这里插入图片描述
  3. 用私钥对交易信息T的哈希值进行加密生成数字签名s,将数字签名s加入交易信息,得到最终的交易信息
    在这里插入图片描述
    其他用户如何验证我的签名是否有效?
    用我的账户(我的公钥)对数字签名进行解密,从而得到交易的哈希值,将交易的哈希值和原始的哈希值进行对比,一致则签名有效,不一致则无效(交易信息被篡改或者有人伪造了我的签名)

RSA如何实现账户数字化的唯一性?
在这里插入图片描述

三:账本完整性保护

(一)哈希函数
任意长度消息M输入,固定长度h=H(M)输出,称h为M的哈希值
性质:高效、公开、单向性和抗碰撞性
例如:MD5、SHA
应用:消息认证、单项口令文件、入侵检测和病毒检测

(二)挖矿

工作量证明:POW——记账人付出巨大的工作量证明他的账本没有被篡改
我们集体给记账人出一个难题,比如要求所有区块的哈希值都必须小于某个数字n,否则账本不合法
我们允许记账人在每个区块计录的交易信息之外,额外加入一条数据Nonce,记账人寻找合适的Nonce值使得哈希值合法

计算Nonce值并创建区块:挖矿
记账人:矿工
谁记账,给谁奖励比特币
比特币来源:无中生有、交易手续费

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值