B1 · 第5集 · 4:56
维吉尼亚密码揭秘
本集讲解维吉尼亚密码的加密原理与破译思路,介绍多表替换机制及如何通过密钥长度分组进行频率分析。
来源:stph / aperi.tube · 许可:CC BY-SA 4.0
字幕
Alors on va encore compliquer les choses.
那么,我们还要进一步增加难度。
Maintenant, nous allons passer à une technique qui s'appelle le chiffre de Vigenère.
现在,我们将学习一种名为维吉尼亚密码的技术。
Cette technique n'est plus une substitution monoalphabétique,
这种技术不再是单字母替换,
une lettre dans le clair égale une lettre dans le chiffré,
即明文中的一个字母对应密文中的一个字母,
c'est une substitution polyalphabétique où une même lettre dans le clair peut
而是一种多字母替换,
apparaître sous différentes lettres dans le chiffré en fonction de sa position.
明文中的同一个字母,会根据其位置不同,在密文中表现为不同的字母。
Et pour ce chiffre de Vigenère,
对于维吉尼亚密码,
on a besoin que la personne qui chiffre le message et que la personne qui déchiffre
加密消息的人和解密消息的人,
le message partagent un secret sous forme de clé.
需要共享一个以密钥形式存在的秘密。
Je vais vous montrer comment ça marche.
我来演示一下它的运作方式。
À droite, le message que nous voulons faire passer: « Il fait beau aujourd'hui»,
右边是我们要传递的消息:「今天天气很好」,
et la clé secrète que partagent l'émetteur et le récepteur,
以及发送方和接收方共同掌握的密钥,
c'est le mot« Paris». Alors, j'écris mon message et je réécris ensuite la clé autant
是单词「Paris」(巴黎)。因此,我先写下明文,
de fois que nécessaire, en dessous des lettres du message.
再在明文字母下方,重复书写密钥,直到长度足够。
Et ensuite, je vais utiliser le grand tableau qui se trouve à gauche,
接着,我将使用左侧这个大表格,
de la manière suivante.
按如下方式操作。
La première lettre du chiffré, je vais aller chercher.
第一个密文字母,我将这样查找:
à la ligne I, parce que c'est la première lettre de mon message,
在表格的 I 行,因为这是明文的第一个字母,
et à la colonne P, parce que c'est la lettre de la clé qui lui est associée,
在 P 列,因为这是与之对应的密钥字母,
et je vais trouver dans cette case- là la lettre X.
并在该格子中找到字母 X。
Ce sera donc le X, la première lettre du message chiffré.
所以,X 就是密文的第一个字母。
Ensuite, à la ligne L, colonne A, je trouve la lettre L.
接下来,在 L 行、A 列,我找到字母 L。
Ligne F, colonne R, je trouve le W.
F 行、R 列,得到 W。
Ligne A, colonne I, je trouve le I.
A 行、I 列,得到 I。
Ligne I, colonne S, je trouve le A.
I 行、S 列,得到 A。
Ligne T, colonne P, je trouve le I.
T行,P列,我找到字母I。
Ligne B, colonne A, je trouve le B.
B行,A列,我找到字母B。
Ligne E, colonne R, je trouve le V, etc.
E行,R列,我找到字母V,以此类推。
Voilà, j'ai fabriqué mon message chiffré par la technique de Vigenère.
好了,我已用维吉尼亚密码法生成了我的密文。
Maintenant, on se place du point de vue du cryptanalyste.
现在,我们从密码分析者的角度来思考。
Alors le cryptanalyste commence par se dire:
于是,密码分析者首先会想:
ce que je faisais avant par analyse des fréquences, je ne peux plus le faire.
以前靠频率分析的方法,现在行不通了。
Parce que maintenant, quand j'ai un E dans le chiffré,
因为现在,当我看到密文中的一个E时,
des fois il peut représenter un B, des fois un X,
它有时代表B,有时代表X,
des fois encore une autre lettre. Donc les fréquences d'apparition des lettres dans
有时还代表其他字母。因此,密文中各字母的出现频率,
le chiffré ne suivent plus les fréquences d'apparition des lettres dans le clair.
不再符合明文中各字母的出现频率。
Malgré tout, on peut dire la chose suivante:
尽管如此,我们仍可得出以下结论:
j'ai représenté ici le message, la clé et le chiffré,
我在这里展示了明文、密钥和密文,
et j'ai groupé les lettres par couleur.
并按颜色对字母进行了分组。
À une couleur est associée une même lettre de la clé.
每种颜色对应密钥中的同一个字母。
Le groupe rouge, c'est le groupe des lettres qui sont associées au P de la clé,
红色组,是所有与密钥中P对应的字母;
le groupe vert, le groupe des lettres qui sont associées au A de la clé,
绿色组,是所有与密钥中A对应的字母;
le groupe bleu au R, le groupe jaune au I, et le groupe orange au S.
蓝色组对应R,黄色组对应I,橙色组对应S。
Eh bien, on peut constater que si j'ai une même lettre dans le chiffré,
那么,我们可以发现:如果密文中出现同一个字母,
par exemple, regardez les i jaunes,
比如,看看那些黄色的i,
qui correspondent à une même lettre pour la clé, ici le I de la clé.
它们都对应密钥中的同一个字母——此处是I。
C'est un hasard si c'est un I dans le chiffré et un I pour la clé.
密文中是I、密钥中也是I,这纯属巧合。
Ce qui est important, c'est que les deux colonnes aient la même lettre en ligne,
关键在于,这两列在相同行上具有相同的字母,
le I du chiffré et le I de la clé,
即密文中的I和密钥中的I,
alors je vais trouver la même lettre dans le clair.
那么,我在明文中就会得到同一个字母。
Vous avez un autre exemple, si vous regardez.
您还有另一个例子,如果您仔细观察的话。
Dans le groupe orange, vous voyez deux M
在橙色组中,您看到两个M,
qui sont associés à deux S de la clé,
它们分别对应密钥中的两个S,
eh bien tous les deux représentent le U du clair.
这两个M都代表明文中的字母U。
Alors, ça, comment je vais essayer de l'utiliser?
那么,我该如何利用这一点呢?
En fait, si je connaissais la taille de la clé.
实际上,如果我知道密钥的长度,
Je pourrais faire des groupes, comme je vous ai montré ici avec les couleurs,
我就可以像刚才用颜色演示的那样,
et faire des analyses de fréquences par groupe.
并对每个组分别进行频率分析。
Parce que si je regarde uniquement les lettres orange par exemple,
比如,如果我只看橙色字母,
eh bien l'apparition d'un M
那么密文中出现一个M,
dans le chiffré correspond bien à l'apparition d'une même lettre dans le clair,
就确实对应明文中同一个字母的出现,
ici le U. Donc les fréquences d'apparition au sein d'un groupe d'une même couleur
这里就是U。因此,在同一颜色组内,
doivent suivre les fréquences d'apparition dans le clair.
各字母的出现频率应与明文中的频率一致。
Le problème, c'est que je ne connais pas la taille de la clé,
问题在于,我并不知道密钥的长度,
alors je vais simplement tester toutes les tailles de clé.
所以我将逐一尝试所有可能的密钥长度。
Voyons ce que ça donne lorsque je suppose une taille de clé qui est mauvaise.
我们来看看,假设密钥长度错误时会发生什么。
Je vous ai remis ici le message chiffré.
这里再次展示了密文。
On a supposé que la taille de la clé était 3.
我们假设密钥长度为3。
Je ne connais pas les lettres de la clé, je suppose qu'elle
我不知道密钥的具体字母,暂且称它为
s'appelle alpha, beta, gamma.
α、β、γ。