パスフレーズがあり、そこから 128 ビットまたは 256 ビットの WEP キーを生成したいと考えています。プレーン テキストから WEP キーを生成する方法については、ポインタまたはリンクが役立ちます。
2 に答える
Hopefully the original poster has found the answer by now but I for one found this information SHOCKINGLY difficult to come by as it's beyond deprecated. As mentioned repeatedly, in this thread and others, WEP is horribly unsecure but for some reason nobody is willing to give a straight answer otherwise and there are a lot of suggestions to go learn something else.
To the original question, the 128-bit key is an MD5 hash of a 64-byte string. This 64-byte string is the ASCII pass phrase repeated over and over then truncated at 64-bytes. In SQL Server for instance, this would appear as,
SELECT CAST(HASHBYTES('MD5', LEFT(REPLICATE(@phrase, CEILING(64.0 / LEN(@phrase))), 64)) AS varbinary(13))
まず、キー導出関数について読んでください。高品質の最新の KDF は、 scrypt、bcrypt、およびPBKDF2です。それらはすべてオープンソースで実装されています。
PBKDF2 の場合、派生キーの長さを指定できます。scrypt の場合、出力の最初の N ビットを選択して、それらをキーとして使用できます。
KDF を使用せずにこれを行う最も簡単な方法は、パスフレーズを 24 ビット IV (初期化ベクトル) と連結し、RC4 キーを形成することです。
WEP はキーと IV を組み合わせて、データ ストリームのキーとなる RC4 ストリームをシードすることに注意してください。このため、WEP には多くの欠点があり、適切なデータ機密性を提供できません。詳細については、ウィキペディアのページのリンクをたどって読むことができます。
暗号化ハッシュを派生キーとして使用しないでください。