ファイルを暗号化し、ファイルの MAC を生成するには、鍵が必要です。鍵は、数のランダムプールから生成します。
乱数発生関数がすでにある場合は、それを使用してください。この関数がない場合は、Solaris の /dev/urandom デバイスを入力として dd コマンドを使用します。詳細は、dd(1M) のマニュアルページを参照してください。
アルゴリズムが必要とする鍵の長さを決定します。
% encrypt -l Algorithm Keysize: Min Max (bits) ------------------------------------------ aes 128 128 arcfour 8 128 des 64 64 3des 192 192 % mac -l Algorithm Keysize: Min Max (bits) ------------------------------------------ des_mac 64 64 sha1_hmac 8 512 md5_hmac 8 512 sha256_hmac 8 512 sha384_hmac 8 1024 sha512_hmac 8 1024 |
dd コマンドに渡す鍵の長さをバイト単位で定義します。
最小鍵サイズと最大鍵サイズを 8 で割ります。最小鍵サイズと最大鍵サイズが異なるときは、中間の鍵サイズを使用することができます。たとえば、sha1_hmac 関数および md5_hmac 関数の場合、値 8、16、または 64 を dd コマンドに渡すことができます。
対称鍵を生成します。
% dd if=/dev/urandom of=keyfile bs=n count=n |
入力ファイルです。ランダム鍵に対しては、/dev/urandom ファイルを使用します。
生成された鍵を保持する出力ファイルです。
バイト単位の鍵サイズです。バイト単位の鍵サイズに対しては、ビット単位の鍵の長さを 8 で割ります。
入力ブロックの数です。n の数は 1 とします。
鍵を保護されたディレクトリに格納します。
そのユーザー以外は鍵のファイルを読み取ることができないように変更します。
% chmod 400 keyfile |
次の例では、AES アルゴリズムの秘密鍵を作成します。この鍵は、あとで復号化するために格納も行います。AES メカニズムでは、 128 ビット鍵を使用します。この鍵は、dd コマンドでは 16 バイトです。
% ls -al ~/keyf drwx------ 2 jdoe staff 512 May 3 11:32 ./ % dd if=/dev/urandom of=$HOME/keyf/05.07.aes16 bs=16 count=1 % chmod 400 ~/keyf/05.07.aes16 |
次の例では、DES アルゴリズムの秘密鍵を作成します。この鍵は、あとで復号化するために格納も行います。DES メカニズムでは、 64 ビット鍵を使用します。この鍵は、dd コマンドでは 8 バイトです。
% dd if=/dev/urandom of=$HOME/keyf/05.07.des8 bs=8 count=1 % chmod 400 ~/keyf/05.07.des8 |
次の例では、3DES アルゴリズムの秘密鍵を作成します。この鍵は、あとで復号化するために格納も行います。3DES メカニズムでは、 192 ビット鍵を使用します。この鍵は、dd コマンドでは 24 バイトです。
% dd if=/dev/urandom of=$HOME/keyf/05.07.3des.24 bs=24 count=1 % chmod 400 ~/keyf/05.07.3des.24 |
次の例では、MD5 アルゴリズムの秘密鍵を作成します。この鍵は、あとで復号化するために格納も行います。この鍵は、dd コマンドでは 64 バイトです。
% dd if=/dev/urandom of=$HOME/keyf/05.07.mack64 bs=64 count=1 % chmod 400 ~/keyf/05.07.mack64 |