bdes(1) FreeBSD 一般コマンドマニュアル

bdes

前のページ 上に戻る 次のページ

bdes




解説

     bdes は %T "FIPS PUB 81" で規定されるすべての DES モード処理を実装してい
     ます。新しい暗号化フィードバックモード (alternative cipher feedback mode
     (CFB)) と両方の認証モードも含まれます。 bdes は標準入力を読んで標準出力へ
     書き出します。オプションを指定しなければ、入力は暗号化ブロック連鎖モード
     (cipher block chaining mode (CBC)) で暗号化されます。暗号化と復号化に同一
     の鍵を使うことで平文を復元します。

     電子暗号表モード (electronic code book mode (ECB)) 以外のすべてのモードは
     初期化ベクトル (initialization vector) を必要とし、指定されない場合はゼロ
     ベクトルが使われます。コマンドラインに key (鍵) を指定しない場合は、対話
     的に入力を求めます (詳しくは getpass(3) を参照して下さい)。

     オプションは次の通りです:

     -a      鍵と初期化ベクトル文字列は ASCII 文字列として扱われ、 ``0X'',
             ``0x'', ``0B'', ``0b'' ではじまる文字列に対する特別の変換はされま
             せん。このフラグは、鍵と初期化ベクトルの 両方に作用します。

     -b      電子暗号表モード (ECB) で動作します。

     -d      入力を復号化します。

     -F N    N ビットの新しい暗号化フィードバックモード (CFB) で動作します。現
             状では N は 7 以上 56 以下の 7 の倍数であることが必要です (この制
             限は新しい暗号化フィードバックモード (CFB) の仕様には適合しませ
             ん)。

     -f N    N ビットの暗号化フィードバックモード (CFB) で動作します。現状では
             N は 8 以上 64 以下の 8 の倍数であることが必要です (この制限は標
             準の暗号化フィードバックモード (CFB) の仕様には適合しません)。

     -k key  key を暗号化方式の鍵とします。

     -m N    入力を N ビットのメッセージ認証コード (message authentication
             code (MAC)) で処理します。 N は 1 以上 64 以下であることが必要で
             す。 N が 8 の倍数でないとき、 MAC のビット長が 8 の倍数になるま
             で 0 のビットが付け加えられます。出力は必ず MAC になります。 MAC
             は暗号化ブロック連鎖モード (CBC) あるいは暗号化フィードバックモー
             ド (CFB) でのみ有効です。

     -o N    N ビットの出力フィードバックモード (output feedback mode (OFB))
             で動作します。現状では N は 8 以上 64 以下の 8 の倍数であることが
             必要です (この制限は OFB モードの仕様には適合しません)。

     -p      パリティビットのリセットをしません。このフラグにより鍵のパリティ
             ビットは入力された通りに解釈され、それぞれの文字を奇数パリティに
             直すことはしません。鍵が ASCII 文字列の場合にのみ使用されます。

     -v vector
             初期化ベクトルとして vector を使用します。 vector は鍵と同じ方式

     る方法があります。これで鍵空間の大きさが保持されます。このパリティビット
     の再設定は、鍵が 2 進数あるいは 16 進数で与えられた場合には 行なわれませ
     ん。さらに、 ASCII の鍵であっても再設定しないようにできることを注意してお
     きます。

     DES は非常に強固な暗号法とされており、 table lookup attacks, key search
     attacks, および Hellman's time-memory tradeoff (これらはすべてたいへんな
     手間と時間を要します) を除けば、公の文献に関する限り DES を突破する解析法
     は知られていません。鍵の選択と鍵そのものの保安が bdes の信頼性を決定する
     ものと信じて間違いありません。


