问题标签 [cryptanalysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8491 浏览

c - 如何从解密和加密的数据中找到 RC4 密钥?

我在文档中进行了一些转储分析,显示了一堆加密数据,以及由此产生的解密数据。解释了使用的算法(简单的 RC4)。唯一缺少的信息是用于从加密数据到解密数据的密钥。

我正在用这个文档材料编写一个自动化测试。我可以选择自己的一些密钥并从明文中重新创建加密数据,但我想知道是否有任何简单的密码分析方法可以找到用于加密原始数据的原始密钥。

蛮力方法可能是可能的,因为密钥非常小,但我更感兴趣的是知道是否存在任何更聪明的方法。

以下是我当前的 C 加密代码(使用 OpenSSL):

0 投票
1 回答
1923 浏览

encryption - key_derivation 和 key_verification 函数是如何实现 7-zip 压缩包的加密机制的?

我很好奇密码恢复如何用于受密码保护的文件。And I want to know the exact flow of the 7-zip encryption mechanism.

7-zip在CBC模式下使用AES-256加密算法,对文件或文件夹进行加密。密钥是根据用户提供的基于 SHA-256 哈希函数的密码生成的。SHA-256 被执行 2 19 (524,288) 次以增加穷举搜索的成本。此外,为了帮助降低字典攻击的风险,盐会在生成哈希之前附加到原始密码短语中。

我的第一个问题是how does key_derivation function work to generate a 256-bit key?IV 对于 AES CBC 模式的重要性以及它是如何生成的?

我的第二个问题most important question是如何验证密钥以解密 7-zip 存档?我的意思是它的 key_verification 功能是如何工作的?

0 投票
1 回答
1085 浏览

security - Why is it recommended to make crypto algorithms public?

Cryptography books say that you should expose your encryption/decryption algorithm to test it against attacks and cryptanalysis, and the non-exposed algorithm is not considered strong as it is not tested against attacks, but they say also that the security of the cryptographic algorithm depends mainly on the key length and key random distribution to protect it against brute force attack and mathematical analysis of the key.

My question is why do we need to expose our algorithm while it depends mainly on the key length, if my key was long enough and truly randomized, so what is the benefit of knowing the algorithm?

0 投票
1 回答
1135 浏览

c - 关于 SAT Solvers 和 cnf 文件

我一直在尝试使用 Cryptominisat(类似的东西)来制定对 Piccolo 的攻击,这是一种类似于 AES 的轻量级分组密码。

方程是这样的:

Z= z1|z2|...|z16, 1<= i<=16

那么,ui= (1+z(4i-3)) ^ (1+ z(4i-2)) ^ (1+z(4i-1)) ^ (1+ z(4i)), 1<=i <=4

那么,(1+u1) V (1+u2) V (1+u3) V (1+u4) =1;ui + uj=1, i<=i<=j<=4

我需要一些关于下一步的帮助。我已经准备好用于攻击和解密的 CNF 方程,我真的需要关于如何将其与 sat 求解器一起使用并将其放入 CNF 文件格式的帮助。我一直在寻找整个互联网,但在任何地方都没有明确的方法。任何帮助,将不胜感激。如果需要更多信息,请随时询问。我需要把上面的方程放在一个 cnf 文件中。

由于涉及的方程式非常复杂(还有更多),因此 cnf 文件及其工作的一些参考或示例会很棒。

0 投票
1 回答
755 浏览

c - 将方程转换为 cnf,用于使用 sat 求解器

因此,我必须将我的一位同事设计的一些方程转换为 cnf 文件格式,以便与一些开源 sat 求解器一起使用。

方程是:

S盒:

混合列:

对于攻击,

我将不胜感激有关如何将这些转换为 cnf 文件格式的任何信息,包括任何参考链接。也将不胜感激有关以 cnf 文件格式指定上述约束的一些帮助。

0 投票
2 回答
204 浏览

c# - 生成 2^24 个表,这些表与 c# 仅相差一位

这些天,我在密码分析领域工作,并开始使用 C# 进行编程

现在,
为了找到 5 个最佳 s-box(我的意思是那些 2^24 个表),首先应该生成它们。我对找到最佳标准的标准了如指掌。

在这里,一个sbox是 2*8 表,其中第一行包含 0-7(二进制:000 - 111)(作为 sbox 输入)之间的数字,在第二行中,每个输入(0 - 7)都与一个数字相关联,如下:

第一个 sbox:

第二个 sbox 只有一点不同:

第三个与第二个相比只有一点不同:

和第 2 ^ 24 个:

问题是如何生成这些表?我不知道如何为每个 sbox 分别放置for 循环或将结果保存在数组中。

任何帮助表示赞赏。

0 投票
1 回答
3993 浏览

encryption - 练习密码分析和密码学技术的工具

我正在寻找工具(最好是免费的)来练习各种密码分析和密码学技术。类似于以下两个在线工具但具有更多技术的东西。

http://www.cryptool-online.org/index.php?option=com_content&view=article&id=55&Itemid=53&lang=en

http://www.simonsingh.net/The_Black_Chamber/letterfrequencies.html

任何建议都会非常受欢迎。

谢谢,安比。

0 投票
2 回答
1034 浏览

c - 为什么 DES 不安全?我们怎么知道什么时候停止迭代并且我们已经找到了关键?

据说DES是不安全的。我猜这是因为密钥是 55 位长,所以使用蛮力最多需要 2^55 次迭代才能找出现在不多的密钥。但是如果我们迭代 2^55,我们什么时候知道什么时候停止呢?

0 投票
3 回答
4073 浏览

c - 一次性密文中两个密文的异或信息给了我什么?

因此,我们被告知不要对一次性密文使用相同的密钥,因为如果攻击者知道这两个密文,他可以得到两个明文的 XOR。例如:

但是这些信息究竟能给攻击者带来什么好处呢?他可以用两个纯文本的异或做什么?

0 投票
1 回答
123 浏览

cryptography - nonce / IV 是否应该作为密钥私有?

在分组密码模式中,引入了 nonce / iv 和计数器(http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation)。它们也应该作为密钥是私有的吗?为什么?