虚拟货币数字签名应用示意图
A. 什么是比特币的数字签名
比特币中的数字签名,是交易中的发起方产生的,为了保证这笔交易确实是由此人发起,并且数据在传输时没有被篡改。数字签名简单点来说,就是完整的交易信息,通过数字摘要技术压缩成固定格式的字符串,然后通过非对称加密技术,生成一个私钥。将完整的交易信息和数字签名传送给矿工,矿工用交易发起方的公钥对数字签名进行解密,解密成功,就将此交易数据写到区块中。
B. 为什么比特币交易过程要将前一笔交易和收款人的公钥进行哈希变化并数字签名,其中前一笔交易是什么
首先,这个做哈希变化并数字签名是为了记录这一笔交易并发布到全网,那么这里说的前一笔交易是在你交易的前一笔交易记录,因为这是分布式账本,也就是说每个人的交易在这个账本上都是有据可查的
C. 什么是虚拟货币 阐述它和电子货币的联系和区别
电子货币和传统货币的区别是:安全性传统货币:易伪造,随身携带易遗失和被偷窃;电子货币:使用现代密码技术,只限于合法人使用,可避免重复使用,防伪能力强,无须随身携带,可减少遗失和被偷窃的风险。匿名性传统货币:具有匿名性和不可跟踪性;电子货币:使用数字签名、认证等技术保证支付交易时的匿名性和不可跟踪性。方便性传统货币:必须定时、定点使用;电子货币:支付过程中不受时间、地点的限制,使用更加方便。成本传统货币:发行成本、运输成十、交易成本高;电子货币:不需要运输成本,发行成本、交易成较低。分解性传统货币:不可分解;电子货币:现金支付单位的大小可自行定义,不受实际现金系统的限制。
D. 数字签名的应用范围
在告诉你应用范围前,先给你说说数字签名的作用:数字签名是使用数字证书的私钥对数据的摘要加密,以保证数据的完整性、真实性和不可抵赖。
数字签名是目前保证数据的完整性、真实性和不可抵赖的最可靠和关键的方法。什么地方需要,那就可以应用在什么地方。
现在典型的应用如:网上银行、电子商务、电子政务、网络通信、等
E. 比特币的数字签名是什么
比特币的数字签名,就是只有比特币转账的转出方生成的,一段防伪造的字符串。通过验证该数字串,一方面证明该交易是转出方发起的,另一方面证明交易信息在传输中没有被更改。
数字签名通过数字摘要技术把交易信息缩短成固定长度的字符串。举个栗子,牛牛发起一笔比特币转账,需要先将该交易进行数字摘要,缩短成一段字符串,然后用自己的私钥对摘要进行加密,形成数字签名。完成后,牛牛需要将原文(交易信息)和数字签名一起广播给矿工,矿工用牛牛的公钥进行验证,如果验证成功,说明该笔交易确实是牛牛发出的,且信息未被更改。
同时,数字签名加密的私钥和解密的公钥不一致,采用非对称加密技术。看起来好复杂,其实转账只需要你输入私钥就瞬间完成啦!
F. 如何获取应用程序的数字签名
单地说,需要三步:
1. 购买或自己创立一个的数字签名证书文件。
有工具软件可以制作数字签名证书,比如openssl,但自签的,在别人的机器上,回出现签名无法校验的问题。除非人家信任,否则人家不会安装你的证书。
2. 用工具软件对exe或其他任何文件,进行数字签名。 可以是免费的UI工具,比如:kSign;也可以类似signtool(微软的命令行工具);还可以操作系统的向导程序(比如微软Windows上的签名文件安装,导入并对文件数字签名的向导)。 xNix下,可以用GnuPG (gpg)从证书到签名,一次搞定。
3. 你要是做程序开发的,可以利用signtool这样的命令行工具,写批处理,然后加入自己项目的make过程中自动加签。
G. 如何制作和应用数字签名证书
需要准备的工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。
在MS的SDK6.0中有个证书生成工具makecert.exe, 你可以使用这个工具来生成测试用的证书。
第一步,生成一个自签名的根证书(issuer,签发者)。
>makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer
这个时候,会弹出提示框,首先给RootIssuer.pvk文件设置私钥保护口令;
然后,再次输入这个口令用私钥(在RootIssuer.pvk文件中)来给公钥(在RootIssuer.cer文件中)加密。
第二步,使用这个证书签发一个子证书(使用者,subject)。
>makecert -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer
此时,会弹出提示框先给这个子证书的私钥文件ChildSubject.pvk设置保护口令;
然后,输入这个子证书的私钥(在ChildSubject.pvk中)口令来保护子证书的公钥(在ChildSubject.cer中)。
接下来会提示输入根证书私钥(在RootIssuer.pvk中)口令来签发整个子证书(公钥和用户信息)。
如果你还要签发更多的子证书,类似的,使用这个证书来签发再下层的证书,前提是ChildSubject证书也可以用于签发(作为Issuer)用途。
备注:
(1)如果你需要一个交互证书,用于安全通信,那么,加入选项 -sky exchange;
(2)如果你需要一个签名证书来签发证书或者二进制文件,那么,加入选项 -sky signature.
(3)如果你需要一个客户端证书来标志你的身份,或者个人信息保护(电子邮件),那么,选项-n 中的E字段是不可缺少的。
举例:-n "CN=公司名称, E=E-MAIL地址, O=组织名称, OU=组织单位, C=国家, S=省份(州), P=县城"
其他辅助工具:
1) 公钥证书格式转换成SPC。 cert2spc.exe
>cert2spc TestRoot.cer TestRoot.spc
.spc 意思是 软件发布者证书(Software Pulisher Cerificate).
2) 将公钥证书和私钥合并成一个PFX格式的证书文件。pvk2pfx.exe
>pvk2pfx -pvk TestRoot.pvk -spc TestRoot.spc -pfx TestRoot.pfx
输入TestRoot.pvk的保护口令来合并.pvk和.spc文件,如果你不设置即将合并出来的TestRoot.pfx的保护口令的话,这个保护口令和输入文件TestRoot.pvk的保护口令一样。(备注:直接从cer文件也可以,不一定要得到SPC文件).
3) 签名工具。signtool.exe
二进制文件数字签名.为了保证二进制文件的完整性,数字签名是一个好的方法。
以下命令启动一个有图形界面的文件签名工具向导:
>signtool wizard
以下是命令行方式的签名:
>signtool sign /f "pfx文件的全路径" /p "pfx文件的保护口令" /t "http://timestamp.verisign.com/scripts/timstamp.dll" /d "本次签名的描述" "被签名的程序的全路径"
H. 数字签名怎么做
首先我们要明确一个观念,数字签名是实现电子签名的国际通用的手段,而在实践中,我们往往把数字签名与电子签章电子签名之间画上等号。因而,要问如何进行数学签名,其实也就是在问如何进行电子签章电子签名
我以微签为例子吧,简单的几步就可以进行电子签章。
1登录微签电子签章平台官网,用手机号免费注册登录:
是不是非常方便快捷呢?电脑端和手机端都可以使用,说再多也不如您亲自上微签官网免费注册一个账号来的实在,“纸上得来终觉浅,得知此事要躬行。“亲自体验一下数字签名怎么做。
I. 如何利用公私钥实现数字签名
数字签名(Digital Signature)技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。
J. 数字签名 应用
数字签名(Digital Signature)技术 数字签名技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在公钥与私钥管理方面,数字签名应用与加密邮件PGP技术正好相反。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。