(要理解本文所说的话,至少从广义上来说,有必要并且足够想象什么是非对称密码学以及电子签名的工作原理)使用一次性密钥的方案:
- 创建一个密钥对,它由一个秘密(秘密密钥,SK)和公共(公开密钥,PK)密钥组成。
- 使用秘密密钥,执行许多操作。 第一个步骤,即公共密钥的创建,已在第一步中完成。
- 乍看之下,将执行防病毒操作-密钥被销毁而无法恢复。
使用剩余的公共密钥来加密数据是没有意义的(在没有秘密密钥的情况下进行解密被认为是不可能的),但是可以使用公共密钥来验证在第二步中创建的电子签名。
此方法可用于密码学上可靠的数据绑定。 在这种情况下,原始密钥对的公共密钥成为通信标识符。
一个显着的优点是,除非通过蛮力或通过利用所使用算法的数学脆弱性,否则就不能损害所使用的密钥对。 如果密钥根本不存在,则无法将其窃取,欺骗或提取。
使用范例
任务: 在分布式系统中,参与者被注册在他们创建的唯一标识符下。 需要最大程度地使“劫持”他人的标识符(身份盗用)的任务复杂化。 如果发生身份盗用,请为真正的所有者提供返还被盗的机会。在不使用相关技术的情况下解决问题的方法:
- “零选项。” 在此过程中要依靠参与者的诚实。
- “行政禁令”。 注册参加者时需要护照。 法律上禁止使用其他人的标识符。 将标识符绑定到电话号码,使用多重授权。 如有疑问,请再次申请护照。 依靠授权检查员的诚实和正直。 在滥用情况下,可处以罚款和/或入狱。
- “将公钥用作标识符。” 因此,秘密密钥被用作授权手段。 原则上,值得选择(特别是在加密货币中使用),唯一的例外是当密钥丢失或受到破坏时,参与者不可逆转地退出游戏。
使用一次性私钥解决问题的方法:
- 参加者创建识别密钥对[SK 0 ,PK 0 ]。 公钥PK 0 (或其散列)成为参与者的唯一标识符。
- 参与者创建另外一组密钥对[SK 1 ,PK 1 ],[SK 2 ,PK 2 ] ... [SK n ,PK n ],并且每个密钥对的公钥都用密钥SK 0签名。
- 密钥SK 0被销毁。 步骤一至三是作为单个过程的一部分执行的,无需将SK0写入非易失性存储器。
- 为了进行身份验证,参与者使用在第二步中创建的密钥对之一(例如[SK 1 ,PK 1 ]),其余(如果已创建)则被隐藏在安全的地方。
- 如果使用的密钥对遭到破坏,则将其密钥(在示例中为PK 1 )放置在反馈列表中,并将其中一个备用密钥用于身份验证。 或者,创建另一个附加密钥,该附加密钥具有以PK 0 (例如PK 0 -PK 2 -PK n +1 )开头的认证链。
具体说说加密货币,这里描述的问题的解决方案没有多大意义(借助窃取的密钥,攻击者会立即清空钱包),但是“认证”的主题远不止于加密货币的使用。
为了方便进一步讨论,可以为使用的键建议以下符号:
i-key-识别密钥。 在此示例中,它是PK
0 。
a-密钥 -认证密钥 在此示例中,这是PK
1或任何其他密钥,由
i-key直接或间接签名。
hc-key-额外的安全隐藏密钥之一(攻击者既不知道其存在的事实,也不知道其编号),用于在
a密钥泄露的情况下恢复访问。
关于使用一次性私钥的
小注释 。 仅当创建初始密钥对的主体没有动机为某些特定需求保留秘密密钥时,方案才起作用。 使用此技术进行身份验证时,所有其他需求均被一组附加的hc密钥完全满足(顺便说一句,存在的那些谜语:hc的缩写是什么?)。 保存原始密钥不会带来任何好处,但是会创建一个漏洞,使不可逆的身份盗窃成为可能。
PS:如果此处描述的技术突然间是原始的,那么就有必要将该出版物转变为某些受尊重的英语出版物中的文章。 对于那些可以帮助您解决问题的人,我建议您付费或共同合作。