0

セキュリティとは、エンコードされた文字列はランダム ノイズと区別できず、同じテキストの暗号化ごとに異なるため、使用されている暗号化アルゴリズムを推測したり、エンコードされたテキストに対して辞書攻撃を行ったりすることは不可能であることを意味します。

2 つ目: 出力文字列の長さが入力文字列の長さと簡単に対応しないため、その理由を推測することはできません。

3 番目: 提供されたパスワードが正しくないことを確認できるため、デコード関数は、おそらくデコードされたランダムな文字列ではなく false を返す可能性があります。

--- 編集: これは、与えられたアルゴリズムとモードのペアがエンコードされる速度です:

0.554 : cast-128 : ctr : 8
0.556 : gost : ncfb : 8
0.5562 : cast-128 : ecb : 8
0.5566 : cast-128 : ncfb : 8
0.5579 : gost : cbc : 8
0.5596 : gost : cfb : 8
0.5596 : gost : ofb : 8
0.5601 : gost : ctr : 8
0.5613 : cast-256 : cfb : 16
0.5621 : twofish : cbc : 16
0.5622 : rijndael-128 : ctr : 16
0.5632 : twofish : cfb : 16
0.5646 : rijndael-128 : cfb : 16
0.5656 : rijndael-128 : ofb : 16
0.5657 : rijndael-128 : ncfb : 16
0.5658 : loki97 : cbc : 16
0.5663 : gost : ecb : 8
0.5667 : cast-128 : cfb : 8
0.5674 : cast-128 : ofb : 8
0.5675 : rijndael-128 : ecb : 16
0.5684 : loki97 : ctr : 16
0.5684 : rijndael-128 : nofb : 16
0.5686 : loki97 : ecb : 16
0.5688 : loki97 : cfb : 16
0.5692 : gost : nofb : 8
0.57 : saferplus : ecb : 16
0.5701 : cast-256 : nofb : 16
0.5704 : loki97 : ncfb : 16
0.571 : twofish : ncfb : 16
0.5719 : cast-256 : ecb : 16
0.5728 : cast-256 : cbc : 16
0.573 : twofish : ofb : 16
0.5731 : cast-256 : ofb : 16
0.5737 : loki97 : nofb : 16
0.5741 : saferplus : ctr : 16
0.5748 : twofish : ecb : 16
0.575 : rijndael-192 : cfb : 24
0.5759 : cast-256 : ctr : 16
0.5769 : cast-128 : nofb : 8
0.5776 : saferplus : ofb : 16
0.5778 : saferplus : ncfb : 16
0.5778 : twofish : nofb : 16
0.5783 : rijndael-128 : cbc : 16
0.5795 : rijndael-192 : ecb : 24
0.5801 : rijndael-192 : cbc : 24
0.5808 : rijndael-192 : nofb : 24
0.5809 : saferplus : cbc : 16
0.581 : saferplus : nofb : 16
0.5829 : rijndael-192 : ctr : 24
0.5837 : serpent : ctr : 16
0.5845 : cast-256 : ncfb : 16
0.5856 : xtea : ecb : 8
0.5857 : serpent : cbc : 16
0.5859 : xtea : ctr : 8
0.5863 : saferplus : cfb : 16
0.5877 : twofish : ctr : 16
0.5881 : xtea : nofb : 8
0.5887 : xtea : ofb : 8
0.5891 : cast-128 : cbc : 8
0.5892 : xtea : ncfb : 8
0.5895 : rijndael-192 : ncfb : 24
0.5913 : serpent : cfb : 16
0.5918 : serpent : ofb : 16
0.5934 : rijndael-256 : ecb : 32
0.5935 : rijndael-256 : cbc : 32
0.5936 : serpent : nofb : 16
0.5943 : loki97 : ofb : 16
0.595 : rijndael-192 : ofb : 24
0.5958 : rijndael-256 : ctr : 32
0.596 : blowfish-compat : cbc : 8
0.5962 : serpent : ecb : 16
0.5972 : rijndael-256 : cfb : 32
0.5976 : rijndael-256 : ncfb : 32
0.5977 : xtea : cbc : 8
0.5982 : rc2 : ctr : 8
0.5989 : blowfish-compat : cfb : 8
0.599 : rc2 : cfb : 8
0.6 : des : cfb : 8
0.6002 : rc2 : nofb : 8
0.6009 : blowfish-compat : ctr : 8
0.6013 : rc2 : cbc : 8
0.6021 : rc2 : ncfb : 8
0.604 : rijndael-256 : nofb : 32
0.6043 : blowfish-compat : ncfb : 8
0.6043 : des : nofb : 8
0.6055 : des : ecb : 8
0.607 : blowfish : cbc : 8
0.6078 : rc2 : ecb : 8
0.6081 : blowfish-compat : nofb : 8
0.6081 : des : cbc : 8
0.6093 : blowfish : ecb : 8
0.6098 : des : ofb : 8
0.6105 : blowfish : cfb : 8
0.6113 : blowfish-compat : ofb : 8
0.6137 : rc2 : ofb : 8
0.6139 : xtea : cfb : 8
0.6141 : serpent : ncfb : 16
0.6144 : des : ctr : 8
0.6174 : blowfish : ofb : 8
0.6184 : blowfish : ncfb : 8
0.6218 : des : ncfb : 8
0.6228 : blowfish-compat : ecb : 8
0.6228 : rijndael-256 : ofb : 32
0.6253 : blowfish : nofb : 8
0.628 : blowfish : ctr : 8
0.6343 : tripledes : ctr : 8
0.6356 : tripledes : cfb : 8
0.6365 : tripledes : cbc : 8
0.6367 : tripledes : ncfb : 8
0.6368 : tripledes : ecb : 8
0.647 : tripledes : ofb : 8
0.6582 : tripledes : nofb : 8

