tail head cat sleep
QR code linking to this page

manページ  — CIPHER

名称

setkey, encrypt, des_setkey, des_cipher – DES 暗号化

内容

ライブラリ

FreeSec Crypt Library (libcipher, -lcipher)

書式

#include <unistd.h>

int
setkey(const char *key);

int
encrypt(char *block, int flag);

int
des_setkey(const char *key);

int
des_cipher(const char *in, char *out, long salt, int count);

解説

encrypt(), setkey(), des_setkey(), des_cipher() 関数は、 DES アルゴリズムへのアクセス手段を提供します。 setkey() には、バイナリ値 (数値 0 または 1) を持つ 64バイトの配列を渡します。 この配列から 56 ビットの鍵が取り出されます。 これは、配列を 8 バイトのグループに分割し、各グループの最後のビットを 無視することで行ないます。 このビットは DES によりバイトパリティチェックのために予約されていますが、 これらの関数はこのビットを無視します。

encrypt() の引数 block もまた、バイナリ値を持つ 64 バイトの配列です。 flag の値が 0 の場合、 block は暗号化されます。それ以外の場合は復号化されます。 setkey() により指定した鍵を使い、配列の値を処理した後で、 処理結果は元の配列 block に返されます。

des_setkey() の引数は長さ 8 のキャラクタの配列です。 各キャラクタの最下位ビット (パリティビット) は無視され、 残りのビットをくっつけて 56 ビットの鍵を形成します。 des_cipher() 関数は countabs(3) DES を繰り返して、 in にある 8 キャラクタに格納された 64 ビットの値を暗号化 ( count が負の場合は復号化) し、 結果の 64 ビットを 8 キャラクタにして out (これは、 in と同じ場所でも構いません) に格納します。 salt DES アルゴリズムに対し、16777216 通りまたは 4096 通り (つまり、24 ビットまたは 12 ビット) の中から 1 通りという不規則性を導入します ( salt のビット i が設定されている場合、 DES E-box 出力中のビット i とビット i+24 とが交換されます)。

setkey(), encrypt(), des_setkey(), des_cipher() 関数は処理に成功した場合 0 を返し、失敗した場合 1 を返します。

setkey()des_setkey() 関数は同じ鍵空間を操作します。

関連項目

login(1), passwd(1), crypt(3), getpass(3), passwd(5)

歴史

このライブラリ (FreeSec 1.0) は、アメリカ合衆国のみで使える NetBSD libcrypt 暗号化ライブラリに対して、そのような障害のない置き換えとして アメリカ合衆国の外で開発されました。 ユーザは、このコード (とこのライブラリを静的リンクしたプログラム) は 合衆国の外に輸出できないことを理解しておかねばなりません。もっとも、 輸入できることは明らかなのですが。

作者

David Burren <davidb@werj.com.au>

FreeSec 1.0 CIPHER (3) March 9, 1994

tail head cat sleep
QR code linking to this page


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

There are two major products of Berkeley, CA -- LSD and UNIX. We don't believe this to be strictly by coincidence.
Jeremy S. Anderson