我的对称加密算法安全吗?

时间:2018-07-27 16:43:27

标签: algorithm encryption encryption-symmetric vigenere

我最近决定编写自己的对称加密程序(例如,可以在自定义密码管理器中使用)。 我希望您对他有意见,我犯了大错吗?否则容易被破坏吗?

基本上,这是Vigenere分支,试图更接近Vernam加密原理,但仍易于使用(您可以使用任何密钥来加密文本)。

它如何工作?

  • 您输入一条消息(例如,hello world)和一个种子(例如,seed)。
  • 借助哈希函数将种子转换为数字
  • 我们将邮件的字母数添加到该数字中,然后再次对其进行哈希处理
  • 使用结果初始化伪随机数生成器,并生成文本大小的随机数列表(这是关键)。
  • 我们将列表中的每个字母与相应的数字进行移位(消息的第一个字母与我们所生成的列表的第一个数字进行移位) Example : Alphabet: [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z] List : [1,18,3,17,0] Word: "hello" h+1 = j e+18 = w l+3 = o l+17=c (as the alphabet is finished, we continue at the beginning) o+0=o Output: "jwoco"

Vernam加密原理规定:

  • 用于偏移字母的键必须至少与文本大小一样->可以
  • 密钥只能使用一次->更改种子或消息的大小是可以的(因为我们在用于初始化密钥的哈希中包括了文本大小)
  • 密钥必须是完全随机的->这将取决于随机数生成算法和哈希算法,但是如果它们是好的,我们应该有一个输出,如果没有密钥,就不可能找到更可能的文本而不是原始邮件。

我的解释清楚吗?你是否同意我的观点?您需要补充说明吗?改进提议或使用随机数生成和哈希算法向我提出建议?

今天过得愉快, 托马斯!

1 个答案:

答案 0 :(得分:4)

布鲁斯·施耐尔(Bruce Schneier)的相关轶事:

请参见https://www.schneier.com/crypto-gram/archives/1998/1015.html#cipherdesign

  

一位密码学家朋友讲述了一个业余爱好者的故事,   用他发明的密码打扰他。密码学家会   打破密码,业余人员将进行更改以“修复”它,并且   密码学家会再次破解它。这次交换进行了几次   直到密码学家受够了。当业余爱好者拜访他   听到密码学家的想法,密码学家把三个   信封面朝下放在桌子上。 “在每个信封中都有一个   攻击您的密码。读一本。不要回来   直到您发现了另外两种攻击。”   再次听到。

使用AES。