̾??
setkey
, encrypt
,
des_setkey
, des_cipher
— DES ?Ź沽
FreeSec Crypt Library (libcipher,
-lcipher)
<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 ?Υ????饯?????????Ǥ???
?ƥ????饯???κDz??̥ӥå?
(?ѥ??ƥ??ӥå?) ??̵?뤵?졢
?Ĥ??ΥӥåȤäĤ??? 56
?ӥåȤθ??????????ޤ???
des_cipher
()
?ؿ??? count ??
abs(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
()
?ؿ???Ʊ???????֤?????ޤ???
???Υ饤?֥??? (FreeSec 1.0)
?ϡ??????ꥫ?罰???ΤߤǻȤ???
NetBSD libcrypt
?Ź沽?饤?֥??????Ф??ơ????Τ褦?ʾ㳲?Τʤ??֤??????Ȥ???
?????ꥫ?罰???γ??dz?ȯ?????ޤ?????
?桼???ϡ????Υ?????
(?Ȥ??Υ饤?֥???????Ū???????ץ???????)
??
?罰???γ???͢?ФǤ??ʤ????Ȥ????Ƥ????ͤФʤ??ޤ????äȤ⡢
͢???Ǥ??뤳?Ȥ????餫?ʤΤǤ?????
David Burren
⟨davidb@werj.com.au⟩