圣人相互作用-密码学

本页面于2019年8月7日至9日Sarah Arpin、Catalina Camacho-Navarro、Holly Paige Chaos、Amy Feaver、Eva Goedhart、Sara Lapan、Rebecca Lauren Miller、Alexis Newton和Nandita Sahajpal在Sage Days 103上首次创建。文本由Holly Paige Chaos、Amy Feaver、Eva Goedhart和Alexis Newton编辑。该项目由Amy Feaver和Eva Goedhart领导。

我们感谢凯瑟琳·斯坦格,她允许我们使用密码学课程中的代码作为许多交互的起点。Stange博士的原始代码和课程页面可以在网址:http://crypto.katestange.net/

如果您有兴趣将加密相关的交互添加到此页面,请这样做。您也可以通过以下地址联系Amy Feaver:[电子邮件保护]

转到交互主页

移位密码

移位密码是一种经典的密码系统,它采用明文并将其在字母表中移位给定数量的字母。例如,移位2会将所有a替换为C,将所有B替换为D,等等。当到达字母表的末尾时,字母会循环移位回开头。因此,2的偏移将用a替换Y,用B替换Z。

移位密码加密

作者:Sarah Arpin,Alexis Newton

您可以使用此交互使用移位密码加密消息。

移位密码解密

作者:Sarah Arpin,Alexis Newton

如果您知道消息是使用移位密码加密的,则可以使用已知的移位值进行解密。如果不知道这一点,可以使用暴力获取26条可能的解密消息。叉方函数根据字母频率按似然度对蛮力结果进行排序。

仿射密码

仿射密码结合了移位密码和乘法密码的思想。在这个特定的示例中,我们将字母表中的连续字母映射到连续数字,从A=0开始(您也可以以不同的方式进行此密码,从A=1开始)。用户选择两个值a和b。值a是乘数,必须相对素数为26,以确保每个字母编码唯一。值b是加数。每个字母的值乘以a,乘积加上b。然后用一个新的字母替换,对应于模26的结果。

仿射密码加密

作者:Sarah Arpin,Alexis Newton

您可以使用此交互使用仿射密码加密消息。注意,a的唯一选择可以是相对素数为26的数字。此密码将您的消息中的一个字母m加密为*m+b。

仿射密码解密

作者:Sarah Arpin,Alexis Newton

如果您知道消息是使用仿射密码加密的,则可以使用已知的a和b值进行解密。如果这些信息未知,可以使用暴力获取可能解密的消息列表。chi-squared函数根据字母频率按似然度对这些结果进行排序。

替换密码

作者:Catalina Camacho-Navarro

替换密码通过将字母表中的每个字母指定给另一个字母来加密消息。例如,如果A被赋值给F,那么原始消息中的所有A都将被加密消息中的F替换。可以使用蛮力或频率分析来解密用替换密码加密的消息。

游乐场密码

作者:Catalina Camacho-Navarro

基于阿拉斯代尔的代码麦克安德鲁网址:trac.sagemath.org/ticket/8559。

公平密码是一种特殊类型的替换密码,其中明文被分解为具有一些限制的两个字母的有向图。这些有向图是使用Polybius正方形加密的(即5x5网格,其中字母表中的每个字母都是自己的条目,将ij放在一起的除外)。字母在有向图中的位置决定了有向图的加密方式。

公平加密

使用此交互可以使用公平密码加密消息。

公平游戏解密

频率分析工具

频率分析是一种利用英语中出现的字母频率破解替换密码的技术。例如,E是英语中最常见的字母,因此,如果一段加密文本中有许多字母Q的实例,您可能会猜到Q已被替换为E。接下来的两个交互创建了两个基本工具,这些工具可能有助于破解替换密码。

字母频率计数器

作者:Rebecca Lauren Miller,Katherine Stange

此工具查看输入文本中每个字母的外观百分比,并绘制这些百分比。加密的输入文本有点奇怪,但它是由Amy Feaver构造的,用于提供与英语中字母频率相对匹配的短文本块,以使此消息更容易解密。

频率分析解密猜测器

作者:Rebecca Lauren Miller,Katherine Stange

这种交互通过将输入中字母的频率与英语中的字母频率相匹配,打印出输入文本的建议翻译。通过输出,您将看到一些字母被错误替换,而其他字母没有被替换。通常,频率分析需要额外的工作和一些尝试和错误来发现原始消息,尤其是在输入文本不够长的情况下。

