aboutsummaryrefslogblamecommitdiff
path: root/ja_JP.eucJP/man/man3/des_crypt.3
blob: 737cfcb51bd446b7dd3bc88cfeaaf5e990a409d6 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
                                                                        
                                                                                 
             









                                                     
                   







                                                                                      
  
             
    

       
                                                                 
           
                            
       
                                                    
             
    
       

                                                  
             
    
       

                                                    
       

                                                                  
   
                                                                
         
                                                           
       
                                                                  
                 
                                
        

                                                      
           
    
        

                                                                 
        
                            
              
                                                
               
  




                                                  
  




            

                                                  
                     
            
             
                  
        

                                                    




                                            

                                                          
                      
                                                  
                         
                                              

   
          
        
                      
                   
                                                         



               

                                                  

                                            
.\" @(#)des_crypt.3	2.1 88/08/11 4.0 RPCSRC; from 1.16 88/03/02 SMI;
.\" %FreeBSD: src/lib/libc/rpc/des_crypt.3,v 1.4.2.3 2001/12/14 18:33:56 ru Exp %
.\" $FreeBSD$
.\"
.Dd October 6, 1987
.Dt DES_CRYPT 3
.Os
.Sh 名称
.Nm des_crypt , ecb_crypt , cbc_crypt , des_setparity
.Nd 高速 DES 暗号化
.Sh ライブラリ
.Lb libc
.Sh 書式
.In rpc/des_crypt.h
.Ft int
.Fn ecb_crypt "char *key" "char *data" "unsigned datalen" "unsigned mode"
.Ft int
.Fn cbc_crypt "char *key" "char *data" "unsigned datalen" "unsigned mode" "char *ivec"
.Ft void
.Fn des_setparity "char *key"
.Sh 解説
.Fn ecb_crypt
と
.Fn cbc_crypt
は、
.Tn NBS
.Tn DES
(Data Encryption Standard) を実現しています。これらのルーチンは、
.Xr crypt 3
より高速で汎用的です。また、
.Tn DES
ハードウェアが用意されていれば、それも利用できます。
.Fn ecb_crypt
は、
.Tn ECB
(Electronic Code Book) モードで暗号化します。
これはデータのブロックを独立に暗号化するものです。
.Fn cbc_crypt
は、
.Tn CBC
(Cipher Block Chaining) モードで暗号化します。これは
連続するブロックを一つにつなげるものです。
.Tn CBC
モードは、ブロックの挿入、削除、置き換えに対する保護を行ないます。
また、通常のテキストにおける正規性は暗号テキストには現れません。
.Pp
これらのルーチンを使用する方法は次のとおりです。最初のパラメータ
.Fa key ,
は、パリティ付き 8 バイトの暗号化キーです。キーのパリティ (
.Tn DES
の場合、これは各バイトの下位ビットにあります) を設定するためには、
.Fn des_setparity
を使用します。2 番めのパラメータ
.Fa data
には、暗号化または暗号解除されるデータが入っています。
3 番めのパラメータ
.Fa datalen
は、
.Fa data
の長さ (バイト単位) であり、これは 8 の倍数でなければなりません。
4 番めのパラメータ
.Fa mode
は、いくつかのものの論理和 (
.Em OR Ns 'ing
) によって作成されます。暗号化の方向に関しては、
.Dv DES_ENCRYPT
か
.Dv DES_DECRYPT
どちらかの
.Em 論理和
を、ソフトウェア対ハードウェアの暗号化については、
.Dv DES_HW
か
.Dv DES_SW
のどちらかの
.Em 論理和
を取り、
.Dv DES_HW
が指定されており、しかもハードウェアがない場合は、
暗号化はソフトウェアで実行され、ルーチンは
.Er DESERR_NOHWDEVICE
を返します。
.Fn cbc_crypt
の場合、パラメータ
.Fa ivec
はチェイン作成用の 8 バイトの初期化ベクトルです。
これは戻り時に、次の初期化ベクトルへと更新されます。
.Sh エラー
.Bl -tag -width [DESERR_NOHWDEVICE] -compact
.It Bq Er DESERR_NONE
エラーなし。
.It Bq Er DESERR_NOHWDEVICE
暗号化処理は成功しましたが、要求されたハードウェアではなく
ソフトウェアで行われました。
.It Bq Er DESERR_HWERR
ハードウェアまたはドライバでエラーが発生しました。
.It Bq Er DESERR_BADPARAM
ルーチンに間違ったパラメータが指定されました。
.El
.Pp
終了コード
.Va stat
が与えられると、マクロ
.Fn DES_FAILED stat
が偽になるのは、最初の 2 つのステータスについてだけです。
.Sh 関連項目
.\" .Xr des 1 ,
.Xr crypt 3
.Sh 制約
これらのルーチンは RPCSRC 4.0 では利用できません。
この情報は Secure RPC で求められる
.Tn DES
インタフェースの説明として提供されています。