DES_CRYPT

Section: Linux Programmer's Manual (3)
Updated: 2014-08-19
IndexJM Home Page
 

名前

des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED - 高速な DES 暗号化 

書式

#include <rpc/des_crypt.h>int ecb_crypt(char *key, char *data, unsigned datalen, unsigned mode);int cbc_crypt(char *key, char *data, unsigned datalen, unsigned mode, char *ivec);void des_setparity(char *key);int DES_FAILED(int status);
 

説明

ecb_crypt() と cbc_crypt() は NBS DES (Data Encryption Standard, データ暗号化規格) を実装している。 これらのルーチンは crypt(3) よりも高速でより一般的な目的に使用できる。 利用可能であれば、これらのルーチンは DES ハードウェアを使用することもできる。 ecb_crypt() は ECB (Electronic Code Book) モードで暗号化する。 このモードでは (個々の) データのブロックを独立して暗号化する cbc_crypt() は CBC (Cipher Block Chaining) モードで暗号化する。 このモードでは連続するブロックを互いに連鎖させて暗号化する。 CBC はブロックの挿入・削除・置き換えから保護する。 また平文の規則性が暗号文に現れない。

これらのルーチンの使用法を示す。 第 1 引き数 key はパリティ付きの 8 バイトの暗号化鍵である。 鍵のパリティを設定するにはdes_setparity() を使うこと。 DES の場合、鍵のパリティは各バイトの最下位ビットである。 第 2 引き数 dataは暗号化または復号化されるデータを含む。 第 3 引き数 datalendata のバイト長であり、8 の倍数でなければならない。 第 4 引き数 mode はいくつかの値を OR することで作成する。 暗号化の方向 (訳註: 暗号化なのか復号化なのか) を指定するため、DES_ENCRYPT または DES_DECRYPT を OR する。 暗号化をソフトウェアで行うかハードウェアで行うかを指定するため、DES_HW または DES_SW を OR する。 DES_HW が指定されていて、かつハードウェアがない場合、 暗号化はソフトウェアで実行されて、ルーチンは DESERR_NOHWDEVICE を返す。 cbc_crypt() において、引き数ivec はデータブロックを連鎖させる際の 8 バイトの初期化ベクトルである。 この引き数はルーチンから戻るときに次の初期化ベクトルに更新される。 

返り値

DESERR_NONE
エラーなし。
DESERR_NOHWDEVICE
暗号化は成功したが、要求されたハードウェアの代わりにソフトウェアで実行された。
DESERR_HWERROR
ハードウェアまたはドライバでエラーが発生した。
DESERR_BADPARAM
ルーチンへの引き数が不正である。

結果の状態 stat を与えたとき、マクロ DES_FAILED(stat) が false になるのは、最初の 2 つだけである。 

バージョン

これらの関数は glibc 2.1 以降に存在する。 

属性

 

マルチスレッディング (pthreads(7) 参照)

関数 ecb_crypt(), cbc_crypt(), des_setparity() はスレッドセーフである。 

準拠

4.3BSD. POSIX.1-2001 にはない。 

関連項目

des(1), crypt(3), xcrypt(3) 

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報はhttp://www.kernel.org/doc/man-pages/ に書かれている。


関連キーワード

crypt,CRYPT,ルーチン,char,ハードウェア,DESERR,バイト,モード,setparity,int 

Index

名前
書式
説明
返り値
バージョン
属性
マルチスレッディング (pthreads(7) 参照)
準拠
関連項目
この文書について

This document was created byman2html, using the manual pages.
Time: 20:43:06 GMT, August 08, 2017