私は暗号化を取り上げようとしており、この演習を試みていました
ワンタイム パッドを生成するプログラム (できれば Java) を作成します。ワンタイム パッドは、すべてのランダム データの比較的大きなファイル (1 MB など) です。プログラムは、生成されたワンタイムパッドに基づいてファイルを暗号化/復号化することもできます。
ヒント: 次のテスト ベクトルを使用して、プログラムが正しく暗号化されているかどうかを確認してください。
平文 (ASCII): すべての雲には希望の光があり
ます OTP (HEX): 6dc72fc595e35dcd38c05dca2a0d2dbd8e2df20b129b2cfa29ad17972922a2
暗号文 (HEX): 28b14ab7ecc33ea157b539ea426c5eef9def0d81627cc89eed495
乱数ジェネレーターを HEX 形式に変換する必要があるため、乱数ジェネレーターを使用してワンタイム パッドを生成しようとしました。そして、私は混乱しているか、正しい方法で取り組んでいないと確信しています
public static void oneTimePad()
{
Random ran = new Random();
String s = "0123456789ABCDEF";
for(int i = 0; i < 100; i++)
{
System.out.print(s.charAt(ran.nextInt(s.length())));
}
}
上記は私のワンタイムパッドであり、ワンタイムパッドを使用して暗号化を実装し、それを復号化する方法を考えていました。