実装に関する注

     このプログラムと互換性のあるソフトウェアを実装したい人は、以下の点に注意
     してください。このソフトウェアは Sun Microsystems, Inc. が公開している
     data encryption standard の実装と互換であるものとされています。

     電子暗号表 (ECB) モードおよび暗号化ブロック連鎖 (CBC) モードでは、平文が
     64 ビット (8 バイト = 1 ブロック) 単位で暗号化されます。平文のファイルが
     正しく暗号化されることを保証するために、 bdes は (内部動作として) 1 から
     8 バイトを追加し、そのうちの最後のバイトは、最後のブロックが平文のファイ
     ルからの入力として何バイトを読み込んで暗号化したかを示します。したがっ
     て、復号化のときには最後のブロックは 0 から 7 文字までの平文データと、末
     尾のバイトとしてその文字数を含みます。復号化の際にファイルの最後のバイト
     が 0 から 7 までの間の整数でなかった場合、ファイルが破壊されているか間
     違った鍵が指定されたかのどちらかであることに注意してください。同様の機構
     が OFB と CFB のモードでも利用されていますが、それらでは入力の長さがモー
     ドサイズの倍数であることが必要なだけで、最後のバイトは、0 か、モードサイ
     ズとして使われるバイト数から 1 を減じた数値になります。 (これはモードサイ
     ズが 8 の倍数であることが必要な理由の一つです。)

     Sun の実装と異なり、最後のブロック内の利用されないバイトは不定ではなく、
     一つ前のブロックの対応するバイトと同じになります。これにより、暗号化の強
     度を損なうことなく、処理速度と移植性を改善しています。

     鍵が ASCII 文字列で入力された場合、鍵の各文字のパリティビットは奇数パリ
     ティとなるように設定されます。 Sun の実装と異なり、 2 進あるいは 16 進の
     鍵もコマンドラインで指定できますが、その場合、パリティビットが再設定され
     ることは ありません。これにより任意のビットパターンを鍵として試すことがで
     きます。

     Sun の実装では常に初期化ベクトルを 0 (全部 0) としています。 bdes でも既
     定動作は同様ですが、コマンドラインから指定して変更できます。


関連項目

     crypt(3), getpass(3)

     Data Encryption Standard, Federal Information Processing Standard #46,
     National Bureau of Standards, U.S. Department of Commerce, Washington DC,
     January 1977.

     DES Modes of Operation, Federal Information Processing Standard #81,
     National Bureau of Standards, U.S. Department of Commerce, Washington DC,
     FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     SUCH DAMAGE.


バグ

     DES が今後の数年間も安全であるかどうかについて激しい論争がありました。専
     用ハードウェアの出現により前述の各種攻撃方法の費用が低減されることはあり
     得るので、これらの攻撃方法が計算量の点から非現実的とはもはや言えません。

     鍵あるいは鍵の一覧がメモリに納められるので、メモリを読み出せる場合は暗号
     化の安全性が損なわれる可能性があります。さらに、コマンドラインで鍵や初期
     化ベクトルを指定したときには、プログラムの引数を表示するプログラムによっ
     て傍受される可能性もあります。これを回避するために bdes は引数を上書きし
     ますが、残念ながら、これらが競合することは明らかで、現状では回避できませ
     ん。

     ある種の鍵は潜在的な危険を持ち込むことになるので、使用を避けるべきです。
     これらの鍵は、 弱い鍵 (weak key) と やや弱い鍵 (semiweak key) と呼ばれて
     おり、以下のものです (16 進数表記で p を 0 あるいは 1 とし、 P を `e' あ
     るいは `f' とする) :

           0x0p0p0p0p0p0p0p0p    0x0p1P0p1P0p0P0p0P
           0x0pep0pep0pfp0pfp    0x0pfP0pfP0pfP0pfP
           0x1P0p1P0p0P0p0P0p    0x1P1P1P1P0P0P0P0P
           0x1Pep1Pep0Pfp0Pfp    0x1PfP1PfP0PfP0PfP
           0xep0pep0pfp0pfp0p    0xep1Pep1pfp0Pfp0P
           0xepepepepepepepep    0xepfPepfPfpfPfpfP
           0xfP0pfP0pfP0pfP0p    0xfP1PfP1PfP0PfP0P
           0xfPepfPepfPepfPep    0xfPfPfPfPfPfPfPfP

     これは DES アルゴリズムに固有の性質です ( Moore and Simmons, "Cycle
     structure of the DES with weak and semi-weak keys", Advances in
     Cryptology - Crypto '86 Proceedings, pp. 9-32, Springer-Verlag New York,
     1987.  を参照)。

FreeBSD 4.4                      June 29, 1993                     FreeBSD 4.4

ABELNET VPSサービス