上から下に行くと、どれが最も安全ですか?

4

2 に答える 2

2

2番目:これは意味がありません。4 バイトを暗号化した結果と 4 メガバイトを暗号化した結果が異なることに気付きましたね。一般に、実際の長さをマスクするために (パスワードなどを暗号化する場合) パディングが使用されます。暗号化されるデータに特定のバイト数が追加されてから、全体が暗号化されます。しかし、ここでも、4 バイト長のパスワードと 48 バイト長のパスフレーズの暗号化には違いがあります (64 バイトまでのパディングを使用する場合を除きますが、アイデアは得られます)。

3 番目: これにはハッシュが使用されます。つまり、元のデータ (またはいくつかの追加データ) のハッシュを暗号化されたデータに含めます。復号化後、ハッシュが再計算され、保存されているハッシュと比較されます。比較ではタイミング攻撃が可能であるため、比較を適切に実装する必要があることに注意してください。

一般に、車輪を再発明しようとしています。安全なキー (またはパスワード) を使用してデータを暗号化するだけでよい場合は、OpenPGP を使用してください。強力な暗号化を再発明する際に、あなたが尋ねた、そして尋ねたであろうすべての質問を解決します。OpenPGP では、暗号化にプレーンなパスフレーズを使用できます。

于 2011-01-01T13:11:50.707 に答える
0

背景については、 http : //en.wikipedia.org/wiki/Block_cipher_modes_of_operatioを参照してください。

それはすべて本当に依存します。一部にはよく知られている欠点があります。暗号/連結の組み合わせと、それをどのように使用するかの詳細を実際に確認する必要があります。

「カジュアルな使用」の場合、ブロック暗号モードは暗号化システムの最も機密性の高い部分ではないと主張できます。

ブロック暗号をストリーム暗号に変換したい場合にのみ役立つものもあります。

  • クリック率
  • CFB
  • OFB

したがって、それを行う必要がない限り、それらは役に立ちません。

ECB は最も単純なものですが、主な欠点は、等しい平文ブロックが同じ暗号文になることです。最近では、それを使用する理由はほとんどありません。

あなたのポイントに対処する:

  1. ブロック暗号モードにはあまり依存しません。ソルトを使用するか、パスワードを N 回暗号化して、事前計算されたテーブル攻撃を回避することができます。

  2. それは起こりません。入力は暗号化の前にパディングされます

  3. よく分からない...

編集: Eugene に同意します。必要がなければ、車輪を再発明しないでください。

于 2011-01-01T13:04:42.187 に答える