暗号化アルゴリズムの学習は楽しいことです。あなたがプレーしていることを覚えておいてください。あなたの個人的な日記(または多分パスワード)のようなものを暗号化し、データを安全に保つだけであれば、おそらく大丈夫でしょう。このような種類のセキュリティは、あいまいさによるセキュリティです。私は本当にの秘密を保持する必要がある大量のデータを暗号化することはお勧めしません。あなたのメッセージは、キーのサイズとハッシュブロックサイズより短く、キーは一回の使用とランダムであれば、この場合には
は、あなたが効果的に1-使用パッドのうねりで非常にすべてのものを使用しています。あなたの乱数の鍵生成が完璧であれば、暗号化の仕組みは破壊されません。各ブロックをメッセージに追加すると、SHA-512を使用して特定の値を追加することなく、効果的に新しいキーを計算します。メッセージが印刷可能なテキストで構成されていると攻撃者が判断でき、メッセージの長さが長いか、またはキーが繰り返し使用される場合、元のキーを見つけるのは難しくありません。
計算する、より効果的であろう:
M(1)=h(N + key) XOR Message(1)
M(2)=h(M(1)) XOR Message(2)
M(3)=h(M(2)) XOR Message(3)
(Nがクリアテキストで渡されたキーが使用された回数です。)
悪者ができる方法あなたのキーシーケンスを事前に計算し、できるだけ早くあなたのメッセージを解読してください。また、キーの塩漬けされたハッシュを使用することによって、攻撃者は次回使用されるキーシーケンスを予測することができなくなります。
私はどこかで読ん:暗号化の
「暗号は専門家に任せるべきである。」「あなたは専門家ではありません。」
コンピュータサイエンスや数学などの博士号取得の理由があります。学び、発見することはたくさんあります。このようなものは私にとってはうまく見えますが、攻撃者がトラックを駆け抜けることができる大きな穴があることは間違いありません。
楽しい時間を過ごしてください。 /Bob Bryan
また、http://security.stackexchange.com/ – Mchl
にお尋ねください。security.SEまたはcrypto.SEにクロスポストしないでください。移行のためにフラグを立てましたが、代わりに閉じても驚かないでしょう。 – CodesInChaos
あなたはなぜあなた自身の暗号を発明しますか?既存のストリーム暗号はたくさんあります。あなた自身の悪いものを発明する理由はありません。 – CodesInChaos