tail head cat sleep
QR code linking to this page

manページ  — DES_CRYPT

名称

des_crypt – 高速 DES 暗号化

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#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);

解説

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 モードは、ブロックの挿入、削除、置き換えに対する保護を行ないます。 また、通常のテキストにおける正規性は暗号テキストには現れません。

これらのルーチンを使用する方法は次のとおりです。最初のパラメータ key, は、パリティ付き 8 バイトの暗号化キーです。キーのパリティ ( DES の場合、これは各バイトの下位ビットにあります) を設定するためには、 des_setparity() を使用します。2 番めのパラメータ data には、暗号化または暗号解除されるデータが入っています。 3 番めのパラメータ datalen は、 data の長さ (バイト単位) であり、これは 8 の倍数でなければなりません。 4 番めのパラメータ mode は、いくつかのものの論理和 ( OR'ing ) によって作成されます。暗号化の方向に関しては、 DES_ENCRYPT DES_DECRYPT どちらかの 論理和 を、ソフトウェア対ハードウェアの暗号化については、 DES_HW DES_SW のどちらかの 論理和 を取り、 DES_HW が指定されており、しかもハードウェアがない場合は、 暗号化はソフトウェアで実行され、ルーチンは DESERR_NOHWDEVICE を返します。 cbc_crypt() の場合、パラメータ ivec はチェイン作成用の 8 バイトの初期化ベクトルです。 これは戻り時に、次の初期化ベクトルへと更新されます。

エラー

[DESERR_NONE] エラーなし。
[DESERR_NOHWDEVICE]
  暗号化処理は成功しましたが、要求されたハードウェアではなく ソフトウェアで行われました。
[DESERR_HWERR] ハードウェアまたはドライバでエラーが発生しました。
[DESERR_BADPARAM] ルーチンに間違ったパラメータが指定されました。

終了コード stat が与えられると、マクロ DES_FAILED(stat) が偽になるのは、最初の 2 つのステータスについてだけです。

関連項目

crypt(3)

制約

これらのルーチンは RPCSRC 4.0 では利用できません。 この情報は Secure RPC で求められる DES インタフェースの説明として提供されています。

DES_CRYPT (3) October 6, 1987

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

How do you pronounce UNIX ? You Nix !