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

Algorithm 我的对称加密算法安全吗?,algorithm,encryption,encryption-symmetric,vigenere,Algorithm,Encryption,Encryption Symmetric,Vigenere,我最近决定编写自己的对称加密程序(例如,可以在自定义密码管理器中使用)。 我想听听你对他的看法,我犯了大错误吗?否则它会很容易破碎吗 它基本上是一个Vigener fork,试图更接近Vernam加密的原理,但仍然易于使用(您可以使用任何密钥来加密文本) 它是如何工作的? 输入消息(例如hello world)和种子(例如seed) 由于一个哈希函数,种子被转换成一个数字 我们将消息中的字母数添加到这个数字中,然后在另一次散列它 使用结果初始化伪随机数生成器,并生成文本大小的随机数列表(它是键

我最近决定编写自己的对称加密程序(例如,可以在自定义密码管理器中使用)。 我想听听你对他的看法,我犯了大错误吗?否则它会很容易破碎吗

它基本上是一个Vigener fork,试图更接近Vernam加密的原理,但仍然易于使用(您可以使用任何密钥来加密文本)

它是如何工作的?

  • 输入消息(例如hello world)和种子(例如seed)
  • 由于一个哈希函数,种子被转换成一个数字
  • 我们将消息中的字母数添加到这个数字中,然后在另一次散列它
  • 使用结果初始化伪随机数生成器,并生成文本大小的随机数列表(它是键)
  • 我们用列表中相应的数字移动每个字母(消息的第一个字母用我们生成的列表的第一个数字移动)
    
    例子:
    字母表:[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]
    名单:[1,18,3,17,0]
    字:“你好”
    h+1=j
    e+18=w
    l+3=o
    l+17=c(随着字母表的完成,我们继续从一开始)
    o+0=o
    输出:“jwoco”
    
Vernam加密原理规定:

  • 用于偏移字母的键必须至少与文本大小一样大->可以
  • 密钥只能使用一次->如果更改种子或消息的大小(因为我们在用于初始化密钥的哈希中包含文本大小),则可以
  • 密钥必须是完全随机的->这取决于随机数生成算法和哈希算法,但是如果它们是好的,我们应该有一个输出,没有密钥就不可能找到比其他文本更可能是原始消息的文本
我的解释清楚吗?你同意我的看法吗?你有什么需要补充的澄清吗?改进建议或算法的随机数生成和散列给我建议

祝你今天愉快,
托马斯

布鲁斯·施奈尔的相关轶事:

一位密码专家朋友讲述了一位业余爱好者 用他发明的密码来烦他。密码学家会 如果破解密码,业余爱好者会修改“修复”密码,然后 密码学家会再次破解它。这种交流进行了几次 直到密码学家厌倦了。当业余爱好者来拜访他时 听到密码学家的想法,密码学家放了三个 信封面朝下放在桌子上。“每个信封中都有一个 攻击你的密码。拿一个读一读。不要回来 直到你发现另外两次攻击。”业余选手从来没有 又有消息了


使用AES。

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

一位密码专家朋友讲述了一位业余爱好者 用他发明的密码来烦他。密码学家会 如果破解密码,业余爱好者会修改“修复”密码,然后 密码学家会再次破解它。这种交流进行了几次 直到密码学家厌倦了。当业余爱好者来拜访他时 听到密码学家的想法,密码学家放了三个 信封面朝下放在桌子上。“每个信封中都有一个 攻击你的密码。拿一个读一读。不要回来 直到你发现另外两次攻击。”业余选手从来没有 又有消息了


使用AES。

我将投票结束这个问题,因为这个问题与编程无关。最明显的地方是,但是说他们也不会回答这个问题。嘿!这是一个真正的编程问题,因为我在问你我应该使用哪种哈希和随机数生成算法,但为了理解我的需求,我必须解释系统是如何工作的。如果你愿意的话,我可以试着把这个问题带出主题?这不是一个对出版有用的编程问题。它甚至没有指定编程生态系统。这是一个相当理论化的算法,你希望这里的人们深入研究它。这对任何人都没有帮助,也证明不了什么。。我也投票决定关闭它。你基本上用vigenere密码而不是XOR重新发明了流密码。至少,您需要一个CPRN,并且每次都要更改RNG的种子,否则它很容易受到选定的纯文本攻击。看,我投票结束这个问题,因为它属于crypto.stackexchange.com。这是一个好问题,但不属于这里。我投票结束这个问题,因为这个问题与编程无关。最明显的地方是,但是说他们也不会回答这个问题。嘿!这是一个真正的编程问题,因为我在问你我应该使用哪种哈希和随机数生成算法,但为了理解我的需求,我必须解释系统是如何工作的。如果你愿意的话,我可以试着把这个问题带出主题?这不是一个对出版有用的编程问题。它甚至没有指定编程生态系统。这是一个相当理论化的算法,你希望这里的人们深入研究它。这对任何人都没有帮助,也证明不了什么。。我也投票决定关闭它。你基本上用vigenere密码而不是XOR重新发明了流密码。至少,您需要一个CPRN,并且每次都要更改RNG的种子,否则它很容易受到选定的纯文本攻击。看,我投票结束这个问题,因为它属于crypto.stackexchange.com。好问题,但不属于这里。我不知道这个故事,很有趣。但我的目标不是使用对称加密,而是创建一个对称加密。它对人类有用吗?我不这么认为:正如你们所知,AES已经在响应这一需求,但正在开发我自己的