DES_CRYPT

Section: Linux Programmer's Manual (3)
Updated: 2020-04-11
Index JM 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 引数 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 で追加された。

Because they employ the DES block cipher, which is no longer considered secure, ecb_crypt(), ecb_crypt(), crypt_r(), and des_setparity() were removed in glibc 2.28. Applications should switch to a modern cryptography library, such as libgcrypt.  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
ecb_crypt(), cbc_crypt(), des_setparity() Thread safety MT-Safe
 

準拠

4.3BSD. POSIX.1 にはない。  

関連項目

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

この文書について

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

関連キーワード

crypt   暗号化   ルーチン   setparity   ハードウェア   モード   ブロック   バイト   パリティ   ソフトウェア   高速   連鎖   復号   初期化   ベクトル   Encryption   Standard   規格   実装   一般的   目的   Electronic   Code Book   個々   独立

Linux マニュアル 一覧

関連するコマンド・関数

DES_FAILED.3   des_crypt.3   des_setparity.3   ecb_crypt.3   crypt.3   crypt_r.3
 

Index

名前
書式
説明
返り値
バージョン
属性
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:27 GMT, October 11, 2026