币圈活动项目早知道今日讯:数字签名广泛应用于商业和金融行业,用于授权银行支付、交换签名的电子文档、签署数字合同等场景。这些签名巧妙地将对称和非对称加密技术与哈希函数结合起来。
数字签名的发明使得需要安全通信和身份验证的广泛应用成为可能。通过使用加密技术,数字签名可用于确认消息确实来自其指示的消息发送者。
什么是数字签名?
如果有人想证明某条消息来自他们,他们会在该消息上创建数字签名,以便其他人可以验证它。
数字签名方案通常涉及非对称密码系统和哈希函数。它们如今广泛应用于商业和金融行业,例如授权银行支付、交换签名的电子文档、在公共区块链系统中签署数字合同和交易以及许多其他场景。
数字签名如何工作
数字签名用于确认消息确实来自其指示的消息发送者。他们巧妙地将对称和非对称加密与哈希函数结合起来,这一发明更好地支持了需要安全通信和身份验证的各种应用程序。
作为示例,我们将使用 Alice 和 Bob。 Alice 向 Bob 写了消息“让我们赶上”(在本例中,该消息翻译为“9394”)。她担心鲍勃可能认为该消息不是真正来自她的,并希望附加数字签名,以便鲍勃可以确认该消息来自她。
步骤 1: Alice 写下消息“9394”。
步骤 2: Alice 对消息“9394”进行哈希处理,结果变为“9”。
步骤3: Alice使用私钥(11, 14)加密哈希值‘9’;密码 = 11。
第四步: Alice 发布消息以及签名。
第5步: Bob看到了这条消息,但想知道它是否真的来自Alice,并想验证数字签名。
步骤6: Bob使用公钥(5, 14)解密数字签名“11”;明文 = 9。
步骤 7: Bob 使用与 Alice 使用的相同的哈希函数对消息“9394”进行哈希处理,并得到相同的值“9”。
步骤8:由于数字签名的解密和消息的哈希值具有相同的值,所以Bob知道该消息来自Alice。
加密货币中的密码学用法
加密货币被称为“加密货币”,因为它们使用密码学。在本节中,我们以比特币为例来了解其含义及其工作原理。
下面,我们进一步看看交易内部发生了什么,以了解比特币中的密码学用法。交易中的输出包含两个字段:
1.用于传输satoshis数量的值字段。
2.一个公钥脚本,用于指示必须满足哪些条件才能进一步使用这些聪。
以下步骤有助于说明 Alice 向 Bob 发送交易的工作流程,随后他将使用该交易进行支出。 Alice 和 Bob 都使用标准支付公钥哈希 (P2PKH) 交易类型的最常见形式。 P2PKH 让 Alice 将 satoshis 发送到一个典型的比特币地址,然后让 Bob 使用简单的加密密钥对进一步花费这些 satoshis。
步骤 1: Bob 必须先生成私钥/公钥对,然后 Alice 才能创建第一个交易。比特币使用椭圆曲线数字签名算法(ECDSA)来生成公钥/私钥对。
步骤 2:然后使用哈希函数 SHA-256 和 RIPEMD-160 对公钥 (pubkey) 进行加密哈希处理。
步骤 3: Bob 向 Alice 提供公钥哈希,该哈希通常以比特币地址的形式编码发送(Base58 编码的字符串,包含地址版本号、哈希值以及用于捕获拼写错误的错误检测校验和)。地址可以通过任何介质传输,并进一步编码成另一种格式,例如QR码。
步骤 4:一旦 Alice 获得 Bob 的地址并将其解码回标准哈希值,她就可以使用标准 P2PKH 交易输出创建第一笔交易,其中包含指令,允许任何人在可以证明自己控制与 Bob 哈希值对应的私钥的情况下使用该输出公钥。
第5步: Alice广播交易并将其添加到区块链中。网络将其归类为未花费的交易输出(UTXO),而鲍勃的钱包软件将其显示为可花费的余额。
后来,Bob 决定花费 Alice 的 UTXO:
步骤 1: Bob 必须创建一个输入,引用 Alice 通过其哈希创建的交易——交易标识符 (TXID)——以及她通过其索引号(输出索引)使用的特定输出。
步骤 2: Bob 必须创建一个签名脚本(也称为 scriptSigs)——满足 Alice 在先前输出的 pubkey 脚本中放置的条件的数据参数集合。对于 P2PKH 风格的输出,Bob 的签名脚本将包含以下两条数据:
- 他的完整(未散列)公钥,以便 pubkey 脚本可以检查它的散列值是否与 Alice 提供的 pubkey 散列值相同。
- 使用 ECDSA 密码公式将某些交易数据与 Bob 的私钥组合而成的签名。这让 pubkey 脚本验证 Bob 是否拥有创建公钥的私钥。
结论
从其深入编织和精心开发的安全系统到确保接收者可以信任该系统的能力,密码学是一个令人难以置信的迷人且可塑的未来系统,具有如此多的进步可能性。数字签名的发明在商业和金融行业得到了更多的应用,更好地支持了需要安全通信和身份验证的广泛应用。
数字签名巧妙地将对称和非对称加密技术与散列函数结合起来,通过这种加密技术的使用,它们已成为确认消息确实来自其所指示的消息发送者的依赖。