我正在努力了解密码学的世界,因为它实际上是日常使用的。我发现很难站起来,我想知道是否有人有一些好的资源可以解释我认为什么都不知道的事情。
例如,我(我相信,由于理解有限)具有X509证书和“SignatureValue”属性的文件。我认为这些是用SHA256编码的。我想知道我正在看什么,因为我需要提供一个“时间戳响应文件”,其中包含一个时间戳授权消息的DER表示。
到目前为止我有点掌握的事情:
我想要了解这个生态系统的鸟瞰图,这样我就有了这个拼图如何融合在一起的概念,然后我可以更深入地研究如何工作的细节。
答案 0 :(得分:3)
阅读一大堆书需要花费很多时间。 Imho,更快捷的方式是浏览维基百科并阅读以下内容:
哈希算法(简而言之,它将长文本/数据转换为固定大小的值,哈希,其中(几乎)唯一表示此长文本。而且,是的,它是单向的。
签名算法 - 从哈希值计算一些东西,称为“签名”。主要思想是只有拥有密钥才能计算出正确的签名。并且,可以使用公钥验证此签名。公钥在人们之间共享,因此他们可以验证您的签名。
因此,有效签名证明文本/数据未被其他人更改。
证书:这是一个数据块,它将用户的公钥绑定到有关此密钥的信息:所有者的名称,电子邮件,地址等等。证书通常由权威机构签署(根证书) - 因此,如果您信任当局,您应该相信该证书正确代表了人。
时间戳:这是签名,由一些人信任的签名,将时间标记绑定到签名,制作在其他文件上。因此,这将证明此签名(以及本文档)在当时是正确的。这是必要的,因为有时证书可能会被撤销或过时,如果没有时间戳,您将不知道这是否是正确的签名,因为您不知道它何时被创建。
ASN.1 - 抽象语法表示法,它定义描述某些数据结构格式的文本规则。它用于大多数加密标准。
希望这有助于理解发生了什么:)
实际上,市场上有许多加密库,它们实现所有时间戳/ x.509 /签名/验证等。
答案 1 :(得分:2)
我建议你去学习它,非常努力,因为如果你做得对,它会没问题,但是如果这个失败并且引入了一些漏洞你就不会那么好聊天。所以我建议初学者:
在那些之后你会得到相当坚定的草,加密是一件值得避免的东西,并且只有在极端谨慎的情况下才使用,并且只有当它没有引入它解决的更多问题时才会使用。
关于你的问题:
我的最后一个要求是你不应该停留在某个高层“我认为我得到了这个”的观点并深入挖掘并试图真正理解什么是什么,什么不安全。