Vigenère密码

Vigenère密码是多字母密码的一个示例。Vigenère使用一个秘密密码作为密钥,通过根据密钥中相应的字母进行移位,对消息的每个字母进行加密。例如,我们将使用密钥“CAT”加密默认文本“secrets hi”。为了做到这一点,信息首先被分成三个字母块,因为关键是三个字母长,即“SEC RET SHI”。接下来,块中的每个字母都被键中相应字母的值移位。标准移位为A=0、B=1、C=2等。因此,在我们的示例中,S按C=2个字母移位到U,E按A=0个字母移位并保持在E,C按T=19个字母移位至V。因此,加密后,“机密”变成UEVTEMUHB。要解密消息,只需使用关键字撤消加密过程。Simon Rubinstein-Salzedo的密码术被用作此交互的参考。

Vigenère密码加密

作者:Holly Paige Chaos、Rebecca Lauren Miller、Katherine Stange

使用此交互使用Vigenère密码加密消息。

Vigenère密码解密

作者:Holly Paige Chaos、Rebecca Lauren Miller、Katherine Stange

如果您使用Vigenère密码加密消息,您可以通过输入密钥和加密文本来使用此交互进行解密。

一次性键盘

作者:Sarah Arpin,Alexis Newton

一次性密码是一种无法破解的加密方法。它需要一个长度等于或更长的一次性共享密钥(称为一次性键盘)。在这种方法中,每个字母首先使用标准A=0、B=1、C=2等转换为数字,然后消息中的每个字符将模26乘以键中相应位置的数字。然后将其转换回字母以生成加密文本。

希尔密码

希尔密码需要一些线性代数的基础知识。在这种加密方法中,使用模为26的整数的可逆n x n矩阵作为密钥。首先将消息转换为数字,然后将其转换为大小为n的块。然后将这些块转换为n x 1向量,并乘以键模26,以生成1 x n向量。这些向量中的整数被转换回字母以生成加密文本。

希尔密码加密

作者:Holly Paige Chaos,Alexis Newton

使用此交互使用Hill密码加密消息。如果您的消息不是n的倍数,那么它将用z填充。请确保使用可逆矩阵,以便您的消息可以被解密!

希尔密码解密

作者:Holly Paige Chaos,Alexis Newton

使用此交互来解密由Hill密码加密的消息。记住,只有使用可逆矩阵作为密钥加密消息时,这才有效!

模块算术(RSA、Diffie-Hellman、El Gamal的预备知识)

本节给出RSA、Diffie-Hellman和El-Gamal所需的模块化算法的可视化表示。

模块算术乘法表

丽贝卡·劳伦·米勒、凯特·斯坦奇

给定一个正整数n,这将打印乘法模n。此表中的每个条目对应于行号与列号的乘积,模n。

模幂运算

作者:Rebecca Lauren Miller,Kate Stange

给定模n和非负指数a,这将显示一个图,其中0到n-1之间的每个整数都映射到其a次幂mod n。

离散日志问题

作者:萨拉·拉潘

以a为底的离散对数log(x)是一个整数b,因此ab条=x。计算对数在计算上很困难,而且在最坏的情况下,没有已知的有效算法。然而,离散指数运算相对简单(例如,可以使用平方有效地进行)。这种复杂性的不对称性在构建密码系统时得到了利用。通常,在x=a中求解x要容易得多b条(mod m)当a、b和m已知时,则在x、a和m已知的情况下求解b。

求解x

当a、b和m已知时,交互查找x:

求解b

当a、x和m已知时,交互查找b:

RSA公司

RSA以作者Rivest、Shamir和Aldeman命名,它使用求幂和模运算来加密和解密双方之间的消息。每一方都有自己的秘密和公钥。为了了解它是如何工作的,爱丽丝和巴贝特分享了一条信息。

RSA,从Alice的角度

作者:Sarah Arpin,Eva Goedhart

巴别特给爱丽丝发了一条加密信息。作为爱丽丝,你将提供信息,以便阅读巴贝特的信息。

从巴贝特的角度看RSA

作者:Sarah Arpin,Eva Goedhart

具有数字签名的RSA

作者:Sarah Arpin,Eva Goedhart

交互/加密(上次编辑2019-11-14 19:53:51查波顿)