.\" @(#)des_crypt.3 2.1 88/08/11 4.0 RPCSRC; from 1.16 88/03/02 SMI; .\" .\" Taken from libc4 sources, which say: .\" Copyright (C) 1993 Eric Young - can be distributed under GPL. .\" .\" However, the above header line suggests that this file in fact is .\" Copyright Sun Microsystems, Inc (and is provided for unrestricted use, .\" see other Sun RPC sources). .\" .\" Japanese Version Copyright (c) 2004 Yuichi SATO .\" all rights reserved. .\" Translated Fri Jul 23 05:53:35 JST 2004 .\" by Yuichi SATO .\" .TH DES_CRYPT 3 2007-05-18 "" "Linux Programmer's Manual" .SH 名前 des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- 高速な DES 暗号化 .SH 書式 .nf .\" Sun の場合は .\" .B #include .B #include .LP .BI "int ecb_crypt(char *" key ", char *" data ", unsigned " datalen , .BI " unsigned " mode ); .LP .BI "int cbc_crypt(char *" key ", char *" data ", unsigned " datalen , .BI " unsigned " mode ", char *" ivec ); .LP .BI "void des_setparity(char *" key ); .LP .BI "int DES_FAILED(int " status ); .fi .SH 説明 .BR ecb_crypt () と .BR cbc_crypt () は NBS DES (Data Encryption Standard, データ暗号化規格) を実装している。 これらのルーチンは .BR crypt (3) よりも高速でより一般的な目的に使用できる。 利用可能であれば、これらのルーチンは DES ハードウェアを使用することもできる。 .BR ecb_crypt () は ECB (Electronic Code Book) モードで暗号化する。 このモードでは (個々の) データのブロックを独立して暗号化する .BR cbc_crypt () は CBC (Cipher Block Chaining) モードで暗号化する。 このモードでは連続するブロックを互いに連鎖させて暗号化する。 CBC はブロックの挿入・削除・置き換えから保護する。 また平文の規則性が暗号文に現れない。 .LP これらのルーチンの使用法を示す。 第 1 引き数 .I key はパリティ付きの 8 バイトの暗号化鍵である。 鍵のパリティを設定するには .BR des_setparity () を使うこと。 DES の場合、鍵のパリティは各バイトの最下位ビットである。 第 2 引き数 .I data は暗号化または復号化されるデータを含む。 第 3 引き数 .I datalen は .I data のバイト長であり、8 の倍数でなければならない。 第 4 引き数 .I mode はいくつかの値を OR することで作成する。 暗号化の方向 (訳註: 暗号化なのか復号化なのか) を指定するため、 .BR DES_ENCRYPT または .BR DES_DECRYPT を OR する。 暗号化をソフトウェアで行うかハードウェアで行うかを指定するため、 .BR DES_HW または .BR DES_SW を OR する。 .BR DES_HW が指定されていて、かつハードウェアがない場合、 暗号化はソフトウェアで実行されて、ルーチンは .BR DESERR_NOHWDEVICE を返す。 .BR cbc_crypt () において、引き数 .I ivec はデータブロックを連鎖させる際の 8 バイトの初期化ベクトルである。 この引き数はルーチンから戻るときに次の初期化ベクトルに更新される。 .SH 返り値 .PD 0 .TP 20 .B DESERR_NONE エラーなし。 .TP .B DESERR_NOHWDEVICE 暗号化は成功したが、要求されたハードウェアの代わりにソフトウェアで実行された。 .TP .B DESERR_HWERROR ハードウェアまたはドライバでエラーが発生した。 .TP .B DESERR_BADPARAM ルーチンへの引き数が不正である。 .PD .LP 結果の状態 .I stat を与えたとき、マクロ .\" .BR DES_FAILED\c .\" .BR ( stat ) .BI DES_FAILED( stat ) が false になるのは、最初の 2 つだけである。 .\" ここまでが Sun の man ページである。 .\" aeb がいくつか追加を行った。 .SH バージョン これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。 .SH 準拠 4.3BSD. POSIX.1-2001 にはない。 .SH 関連項目 .BR des (1), .BR crypt (3), .BR xcrypt (3)