我有一些代码,其中包含信用卡号码的列表,将数字分割成两个块,一个块长8个字符,另一个块是剩余部分。
每组块都保存到单独的文件中,例如,我的测试数据看起来像(这些是测试CC编号):
378282246310005
4111111111111111
4242424242424242
378734493671000
4242424242424242因此,X文件将包含:
37828224
41111111
42424242
37873449
42424242Y文件将包含:
6310005
11111111
42424242
3671000
42424242每个记录都由一个公共分隔符(换行符)分隔。
文件X使用AES保存到TrueCrypt卷,而文件Y也使用AES保存到不同的TrueCrypt卷,但使用一个完全无关的密钥。
我的问题是,是否因为这种结构而降低了密码强度?
我提出这个问题的原因是,如果您知道一个文件的内容,您可以断言第二个文件的内容,因为信用卡号码符合LUHN-10 (mod10)规范。
例如,如果我知道文件X的内容,我知道Y文件中的相应记录必须通过LUHN-10检查,因此知道文件X公开了关于文件Y的信息,Y的潜在值降低了10倍。
稍微偏离主题,但是如果攻击者知道文件的结构,那么存储一个由公共分隔符分隔的完整信用卡号的文件是否会公开信息?
发布于 2013-01-22 08:09:29
不,它没有降低安全性,但也没有(从本质上)提高安全性。AES (或者更好的,托马斯指出,aes在Truecrypt中使用的方式)是针对IND攻击的安全的,所以文件本身的加密不会显示任何关于明文的信息,除了长度以外。
即使对手知道100位加密文件的99位(但不知道加密密钥),它也无法在不遍历整组密钥的情况下找到最后一位。了解一些关于明文的知识对对手没有任何帮助。
https://crypto.stackexchange.com/questions/6060
复制相似问题