手动执行的非对称加密和签名

信息安全 加密
2021-09-02 08:32:48

有一些加密方法非常简单,您可以手动完成,但是是否有一种简单的(ish)私有和公共密码学方法以及人类可以手动执行的签名?做密码学的人有纸和铅笔。

编辑:假设没有 MITM 攻击(获得的所有密钥都是合法的)

4个回答

GCHQ 的 James Ellis 提出了一个公开密钥加密的笔和铅笔示例,他称之为“非私有加密”。他打算将其作为公钥系统的说明。

他的系统的要点是这样的:您首先创建许多简短的谜语,每个谜语都有一个独特的解决方案,实际上可能是数学方程。对于这些谜语中的每一个,您都创建了一个加密密钥。目的是解谜的方法是钥匙的ID。(谜语 [即密钥 ID] / 加密密钥)的完整列表张贴在某个公开的地方。

当有人想向您发送秘密信息时,他们会随机选择一对。他们解谜,得到钥匙ID。然后,他们可以使用从列表中选择的密钥来加密他们只希望您看到的消息。为了让您可以解密消息,他们在信头中以明文形式记录了密钥 ID。

该系统的保密性取决于谜语的数量,以及解开每个谜题所需的时间以获取密钥 ID(拥有所有密钥 ID 的攻击者可以简单地查找密钥)。例如,如果您有 10,000 对,并且每个谜题需要一天的时间来解决,那么对于单个攻击者来说,它应该持续大约 30 年。

参考:

如果你正在学习 RSA 密码学的基础,你会发现你可以手工完成。原理围绕着简单的模运算。

使该方案安全的是使用非常大的素数以及难以将公钥分解为两个初始素数。同样的想法代表椭圆曲线,还有另一个难以解决的问题。

尽管背后的数学很简单,但不对称方案必须具有“难以破坏”的组件,这使得“手动”自动变得困难。另外,请考虑一下:如果对人类来说很简单,那么对计算机来说就微不足道了。

有趣的!虽然我相信纸和铅笔可以进行无限的计算,但我得到了你的观点。假设我们的计算能力非常有限。你和你的朋友想在日常生活中做一些密码学。

要获得公钥加密,您需要一个可信任的第三方来验证您的身份,然后为您生成密钥对(PublicKey、PrivacyKey)。我认为这是你的草图计划中最难的部分。如果你能解决这个问题,你就会得到你想要的。

为了更有帮助,我认为您可以将信封印章作为参考。一些政府部门还使用印章。

您可以使用公私密钥集来加密短消息,例如 vigenere 密码的密钥。如果参与者想花一个小时手动解密第一条消息,则可以使用可以在几分钟内解密的更简单的对称代码非常容易地解密后续消息。它永远无法承受计算机的暴力攻击,因此需要物理安全技术,例如在阅读后将消息烧掉,并通过某种方式验证它没有被拦截。