wordpress 网站变慢,金融投资理财网站建设,科技公司起名,网页联系我们怎么做目录
正文
1 承诺的交互
2 承诺的属性
3 硬币抛掷问题
3.1 朴素版方案
3.2 承诺版方案 #x1f951;源自#xff1a;https://en.wikipedia.org/wiki/Commitment_scheme
#x1f951;写在前面#xff1a;英文的承诺是 commitment scheme#xff0c;否则很难进行…目录
正文
1 承诺的交互
2 承诺的属性
3 硬币抛掷问题
3.1 朴素版方案
3.2 承诺版方案 源自https://en.wikipedia.org/wiki/Commitment_scheme
写在前面英文的承诺是 commitment scheme否则很难进行检索。 正文
承诺方案 是一种密码学原语它允许一个人对他们选择的价值或选择的陈述进行承诺同时将其隐藏在其他所有人面前并具有在 稍后揭示 所承诺价值的能力。 如上图所示想象 发送者 将 信息 放入一个带锁的盒子中并将盒子交给 接收者。接收者无法打开锁因此无法看到盒子中的信息。同时由于接收者掌控着盒子发送者也无法更改其中的信息 —— 发送者只能在稍后的某个时间提供钥匙进行揭示。 密码学中的承诺不同于日常生活中承诺的含义请自行洗脑 承诺方案被设计成这样一旦当事人对某个价值或陈述进行了承诺他们就不能更改它。也就是说承诺方案是具有 约束力 的。承诺方案在许多密码学协议中具有重要应用包括安全的硬币翻转、零知识证明和安全的计算。 1 承诺的交互
承诺方案中的交互分为两个阶段
承诺阶段在此期间 发送者 选择一个值并对其进行承诺揭示阶段在此期间 发送者 揭示该值然后 接收者 验证其真实性。
在这个隐喻中承诺阶段是发送者将信息放入盒子并上锁。揭示阶段是发送者将钥匙交给接收者接收者使用它来打开盒子并验证其内容。上锁的盒子是承诺而钥匙是证明。 你可能会觉得这都是些什么颠公颠婆直接把信息告诉对方不就得了吗或许你看到后面的硬币抛掷问题会有所改观 2 承诺的属性
假设发送方选择的是 A 值并对其进行承诺
隐藏性在打开承诺之前接收方不知道发送方选择的是 A 值。绑定性在打开承诺之后发送方难以将已承诺的 A 值解释成 B 值。
在简单的协议中承诺阶段由发送者向接收者发送的一条消息组成。这条消息被称为承诺。至关重要的是在那个时候接收者无法得知所选的具体值。这称为隐藏属性。
一个简单的揭示阶段由一条消息组成即发送者向接收者的开启消息随后由接收者执行检查。在承诺阶段选择的值必须是发送者能够计算且在揭示阶段得到验证的唯一值。这称为绑定属性。 3 硬币抛掷问题
假设 Alice 和 Bob 希望通过抛掷硬币来解决一些争议。 准确来说不是解决争议而是 Alice 猜测 Bob 的投掷结果是什么。 3.1 朴素版方案 如果他们身处同一个地方一个典型的程序可能是
Alice 喊出自己对抛掷结果的猜测Bob 抛掷硬币如果 Alice 的猜测正确那么她获胜否则 Bob 获胜。 在 Alice 喊出 “正面” 或者 “背面” 的同时 Bob 抛掷硬币如果硬币朝上的一面与 Alice 喊的一样那么 Alice 获胜否则 Bob 获胜。由于 Alice 和 Bob 身处同一个地方因此 Alice 一眼就能看到 Bob 的抛掷结果Bob 也听见了 Alice 的喊声故二者都没有作弊的空间。 如果 Alice 和 Bob 不在同一个地方问题就出现了。 如果 Alice 事先把自己的猜测通知给 Bob那么 Bob 可以规定抛掷结果为他所希望的一切。同样地如果 Alice 没有事先把自己的猜测通知给 Bob那么在 Bob 抛掷硬币并宣布结果之后Alice 可以声称她刚刚猜测的就是当前的抛掷结果。 情况一Alice 通知 Bob 自己猜测的是 “正面”那么即使 Bob 抛的是 “正面”他也可以声称自己抛的是 “背面”反正 Alice 也看不到。情况二Alice 先不通知 Bob 自己猜测的是什么而是先让 Bob 公布抛掷结果那么即使 Alice 刚刚的猜测和抛掷结果不一致她也可以声称自己猜测的就是当前的抛掷结果。 3.2 承诺版方案
Alice 和 Bob 仍然不在同一个地方 Alice 和 Bob 可以在程序中使用承诺以使双方都能信任结果
Alice 告诉 Bob 她对 猜测 的 承诺Bob 抛掷硬币并向 Alice 报告抛掷结果Alice 告诉 Bob 她的 猜测Bob 检验 Alice 的 猜测 和她之前的 承诺 是否相匹配如果不匹配说明 Alice 在撒谎游戏终止反之继续如果 Alice 的 猜测 与 Bob 报告的抛掷结果相匹配那么 Alice 获胜。 每当你觉得步骤繁琐甚至冗余的时候想想前面两个大骗子是怎么互相骗的就释怀了 由于在第 2 步的时候Alice 已经知道抛掷结果了因此她完全可以在第 3 步的时候谎称自己的猜测就是当前的抛掷结果。那么 Bob 该如何识破 Alice 的谎言呢此时承诺就派上用场了。
补充在第 2 步中由于 Bob 手里只有 Alice 的 承诺 而非 Alice 的 猜测因此 Bob 没有办法欺骗 Alice只能老老实实地告诉 Alice 真实的抛掷结果。如果 Bob 这都想撒谎那真是无语呢 简而言之第 3 步 Alice 传给 Bob 的猜测可能是真的也可能是假的。但由于承诺方案的存在即使 Alice 撒谎Bob 也能够轻松识破 Alice 的谎言。 在第 4 步中Bob 是如何进行检验的呢
如下图所示事实上 Alice 在第 3 步除了要告诉 Bob 自己的猜测还要告诉 Bob 自己生成承诺的方法。Bob 会根据这个方法和 Alice 传来的猜测生成一条新承诺。如果这个 新承诺 和 老承诺 相同那么说明 Alice 没有撒谎反之则发现内鬼终止游戏。 这里就要求只要信息没有改变生成承诺的方法每次都应该为该信息生成一样的承诺。 说明这里使用绿色是为了指明 Alice 可以传一条假的猜测。 为什么上述过程和前文说的打开上锁的盒子不太一样 答在实际操作中上锁的盒子一般是打不开的。因此Alice 只能告诉 Bob 自己的信息和上锁的方式是什么。如果 Bob 根据信息和上锁方式得到了一个一模一样的上锁的盒子那么就能证明 Alice 发来的信息就是之前被承诺的信息。