doc/ja_JP.eucJP/man/man3/cipher.3
Kazuo Horikawa 6a00dc5ed2 man3 update to 4.5-RELEASE base done by jpman project <man-jp@jp.FreeBSD.org>
Submitted by:	Yuko Sasaki <yuko@veltec.co.jp>
2002-05-18 07:12:57 +00:00

150 lines
4.2 KiB
Groff

.\" FreeSec: libcrypt for NetBSD
.\"
.\" Copyright (c) 1994 David Burren
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 4. Neither the name of the author nor the names of other contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/secure/lib/libcipher/cipher.3,v 1.6.2.3 2001/12/14 15:21:13 ru Exp %
.\" $FreeBSD$
.\"
.\" Manual page, using -mandoc macros
.\"
.Dd March 9, 1994
.Dt CIPHER 3
.Os "FreeSec 1.0"
.Sh 名称
.Nm setkey ,
.Nm encrypt ,
.Nm des_setkey ,
.Nm des_cipher
.Nd DES 暗号化
.Sh ライブラリ
.Lb libcipher
.Sh 書式
.In unistd.h
.Ft int
.Fn setkey "const char *key"
.Ft int
.Fn encrypt "char *block" "int flag"
.Ft int
.Fn des_setkey "const char *key"
.Ft int
.Fn des_cipher "const char *in" "char *out" "long salt" "int count"
.Sh 解説
.Fn encrypt ,
.Fn setkey ,
.Fn des_setkey ,
.Fn des_cipher
関数は、
.Tn DES
アルゴリズムへのアクセス手段を提供します。
.Fn setkey
には、バイナリ値 (数値 0 または 1) を持つ 64バイトの配列を渡します。
この配列から 56 ビットの鍵が取り出されます。
これは、配列を 8 バイトのグループに分割し、各グループの最後のビットを
無視することで行ないます。
このビットは DES によりバイトパリティチェックのために予約されていますが、
これらの関数はこのビットを無視します。
.Pp
.Fn encrypt
の引数
.Fa block
もまた、バイナリ値を持つ 64 バイトの配列です。
.Fa flag
の値が 0 の場合、
.Fa block
は暗号化されます。それ以外の場合は復号化されます。
.Fn setkey
により指定した鍵を使い、配列の値を処理した後で、
処理結果は元の配列
.Fa block
に返されます。
.Pp
.Fn des_setkey
の引数は長さ 8 のキャラクタの配列です。
各キャラクタの最下位ビット (パリティビット) は無視され、
残りのビットをくっつけて 56 ビットの鍵を形成します。
.Fn des_cipher
関数は
.Fa count
.Xr abs 3
.Tn DES
を繰り返して、
.Fa in
にある 8 キャラクタに格納された 64 ビットの値を暗号化 (
.Fa count
が負の場合は復号化) し、
結果の 64 ビットを 8 キャラクタにして
.Fa out
(これは、
.Fa in
と同じ場所でも構いません)
に格納します。
.Fa salt
.Tn DES
アルゴリズムに対し、16777216 通りまたは 4096 通り
(つまり、24 ビットまたは 12 ビット)
の中から 1 通りという不規則性を導入します (
.Ar salt
のビット
.Em i
が設定されている場合、
.Tn DES
E-box 出力中のビット
.Em i
とビット
.Em i+24
とが交換されます)。
.Pp
.Fn setkey ,
.Fn encrypt ,
.Fn des_setkey ,
.Fn des_cipher
関数は処理に成功した場合 0 を返し、失敗した場合 1 を返します。
.Pp
.Fn setkey
.Fn des_setkey
関数は同じ鍵空間を操作します。
.Sh 関連項目
.Xr login 1 ,
.Xr passwd 1 ,
.Xr crypt 3 ,
.Xr getpass 3 ,
.Xr passwd 5
.Sh 歴史
このライブラリ (FreeSec 1.0) は、アメリカ合衆国のみで使える
.Nx
libcrypt 暗号化ライブラリに対して、そのような障害のない置き換えとして
アメリカ合衆国の外で開発されました。
ユーザは、このコード (とこのライブラリを静的リンクしたプログラム) は
合衆国の外に輸出できないことを理解しておかねばなりません。もっとも、
輸入できることは明らかなのですが。
.Sh 作者
.An David Burren Aq davidb@werj.com.au