首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试Kasiski测试和Vigenere加密的相互符合指数Vigenere加密?

测试Kasiski测试和Vigenere加密的相互符合指数Vigenere加密?
EN

Cryptography用户
提问于 2016-10-02 16:46:42
回答 1查看 1.2K关注 0票数 0

我正在学习Vigenere密码及其各种密码分析攻击。其中之一是,Kasiski检验和相互符合指数。所以,我想知道Kasiski检验和互测巧合指数是否能破解Vigenere加密本身的Vigenere加密(密钥可能不同或相同),即使用Vigenere密码加密的明文,以及使用Vigenere密码再次加密的输出?使用这种方案会给攻击者造成适当的混乱,还是会成为一个漏洞?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2016-10-02 18:43:24

Vigenere algotrith假设Alice会向Bob发送一条信息。消息是用某种语言编写的,具有长度ML (组成消息的符号具有已知的频率,属于具有给定大小AL的字母表A)。为了封装一条消息,Alice使用了一个键(K),在Vigenere alogrithm中,这个键是由称为蠕虫最短(从定义上说)的符号所组成的序列,而不是信息,爱丽丝和鲍勃都不需要交换。通过将每个消息符号的值与相应的蠕虫的值相加来实现封装,sybol (蠕虫可以完全随机)模块化AL。

例:

代码语言:javascript
复制
M = "hello world today is fine"
ML = 25
K = "abc"
KL = 3

M as values :
68 65 6C 6C 6F 20 77 6F 72 6C 64 20 74 6F 64 61 79 20 69 73 20 66 69 6E 65 
K as values :
61 62 63 

正如您所看到的,因为蠕虫比消息短(根据定义),我们需要重复它,一次又一次地到达ML。

代码语言:javascript
复制
M as values :
68 65 6C 6C 6F 20 77 6F 72 6C 64 20 74 6F 64 61 79 20 69 73 20 66 69 6E 65 
K as values (repeated) :
61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 

我们得到的确实是三个凯撒占位权的序列(在一般情况下,凯撒占位权的数目是KL =键长):

这是第一个凯撒

代码语言:javascript
复制
M as values :
68 65 6C 6C 6F 20 77 6F 72 6C 64 20 74 6F 64 61 79 20 69 73 20 66 69 6E 65
|        |        |        |        |        |        |        |        | 
K as values (repeated) :
61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 

Caesar SubMessage : 68 6C 77 6C 74 61 69 66 65
Caesar Key : 61

这是第二次凯撒

代码语言:javascript
复制
M as values :
68 65 6C 6C 6F 20 77 6F 72 6C 64 20 74 6F 64 61 79 20 69 73 20 66 69 6E 65
   |        |        |        |        |        |        |        |         
K as values (repeated) :
61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 

Caesar SubMessage : 65 6F 6F 64 6F 79 73 69
Caesar Key : 62

这是第三次凯撒

代码语言:javascript
复制
M as values :
68 65 6C 6C 6F 20 77 6F 72 6C 64 20 74 6F 64 61 79 20 69 73 20 66 69 6E 65
      |        |        |        |        |        |        |        |         
K as values (repeated) :
61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 62 63 61 

Caesar SubMessage : 6C 20 72 20 64 20 20 20 6E
Caesar Key : 63

如果在子消息上“正则分裂”,则主消息上的符号频率保持不变,因此对凯撒的经典攻击(基于频率的攻击)仍然适用于三个凯撒子消息。

正如您可以想象的那样,如果您将Vigenere占用加倍,那么攻击的复杂性不会改变( EG : add K1 = "def")。

代码语言:javascript
复制
M as values :
68 65 6C 6C 6F 20 77 6F 72 6C 64 20 74 6F 64 61 79 20 69 73 20 66 69 6E 65 
K as values :
61 62 63 

K1 as values :
64 65 66

这是因为Vigenere占卜是由凯撒占卜和凯撒占卜组成的,所以:

代码语言:javascript
复制
( 68 + 61 mod AL ) + 64 mod AL = ( 68 + ( 61 + 64 mod AL ) ) mod AL

因此,双权等价于单个权中密钥的更改,但密钥性质(随机或非随机)并不能解决该模式的任何安全问题。

在上面的示例中(关于双重存储),通过组合K和K1获得的结果密钥称为K2 (我假设AL = 256,A是ASCII表):

代码语言:javascript
复制
K2 = C5 C7 C9

因此,双权等价于一个实例,如下所示

代码语言:javascript
复制
M as values :
68 65 6C 6C 6F 20 77 6F 72 6C 64 20 74 6F 64 61 79 20 69 73 20 66 69 6E 65 
K2 as values (repeated) :
C5 C7 C9 C5 C7 C9 C5 C7 C9 C5 C7 C9 C5 C7 C9 C5 C7 C9 C5 C7 C9 C5 C7 C9 C5 

当然,这一立场并不比第一次那样紧张。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/40390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档