名 前
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 引 き 数 datalen は data の バ イ ト 長 で あ り 、 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 に は な い 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。