我试图学习更多关于密码学的知识,并在下面设计了一种对称加密算法。我知道我们不应该使用自己设计的算法,但是这个算法看起来非常简单,并且基于SHA-256。
1) Take an input and a numeric key, k.
2) Pad i with 0s until its length has 256 as a factor.
3) Generate pseudo random bits using SHA-256(k), incrementing k each time.
4) XOR the input with the pseudo random bits.一样牢不可破?
这个算法和这样的加密有什么问题吗?
发布于 2018-09-03 19:41:58
我在这里看到了一些问题。
这意味着,如果您用相同的密钥加密两个相同的消息,则密码文本是相同的。如果消息的一部分是相同的,则可以确定其他消息的内容,甚至键。阅读关于拖床的文章,你就会明白为什么。
一样强
不怎么有意思。它和钥匙一样坚固。您使用的是数字键,但要使用多长时间?它是4字节长,16字节长,512字节长?这就完全不同了。
一个数字的,自动递增键是坏的。沙-256强力钻井平台非常丰富,通常作为比特币矿商出售。它们很便宜,效率很高,而且非常非常强大。使用一个每秒生成Terahashes,应用非常、非常快的异或计算,计算消息的熵,攻击者可以在几分钟内强暴您的秘密消息,可能更少。
真正随机数的
)
它们不是随机的,它们是确定性的。强行执行第一个块,所有的数据都被破坏了。如果消息的第一个字节是确定性的(比如请求头、文件类型头,或者亲爱的用户消息),那么攻击者可以使用串珠拖放攻击来推断哈希的一部分,并将其提供给强者。
攻击
如果攻击者知道明文-密码对,他就知道XOR-键,因为plaintext XOR cyphertext = KEY。这些信息会传递给强暴者,你知道会发生什么。
攻击
256字节的数据足以使用频率分析重建部分消息。重建前256个字节的其余部分是很简单的,结果是一对明文-密码文本。这允许对前256个字节进行已知明文攻击,从而可以发现和强暴XOR键。
我知道你在努力学习,但试着用它来学习密码就像试错制枪一样。你会射中自己的脚,或者头部。维基百科有一篇很好的关于对称加密的文章,列出了算法、它们背后的原理以及缺点。
https://security.stackexchange.com/questions/192974
复制相似问题