Vous êtes sur la page 1sur 27

%!

%%BoundingBox: (atend)
%%Pages: (atend)
%%DocumentFonts: (atend)
%%EndComments
%
% FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0
% Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation.
% All rights reserved.
%
% Known Problems:
% Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1
/FMversion (3.0) def
% Set up Color vs. Black-and-White
/FMPrintInColor systemdict /colorimage known
systemdict /currentcolortransfer known or def
% Uncomment this line to force b&w on color printer
% /FMPrintInColor false def
/FrameDict 195 dict def
systemdict /errordict known not {/errordict 10 dict def
errordict /rangecheck {stop} put} if
% The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
FrameDict /tmprangecheck errordict /rangecheck get put
errordict /rangecheck {FrameDict /bug true put} put
FrameDict /bug false put
mark
% Some PS machines read past the CR, so keep the following 3 lines together!
currentfile 5 string readline
00
0000000000
cleartomark
errordict /rangecheck FrameDict /tmprangecheck get put
FrameDict /bug get {
/readline {
/gstring exch def
/gfile exch def
/gindex 0 def
{
gfile read pop
dup 10 eq {exit} if
dup 13 eq {exit} if
gstring exch gindex exch put
/gindex gindex 1 add def
} loop
pop
gstring 0 gindex getinterval true
} def
} if
/FMVERSION {
FMversion ne {
/Times-Roman findfont 18 scalefont setfont
100 100 moveto
(FrameMaker version does not match postscript_prolog!)
dup =
show showpage
} if
} def
/FMLOCAL {
FrameDict begin
0 def
end
} def
/gstring FMLOCAL
/gfile FMLOCAL
/gindex FMLOCAL
/orgxfer FMLOCAL
/orgproc FMLOCAL
/organgle FMLOCAL
/orgfreq FMLOCAL
/yscale FMLOCAL
/xscale FMLOCAL
/manualfeed FMLOCAL
/paperheight FMLOCAL
/paperwidth FMLOCAL
/FMDOCUMENT {
array /FMfonts exch def
/#copies exch def
FrameDict begin
0 ne dup {setmanualfeed} if
/manualfeed exch def
/paperheight exch def
/paperwidth exch def
/yscale exch def
/xscale exch def
currenttransfer cvlit /orgxfer exch def
currentscreen cvlit /orgproc exch def
/organgle exch def /orgfreq exch def
setpapername
manualfeed {true} {papersize} ifelse
{manualpapersize} {false} ifelse
{desperatepapersize} if
end
} def
/pagesave FMLOCAL
/orgmatrix FMLOCAL
/landscape FMLOCAL
/FMBEGINPAGE {
FrameDict begin
/pagesave save def
3.86 setmiterlimit
/landscape exch 0 ne def
landscape {
90 rotate 0 exch neg translate pop
}
{pop pop}
ifelse
xscale yscale scale
/orgmatrix matrix def
gsave
} def
/FMENDPAGE {
grestore
pagesave restore
end
showpage
} def
/FMFONTDEFINE {
FrameDict begin
findfont
ReEncode
1 index exch
definefont
FMfonts 3 1 roll
put
end
} def
/FMFILLS {
FrameDict begin
array /fillvals exch def
end
} def
/FMFILL {
FrameDict begin
fillvals 3 1 roll put
end
} def
/FMNORMALIZEGRAPHICS {
newpath
0.0 0.0 moveto
1 setlinewidth
0 setlinecap
0 0 0 sethsbcolor
0 setgray
} bind def
/fx FMLOCAL
/fy FMLOCAL
/fh FMLOCAL
/fw FMLOCAL
/llx FMLOCAL
/lly FMLOCAL
/urx FMLOCAL
/ury FMLOCAL
/FMBEGINEPSF {
end
/FMEPSF save def
/showpage {} def
FMNORMALIZEGRAPHICS
[/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall
fx fy translate
rotate
fw urx llx sub div fh ury lly sub div scale
llx neg lly neg translate
} bind def
/FMENDEPSF {
FMEPSF restore
FrameDict begin
} bind def
FrameDict begin
/setmanualfeed {
%%BeginFeature *ManualFeed True
statusdict /manualfeed true put
%%EndFeature
} def
/max {2 copy lt {exch} if pop} bind def
/min {2 copy gt {exch} if pop} bind def
/inch {72 mul} def
/pagedimen {
paperheight sub abs 16 lt exch
paperwidth sub abs 16 lt and
{/papername exch def} {pop} ifelse
} def
/papersizedict FMLOCAL
/setpapername {
/papersizedict 14 dict def
papersizedict begin
/papername /unknown def
/Letter 8.5 inch 11.0 inch pagedimen
/LetterSmall 7.68 inch 10.16 inch pagedimen
/Tabloid 11.0 inch 17.0 inch pagedimen
/Ledger 17.0 inch 11.0 inch pagedimen
/Legal 8.5 inch 14.0 inch pagedimen
/Statement 5.5 inch 8.5 inch pagedimen
/Executive 7.5 inch 10.0 inch pagedimen
/A3 11.69 inch 16.5 inch pagedimen
/A4 8.26 inch 11.69 inch pagedimen
/A4Small 7.47 inch 10.85 inch pagedimen
/B4 10.125 inch 14.33 inch pagedimen
/B5 7.16 inch 10.125 inch pagedimen
end
} def
/papersize {
papersizedict begin
/Letter {lettertray letter} def
/LetterSmall {lettertray lettersmall} def
/Tabloid {11x17tray 11x17} def
/Ledger {ledgertray ledger} def
/Legal {legaltray legal} def
/Statement {statementtray statement} def
/Executive {executivetray executive} def
/A3 {a3tray a3} def
/A4 {a4tray a4} def
/A4Small {a4tray a4small} def
/B4 {b4tray b4} def
/B5 {b5tray b5} def
/unknown {unknown} def
papersizedict dup papername known {papername} {/unknown} ifelse get
end
/FMdicttop countdictstack 1 add def
statusdict begin stopped end
countdictstack -1 FMdicttop {pop end} for
} def
/manualpapersize {
papersizedict begin
/Letter {letter} def
/LetterSmall {lettersmall} def
/Tabloid {11x17} def
/Ledger {ledger} def
/Legal {legal} def
/Statement {statement} def
/Executive {executive} def
/A3 {a3} def
/A4 {a4} def
/A4Small {a4small} def
/B4 {b4} def
/B5 {b5} def
/unknown {unknown} def
papersizedict dup papername known {papername} {/unknown} ifelse get
end
stopped
} def
/desperatepapersize {
statusdict /setpageparams known
{
paperwidth paperheight 0 1
statusdict begin
{setpageparams} stopped pop
end
} if
} def
/savematrix {
orgmatrix currentmatrix pop
} bind def
/restorematrix {
orgmatrix setmatrix
} bind def
/dmatrix matrix def
/dpi 72 0 dmatrix defaultmatrix dtransform
dup mul exch dup mul add sqrt def
/freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
/sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
/DiacriticEncoding [
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
/numbersign /dollar /percent /ampersand /quotesingle /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon
/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
/bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
/braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
/udieresis /dagger /.notdef /cent /sterling /section /bullet
/paragraph /germandbls /registered /copyright /trademark /acute
/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
/periodcentered /quotesinglbase /quotedblbase /perthousand
/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
] def
/ReEncode {
dup
length
dict begin
{
1 index /FID ne
{def}
{pop pop} ifelse
} forall
0 eq {/Encoding DiacriticEncoding def} if
currentdict
end
} bind def
/graymode true def
/bwidth FMLOCAL
/bpside FMLOCAL
/bstring FMLOCAL
/onbits FMLOCAL
/offbits FMLOCAL
/xindex FMLOCAL
/yindex FMLOCAL
/x FMLOCAL
/y FMLOCAL
/setpattern {
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
freq sangle landscape {90 add} if
{/y exch def
/x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
bstring yindex bwidth mul xindex 8 idiv add get
1 7 xindex 8 mod sub bitshift and 0 ne
{/onbits onbits 1 add def 1}
{/offbits offbits 1 add def 0}
ifelse
}
setscreen
{} settransfer
offbits offbits onbits add div FMsetgray
/graymode false def
} bind def
/grayness {
FMsetgray
graymode not {
/graymode true def
orgxfer cvx settransfer
orgfreq organgle orgproc cvx setscreen
} if
} bind def
/HUE FMLOCAL
/SAT FMLOCAL
/BRIGHT FMLOCAL
/Colors FMLOCAL
FMPrintInColor

{
/HUE 0 def
/SAT 0 def
/BRIGHT 0 def
% array of arrays Hue and Sat values for the separations [HUE BRIGHT]
/Colors
[[0 0 ] % black
[0 0 ] % white
[0.00 1.0] % red
[0.37 1.0] % green
[0.60 1.0] % blue
[0.50 1.0] % cyan
[0.83 1.0] % magenta
[0.16 1.0] % comment / yellow
] def

/BEGINBITMAPCOLOR {
BITMAPCOLOR} def
/BEGINBITMAPCOLORc {
BITMAPCOLORc} def
/BEGINBITMAPTRUECOLOR {
BITMAPTRUECOLOR } def
/BEGINBITMAPTRUECOLORc {
BITMAPTRUECOLORc } def
/K {
Colors exch get dup
0 get /HUE exch store
1 get /BRIGHT exch store
HUE 0 eq BRIGHT 0 eq and
{1.0 SAT sub setgray}
{HUE SAT BRIGHT sethsbcolor}
ifelse
} def
/FMsetgray {
/SAT exch 1.0 exch sub store
HUE 0 eq BRIGHT 0 eq and
{1.0 SAT sub setgray}
{HUE SAT BRIGHT sethsbcolor}
ifelse
} bind def
}

{
/BEGINBITMAPCOLOR {
BITMAPGRAY} def
/BEGINBITMAPCOLORc {
BITMAPGRAYc} def
/BEGINBITMAPTRUECOLOR {
BITMAPTRUEGRAY } def
/BEGINBITMAPTRUECOLORc {
BITMAPTRUEGRAYc } def
/FMsetgray {setgray} bind def
/K {
pop
} def
}
ifelse
/normalize {
transform round exch round exch itransform
} bind def
/dnormalize {
dtransform round exch round exch idtransform
} bind def
/lnormalize {
0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
} bind def
/H {
lnormalize setlinewidth
} bind def
/Z {
setlinecap
} bind def
/fillvals FMLOCAL
/X {
fillvals exch get
dup type /stringtype eq
{8 1 setpattern}
{grayness}
ifelse
} bind def
/V {
gsave eofill grestore
} bind def
/N {
stroke
} bind def
/M {newpath moveto} bind def
/E {lineto} bind def
/D {curveto} bind def
/O {closepath} bind def
/n FMLOCAL
/L {
/n exch def
newpath
normalize
moveto
2 1 n {pop normalize lineto} for
} bind def
/Y {
L
closepath
} bind def
/x1 FMLOCAL
/x2 FMLOCAL
/y1 FMLOCAL
/y2 FMLOCAL
/rad FMLOCAL
/R {
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
x1 y1
x2 y1
x2 y2
x1 y2
4 Y
} bind def
/RR {
/rad exch def
normalize
/y2 exch def
/x2 exch def
normalize
/y1 exch def
/x1 exch def
newpath
x1 y1 rad add moveto
x1 y2 x2 y2 rad arcto
x2 y2 x2 y1 rad arcto
x2 y1 x1 y1 rad arcto
x1 y1 x1 y2 rad arcto
closepath
16 {pop} repeat
} bind def
/C {
grestore
gsave
R
clip
} bind def
/FMpointsize FMLOCAL
/F {
FMfonts exch get
FMpointsize scalefont
setfont
} bind def
/Q {
/FMpointsize exch def
F
} bind def
/T {
moveto show
} bind def
/RF {
rotate
0 ne {-1 1 scale} if
} bind def
/TF {
gsave
moveto
RF
show
grestore
} bind def
/P {
moveto
0 32 3 2 roll widthshow
} bind def
/PF {
gsave
moveto
RF
0 32 3 2 roll widthshow
grestore
} bind def
/S {
moveto
0 exch ashow
} bind def
/SF {
gsave
moveto
RF
0 exch ashow
grestore
} bind def
/B {
moveto
0 32 4 2 roll 0 exch awidthshow
} bind def
/BF {
gsave
moveto
RF
0 32 4 2 roll 0 exch awidthshow
grestore
} bind def
/G {
gsave
newpath
normalize translate 0.0 0.0 moveto
dnormalize scale
0.0 0.0 1.0 5 3 roll arc
closepath fill
grestore
} bind def
/A {
gsave
savematrix
newpath
2 index 2 div add exch 3 index 2 div sub exch
normalize 2 index 2 div sub exch 3 index 2 div add exch
translate
scale
0.0 0.0 1.0 5 3 roll arc
restorematrix
stroke
grestore
} bind def
/x FMLOCAL
/y FMLOCAL
/w FMLOCAL
/h FMLOCAL
/xx FMLOCAL
/yy FMLOCAL
/ww FMLOCAL
/hh FMLOCAL
/FMsaveobject FMLOCAL
/FMoptop FMLOCAL
/FMdicttop FMLOCAL
/BEGINPRINTCODE {
/FMdicttop countdictstack 1 add def
/FMoptop count 4 sub def
/FMsaveobject save def
userdict begin
/showpage {} def
FMNORMALIZEGRAPHICS
3 index neg 3 index neg translate
} bind def
/ENDPRINTCODE {
count -1 FMoptop {pop pop} for
countdictstack -1 FMdicttop {pop end} for
FMsaveobject restore
} bind def
/gn {
0
{ 46 mul
cf read pop
32 sub
dup 46 lt {exit} if
46 sub add
} loop
add
} bind def
/str FMLOCAL
/cfs {
/str sl string def
0 1 sl 1 sub {str exch val put} for
str def
} bind def
/ic [
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
0
{0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
{10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
{19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
{13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
{4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
{13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
{7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
{0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
{10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
] def
/sl FMLOCAL
/val FMLOCAL
/ws FMLOCAL
/im FMLOCAL
/bs FMLOCAL
/cs FMLOCAL
/len FMLOCAL
/pos FMLOCAL
/ms {
/sl exch def
/val 255 def
/ws cfs
/im cfs
/val 0 def
/bs cfs
/cs cfs
} bind def
400 ms
/ip {
is
0
cf cs readline pop
{ ic exch get exec
add
} forall
pop

} bind def
/wh {
/len exch def
/pos exch def
ws 0 len getinterval im pos len getinterval copy pop
pos len
} bind def
/bl {
/len exch def
/pos exch def
bs 0 len getinterval im pos len getinterval copy pop
pos len
} bind def
/s1 1 string def
/fl {
/len exch def
/pos exch def
/val cf s1 readhexstring pop 0 get def
pos 1 pos len add 1 sub {im exch val put} for
pos len
} bind def
/hx {
3 copy getinterval
cf exch readhexstring pop pop
} bind def
/h FMLOCAL
/w FMLOCAL
/d FMLOCAL
/lb FMLOCAL
/bitmapsave FMLOCAL
/is FMLOCAL
/cf FMLOCAL
/wbytes {
dup
8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
} bind def
/BEGINBITMAPBWc {
1 {} COMMONBITMAPc
} bind def
/BEGINBITMAPGRAYc {
8 {} COMMONBITMAPc
} bind def
/BEGINBITMAP2BITc {
2 {} COMMONBITMAPc
} bind def
/COMMONBITMAPc {
/r exch def
/d exch def
gsave
translate rotate scale /h exch def /w exch def
/lb w d wbytes def
sl lb lt {lb ms} if
/bitmapsave save def
r
/is im 0 lb getinterval def
ws 0 lb getinterval is copy pop
/cf currentfile def
w h d [w 0 0 h neg 0 h]
{ip} image
bitmapsave restore
grestore
} bind def
/BEGINBITMAPBW {
1 {} COMMONBITMAP
} bind def
/BEGINBITMAPGRAY {
8 {} COMMONBITMAP
} bind def
/BEGINBITMAP2BIT {
2 {} COMMONBITMAP
} bind def
/COMMONBITMAP {
/r exch def
/d exch def
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
r
/is w d wbytes string def
/cf currentfile def
w h d [w 0 0 h neg 0 h]
{cf is readhexstring pop} image
bitmapsave restore
grestore
} bind def
/proc1 FMLOCAL
/proc2 FMLOCAL
/newproc FMLOCAL
/Fmcc {
/proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} bind def
/ngrayt 256 array def
/nredt 256 array def
/nbluet 256 array def
/ngreent 256 array def
/gryt FMLOCAL
/blut FMLOCAL
/grnt FMLOCAL
/redt FMLOCAL
/indx FMLOCAL
/cynu FMLOCAL
/magu FMLOCAL
/yelu FMLOCAL
/k FMLOCAL
/u FMLOCAL
/colorsetup {
currentcolortransfer
/gryt exch def
/blut exch def
/grnt exch def
/redt exch def
0 1 255 {
/indx exch def
/cynu 1 red indx get 255 div sub def
/magu 1 green indx get 255 div sub def
/yelu 1 blue indx get 255 div sub def
/k cynu magu min yelu min def
/u k currentundercolorremoval exec def
nredt indx 1 0 cynu u sub max sub redt exec put
ngreent indx 1 0 magu u sub max sub grnt exec put
nbluet indx 1 0 yelu u sub max sub blut exec put
ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
} for
{255 mul cvi nredt exch get}
{255 mul cvi ngreent exch get}
{255 mul cvi nbluet exch get}
{255 mul cvi ngrayt exch get}
setcolortransfer
{pop 0} setundercolorremoval
{} setblackgeneration
} bind def
/tran FMLOCAL
/fakecolorsetup {
/tran 256 string def
0 1 255 {/indx exch def
tran indx
red indx get 77 mul
green indx get 151 mul
blue indx get 28 mul
add add 256 idiv put} for
currenttransfer
{255 mul cvi tran exch get 255.0 div}
exch Fmcc settransfer
} bind def
/BITMAPCOLOR {
/d 8 def
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
colorsetup
/is w d wbytes string def
/cf currentfile def
w h d [w 0 0 h neg 0 h]
{cf is readhexstring pop} {is} {is} true 3 colorimage
bitmapsave restore
grestore
} bind def
/BITMAPCOLORc {
/d 8 def
gsave
translate rotate scale /h exch def /w exch def
/lb w d wbytes def
sl lb lt {lb ms} if
/bitmapsave save def
colorsetup
/is im 0 lb getinterval def
ws 0 lb getinterval is copy pop
/cf currentfile def
w h d [w 0 0 h neg 0 h]
{ip} {is} {is} true 3 colorimage
bitmapsave restore
grestore
} bind def
/BITMAPTRUECOLORc {
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def

/is w string def

ws 0 w getinterval is copy pop


/cf currentfile def
w h 8 [w 0 0 h neg 0 h]
{ip} {gip} {bip} true 3 colorimage
bitmapsave restore
grestore
} bind def
/BITMAPTRUECOLOR {
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
/is w string def
/gis w string def
/bis w string def
/cf currentfile def
w h 8 [w 0 0 h neg 0 h]
{ cf is readhexstring pop }
{ cf gis readhexstring pop }
{ cf bis readhexstring pop }
true 3 colorimage
bitmapsave restore
grestore
} bind def
/BITMAPTRUEGRAYc {
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def

/is w string def

ws 0 w getinterval is copy pop


/cf currentfile def
w h 8 [w 0 0 h neg 0 h]
{ip gip bip w gray} image
bitmapsave restore
grestore
} bind def
/ww FMLOCAL
/r FMLOCAL
/g FMLOCAL
/b FMLOCAL
/i FMLOCAL
/gray {
/ww exch def
/b exch def
/g exch def
/r exch def
0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
b i get .114 mul add add r i 3 -1 roll floor cvi put } for
r
} bind def
/BITMAPTRUEGRAY {
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
/is w string def
/gis w string def
/bis w string def
/cf currentfile def
w h 8 [w 0 0 h neg 0 h]
{ cf is readhexstring pop
cf gis readhexstring pop
cf bis readhexstring pop w gray} image
bitmapsave restore
grestore
} bind def
/BITMAPGRAY {
8 {fakecolorsetup} COMMONBITMAP
} bind def
/BITMAPGRAYc {
8 {fakecolorsetup} COMMONBITMAPc
} bind def
/ENDBITMAP {
} bind def
end
/ALDsave FMLOCAL
/ALDmatrix matrix def ALDmatrix currentmatrix pop
/StartALD {
/ALDsave save def
savematrix
ALDmatrix setmatrix
} bind def
/InALD {
restorematrix
} bind def
/DoneALD {
ALDsave restore
} bind def
%%EndProlog
%%BeginSetup
(3.0) FMVERSION
1 1 612 792 0 1 14 FMDOCUMENT
0 0 /Times-Bold FMFONTDEFINE
1 0 /Times-Italic FMFONTDEFINE
2 0 /Times-Roman FMFONTDEFINE
3 1 /Symbol FMFONTDEFINE
4 0 /Helvetica-Oblique FMFONTDEFINE
5 0 /Helvetica FMFONTDEFINE
6 0 /Courier FMFONTDEFINE
32 FMFILLS
0 0 FMFILL
1 0.1 FMFILL
2 0.3 FMFILL
3 0.5 FMFILL
4 0.7 FMFILL
5 0.9 FMFILL
6 0.97 FMFILL
7 1 FMFILL
8 <0f1e3c78f0e1c387> FMFILL
9 <0f87c3e1f0783c1e> FMFILL
10 <cccccccccccccccc> FMFILL
11 <ffff0000ffff0000> FMFILL
12 <8142241818244281> FMFILL
13 <03060c183060c081> FMFILL
14 <8040201008040201> FMFILL
16 1 FMFILL
17 0.9 FMFILL
18 0.7 FMFILL
19 0.5 FMFILL
20 0.3 FMFILL
21 0.1 FMFILL
22 0.03 FMFILL
23 0 FMFILL
24 <f0e1c3870f1e3c78> FMFILL
25 <f0783c1e0f87c3e1> FMFILL
26 <3333333333333333> FMFILL
27 <0000ffff0000ffff> FMFILL
28 <7ebddbe7e7dbbd7e> FMFILL
29 <fcf9f3e7cf9f3f7e> FMFILL
30 <7fbfdfeff7fbfdfe> FMFILL
%%EndSetup
%%Page: "1" 1
%%BeginPaperSize: Letter
%%EndPaperSize
612 792 0 FMBEGINPAGE
90 9 522 720 R
7 X
0 K
V
0 14 Q
0 X
(Secur) 134.14 710.67 T
(e RPC Authentication \050SRA\051 for TELNET and FTP) 168.09 710.67 T
1 12 Q
(David R. Safford, David K. Hess, and Douglas Lee Schales) 163.92 680 T
(Supercomputer Center) 251.54 666 T
(Texas A&M University) 250.7 652 T
(College Station, TX 77843-3363) 226.87 638 T
0 F
(1.) 90 610 T
(Abstract) 104.4 610 T
2 11 Q
-0.51 (TELNET and FTP currently exchange user authentication \050passwords\051 in
plain text, which is easily) 90 591.67 P
-0.53 (eavesdropped. Several techniques, such as Kerberos and SPX, have been
proposed in draft RFCs to) 90 578.67 P
(implement secure authentication. These techniques, however) 90 565.67 T
(, have several drawbacks, including) 357.14 565.67 T
-0.39 (technical complexity) 90 552.67 P
-0.39 (, poor vendor support, and or) 180.74 552.67 P
-0.39 (ganizational problems. This paper presents SRA,) 306.46 552.67 P
(a very simple and tested technique based on Secure RPC which, while certainly not
as strong as) 90 539.67 T
(RSA, is reasonably strong, fast, and trivial to implement immediately for both
inter and intra-) 90 526.67 T
(domain communication.) 90 513.67 T
0 12 Q
(2.) 90 486 T
(Backgr) 104.4 486 T
(ound) 141.5 486 T
2 11 Q
-0.54 (TELNET and FTP currently pass the user authentication across the network in
the form of plaintext) 90 467.67 P
-0.16 (passwords. These passwords can trivially be eavesdropped with such simple
tools as ether\336nd and) 90 454.67 P
(tcpdump. During intrusions at T) 90 441.67 T
(exas A&M University in August 1992, signi\336cant amounts of the) 230.53 441.67 T
(tools used by the crackers were captured. They had much better tools than simple
ones such as) 90 428.67 T
-0.38 (these, and they used them to capture passwords. It is absolutely essential
that TELNET and FTP be) 90 415.67 P
(extended to provide con\336dential user authentication to prevent such simple
password grabbing.) 90 402.67 T
(Several RFCs and draft RFCs address this issue, including:) 90 384.67 T
(1409 \050TELNET Authentication\051) 180 371.67 T
(141) 180 358.67 T
(1 \050Kerberos Authentication\051) 196.07 358.67 T
(draft-ietf-telnet-authspx-00.txt) 180 345.67 T
(draft-ietf-cat-ftpsec-01.txt) 180 332.67 T
-0.13 (These drafts outline proposed designs for the use of Kerberos, RSA, SPX, and
gssapi for con\336den-) 90 314.67 P
(tial authentication. While these proposed techniques af) 90 301.67 T
(ford excellent security) 330.55 301.67 T
(, they suf) 428.07 301.67 T
(fer from) 468.46 301.67 T
(some drawbacks which have kept them from widespread use so far) 90 288.67 T
(. Kerberos is dif) 383.51 288.67 T
(\336cult to imple-) 454.1 288.67 T
-0.29 (ment and requires centralized ticket servers with copies of all user
passwords in plaintext, which is) 90 275.67 P
(possibly undesirable in lar) 90 262.67 T
(ge or) 205.46 262.67 T
(ganizations with relatively autonomous subgroups. Inter) 227.53 262.67 T
(-domain) 474.48 262.67 T
(kerberos is particularly complex. Also, vendors have been extremely slow to
provide commercial) 90 249.67 T
-0.16 (support for kerberos. V) 90 236.67 P
-0.16 (arious public key methods can eliminate the need for centralized secret key)
190.8 236.67 P
-0.39 (storage and can solve inter) 90 223.67 P
-0.39 (-domain issues very nicely) 205.38 223.67 P
-0.39 (, but need a secure public key distribution sys-) 320.98 223.67 P
(tem, which will take time to popularize. This paper proposes a simple
con\336dential authentication) 90 210.67 T
(system for TELNET and FTP based on Secure RPC techniques.) 90 197.67 T
(The proposed method has several advantages:) 90 179.67 T
2 12 Q
(1.) 111.6 161 T
0.06 (The user authentication information is sent encrypted with a one-time DES
key) 126 161 P
0.06 (.) 504.6 161 P
(2.) 111.6 147 T
0.99 (The method uses one-time random Secure RPC keys and, therefore, needs no) 126
147 P
(external keyservers or complex key protection.) 126 133 T
(3.) 111.6 119 T
0.08 (The method is compatible with all existing and draft authentication methods,
so) 126 119 P
1.37 (it can take advantage of the method, if supported, transparently on the
user's) 126 105 P
(behalf.) 126 91 T
3 F
(\203) 111.6 77 T
2 F
(_____________________) 90 63 T
2 8 Q
-0.37 (Copyright) 90 51.67 P
3 F
-0.37 (\343) 124.06 51.67 P
2 F
-0.37 ( 1993 USENIX Association. Reprinted with permission from Proceedings of the
Fourth USENIX Security Symposium.) 130.37 51.67 P
FMENDPAGE
%%EndPage: "1" 2
%%Page: "2" 2
612 792 0 FMBEGINPAGE
90 72 522 720 R
7 X
0 K
V
2 12 Q
0 X
(4.) 111.6 712 T
-0.52 (The method is reasonably fast \050it adds about 1 second to a connection on
a sparc-) 126 712 P
(station 1 class machine\051.) 126 698 T
(5.) 111.6 684 T
0.07 (The method is easily implemented entirely within the client and server
binaries,) 126 684 P
1.56 (so drop-in installation is very simple. No external key distribution service
is) 126 670 P
(needed.) 126 656 T
(6.) 111.6 642 T
1.02 (All source code is publicly available, making support available for most
plat-) 126 642 P
(forms, independent of vendor support.) 126 628 T
2 11 Q
-0.62 (One disadvantage of the method is that, unlike more comprehensive public key
methods, it does not) 90 609.67 P
-0.15 (provide mutual repudiation. The server does validate the user's identity) 90
596.67 P
-0.15 (, but the client does not per-) 399.93 596.67 P
(form server authentication. A second weakness is that Secure RPC is subject to
logarithm attacks) 90 583.67 T
-0.53 ([1], although such attacks are not trivial. The proposed design for T) 90
570.67 P
-0.53 (elnet and FTP reduces this expo-) 380.31 570.67 P
0.09 (sure by computing a new random secret/public key pair for each connection. A
third possible limi-) 90 557.67 P
0.04 (tation is that the underlying Dif) 90 544.67 P
0.04 (\336e-Hellman algorithm is patented. As most vendors already of) 227.86
544.67 P
0.04 (fer) 507.1 544.67 P
-0.52 (Secure RPC as part of Secure NFS implementations, they have already made
the necessary key ser-) 90 531.67 P
(vice available.) 90 518.67 T
-0.62 (The bottom line is that the method is signi\336cantly more secure than
sending passwords in plain text,) 90 500.67 P
(while of) 90 487.67 T
(fering greater ease of implementation than other) 126.11 487.67 T
(, more secure, alternatives.) 337.41 487.67 T
0 12 Q
(3.) 90 460 T
(Design) 104.4 460 T
2 11 Q
-0.51 (Secure RPC uses a simple version of the Dif) 90 441.67 P
-0.51 (\336e-Hellman exponential based method for determining) 280.98 441.67 P
-0.49 (a common DES key) 90 428.67 P
-0.49 (. This algorithm and its speci\336c implementation parameters for Secure RPC
are) 176.01 428.67 P
-0.23 (given in the RFC for RPC \050RFC 1057\051. Normally Secure RPC stores a
user's key in the keyserver) 90 415.67 P
-0.23 (,) 516.74 415.67 P
-0.62 (encrypted with the user) 90 402.67 P
-0.62 (\325) 191.37 402.67 P
-0.62 (s password, and uses it as necessary to calculate common keys for each con-)
194.43 402.67 P
-0.17 (nection. In the proposed method, this is greatly simpli\336ed by calculating
a new random key set for) 90 389.67 P
-0.59 (each TELNET or FTP authentication, which eliminates the need for any
keyserver) 90 376.67 P
-0.59 (. Thus the Secure) 445.35 376.67 P
(RPC code is used only for performing basic key calculations, not for key storage
or management.) 90 363.67 T
-0.39 (The basic data \337ow is shown in \336gure 1. The functions performed by the
Secure RPC code are indi-) 90 350.67 P
(cated by brackets, and the parentheses indicate DES encryption or decryption.) 90
337.67 T
(From the public Secure RPC code, the keys are 192 bit integers calculated as:) 90
114.31 T
(SK \050secret key\051 = random 192 bit number) 90 96.31 T
90 72 522 720 C
118.38 131.64 493.62 320 C
4 10 Q
0 X
0 K
(Client) 199.57 297.16 T
258.49 127.29 353.51 143.29 R
7 X
V
5 8 Q
0 X
(Figure 1.) 258.49 137.95 T
( SRA data \337ow) 298.09 137.95 T
(.) 350.53 137.95 T
4 10 Q
(Server) 383.74 297.15 T
5 9 Q
([Calculate PKA, SKA]) 169.38 279.18 T
([Calculate PKB, SKB]) 355.5 279.18 T
(PKA) 297.67 265.91 T
(PKB) 297.67 247.91 T
([Calculate KAB]) 180.87 225.18 T
([Calculate KAB]) 366.99 225.18 T
(KAB\050U,P\051) 193.96 208.72 T
(KAB\325\050U, P\051) 376.74 171.68 T
333.86 265.26 339.06 262.26 333.86 259.26 333.86 262.26 4 Y
V
271.38 262.26 333.86 262.26 2 L
0.5 H
2 Z
N
276.58 241.26 271.38 244.26 276.58 247.26 276.58 244.26 4 Y
V
276.58 244.26 339.06 244.26 2 L
N
333.86 194.41 339.06 191.41 333.86 188.41 333.86 191.41 4 Y
V
271.38 191.41 333.86 191.41 2 L
N
152.94 163.34 271.74 292.65 R
N
339.06 163.33 457.86 292.64 R
N
(KAB\050U, P\051) 283.19 195.72 T
90 72 522 720 C
118.38 131.64 493.62 320 R
0.25 H
0 Z
0 X
0 K
N
0 0 612 792 C
FMENDPAGE
%%EndPage: "2" 3
%%Page: "3" 3
612 792 0 FMBEGINPAGE
90 72 522 720 R
7 X
0 K
V
2 11 Q
0 X
(PK \050public key\051 = \050base) 90 712.67 T
2 9 Q
(SK) 197.8 717.07 T
2 11 Q
(\051 mod modulus) 209.28 712.67 T
(where base = 3) 125 699.67 T
(modulus =) 125 686.67 T
6 F
(d4a0ba0250b6fd2ec626e7efd637df76c716e22d0944b88b) 174.54 686.67 T
2 F
-0.56 (Since exponentiation is commutative, given the key pairs \050PKA, SKA\051
and \050PKB, SKB\051, both sides) 90 668.67 P
(can con\336dentially calculate KAB as:) 90 655.67 T
(Server: KAB = \050PKA) 144 637.67 T
2 9 Q
(SKB) 241.73 642.07 T
2 11 Q
(\051 mod modulus) 259.21 637.67 T
(or) 144 619.67 T
(Client: KAB = \050PKB) 144 601.67 T
2 9 Q
(SKA) 239.32 606.07 T
2 11 Q
(\051 mod modulus) 257.29 601.67 T
(For purposes of the DES encryption, Secure RPC uses the middle 64 bits of the 192
bit common) 90 583.67 T
(key \050KAB\051. The calculation of KAB is reasonably secure, as it requires at
least one of the secret) 90 570.67 T
(keys, which are not put on the network, or calculating the logarithm of lar) 90
557.67 T
(ge numbers.) 414.15 557.67 T
0 12 Q
(4.) 90 530 T
(Incorporation into TELNET) 104.4 530 T
2 11 Q
-0.27 (The design for incorporation into TELNET followed exactly the design
speci\336ed by the respective) 90 511.67 P
-0.73 (RFC for Kerberos, which is already implemented in the Network Release 2
code. The RFC speci\336es) 90 498.67 P
-0.16 (the necessary option negotiation \050WILL, WONT) 90 485.67 P
-0.16 (, DO, DONT\051 to ensure that both sides are able to) 302.57 485.67 P
(handle the authentication method. If not, the exchange reverts to the default
unencrypted transfer) 90 472.67 T
(.) 515.02 472.67 T
(SRA has \336ve suboption commands: KEY) 90 454.67 T
(, USER, P) 271.38 454.67 T
(ASS, ACCEPT) 315.55 454.67 T
(, and REJECT) 382.5 454.67 T
(, which are dem-) 444.86 454.67 T
(onstrated in the \336gure 2.) 90 441.67 T
0 12 Q
(5.) 90 115.86 T
(Incorporation into FTP) 104.4 115.86 T
2 11 Q
-0.53 (The FTP incorporation similarly follows the draft RFC speci\336cation for
the kerberos exchange \050see) 90 97.52 P
(\336gure 3\051, although in this case, the kerberos code was not already
implemented in the Network) 90 84.52 T
90 72 522 720 C
90.21 137.86 521.79 424 C
4 10 Q
0 X
0 K
(Client) 118.83 405.28 T
212.38 136 399.62 150 R
7 X
V
5 8 Q
0 X
(Figure 2.) 212.38 144.67 T
(Sample nominal authentication data \337ow) 251.98 144.67 T
(.) 395.09 144.67 T
4 10 Q
(Server) 466.69 405.28 T
5 9 Q
(Calculate) 111.11 331.57 T
5 8 Q
(IAC DO AUTHENTICA) 258.82 391.6 T
(TION) 339.08 391.6 T
167.2 385 162 388 167.2 391 167.2 388 4 Y
V
167.2 388 450 388 2 L
0.5 H
2 Z
N
101 162.29 162.2 400.89 R
N
450.8 162.29 512 400.89 R
N
5 9 Q
(key pairs) 111.86 321.57 T
444.8 369.4 450 366.4 444.8 363.4 444.8 366.4 4 Y
V
162 366.4 444.8 366.4 2 L
N
5 8 Q
(IAC WILL AUTHENTICA) 255.49 370 T
(TION) 342.41 370 T
(IAC SB AUTHENTICA) 222.6 348.4 T
(TION SEND SRA IAC SE) 301.54 348.4 T
167.2 341.8 162 344.8 167.2 347.8 167.2 344.8 4 Y
V
167.2 344.8 450 344.8 2 L
N
5 9 Q
(Calculate) 462.67 332.05 T
(key pairs) 464.05 321.33 T
444.8 311.8 450 308.8 444.8 305.8 444.8 308.8 4 Y
V
162 308.8 444.8 308.8 2 L
N
5 8 Q
(IAC SB AUTHENTICA) 207.04 312.4 T
(TION IS SRA KEY <PKA> IAC SE) 285.97 312.4 T
167.2 284.2 162 287.2 167.2 290.2 167.2 287.2 4 Y
V
167.2 287.2 450 287.2 2 L
N
(IAC SB AUTHENTICA) 198.01 290.8 T
(TION REPL) 276.94 290.8 T
(Y SRA KEY <PKB> IAC SE) 318.55 290.8 T
5 9 Q
(Calculate) 462.89 274.01 T
(common keys) 453.9 264.01 T
(Calculate) 112.87 274.89 T
(common keys) 103.88 264.89 T
444.8 253.77 450 250.77 444.8 247.77 444.8 250.77 4 Y
V
162 250.77 444.8 250.77 2 L
N
5 8 Q
(IAC SB AUTHENTICA) 197.27 254.35 T
(TION IS SRA USER <KAB\050U\051> IAC SE) 276.21 254.35 T
167.2 169 162 172 167.2 175 167.2 172 4 Y
V
167.2 172 450 172 2 L
N
(IAC SB AUTHENTICA) 182.85 175.6 T
(TION REPL) 261.79 175.6 T
(Y SRA [ACCEPT | REJECT] IAC SE) 303.4 175.6 T
167.2 222.57 162 225.57 167.2 228.57 167.2 225.57 4 Y
V
167.2 225.57 450 225.57 2 L
N
(IAC SB AUTHENTICA) 196 229.17 T
(TION REPL) 274.93 229.17 T
(Y SRA CONTINUE IAC SE) 316.55 229.17 T
444.8 197.97 450 194.97 444.8 191.97 444.8 194.97 4 Y
V
162 194.97 444.8 194.97 2 L
N
(IAC SB AUTHENTICA) 197.43 198.6 T
(TION IS SRA P) 276.36 198.6 T
(ASS <KAB\050P\051> IAC SE) 333.09 198.6 T
90 72 522 720 C
90.21 137.86 521.79 424 R
0.25 H
0 Z
0 X
0 K
N
0 0 612 792 C
FMENDPAGE
%%EndPage: "3" 4
%%Page: "4" 4
612 792 0 FMBEGINPAGE
90 72 522 720 R
7 X
0 K
V
2 11 Q
0 X
(Release-2.) 90 712.67 T
0 12 Q
(6.) 90 410.99 T
(Pr) 104.4 410.99 T
(eliminary Results) 116.84 410.99 T
2 11 Q
(Implementations for both TELNET \050telnet and telnetd\051 and FTP \050ftp and
ftpd\051 have been incorpo-) 90 392.66 T
(rated into the baseline BSD Network Release-2 code and tested on various
sparcstation machines) 90 379.66 T
(running SunOS 4.1.2. The programs have been found to interact well with every
existing ftp and) 90 366.66 T
(telnet service tried, including the major ftp sites, which use experimental
servers. T) 90 353.66 T
(wo interesting) 455.08 353.66 T
(things have been noticed, which point to further work.) 90 340.66 T
(First, this encryption prevents network monitoring programs, such as) 90 322.66 T
1 F
(Etherscan) 396.07 322.66 T
2 F
(, from observing) 440.62 322.66 T
(root logins, ftp\325) 90 309.66 T
(s and other knob-turning. Overall, this is not too signi\336cant a problem, as
these) 158.06 309.66 T
(events can still be logged by the tar) 90 296.66 T
(get service.) 245.12 296.66 T
(A second observation concerns the unnecessary tendency of existing telnet and ftp
server code to) 90 278.66 T
0.08 (echo back the user name in plain text following successful authentication,
such as in the ftp return) 90 265.66 P
(message ") 90 252.66 T
6 F
(230 User smith logged in) 134.45 252.66 T
2 F
(". In our implementation we deleted all such direct) 292.65 252.66 T
-0.52 (user identi\336cation, although the user) 90 239.66 P
-0.52 (\325) 248.54 239.66 P
-0.52 (s identity will probably still be available through other means,) 251.6
239.66 P
0.05 (such as rwho and \336nger) 90 226.66 P
0.05 (. It would be a signi\336cant increase in security) 193.54 226.66 P
0.05 (, regardless of what authenti-) 394.37 226.66 P
-0.22 (cation mechanism is used, to dif) 90 213.66 P
-0.22 (ferentiate between a secret login ID and the public user name. The) 230.27
213.66 P
-0.18 (login ID would only be used for authentication purposes \050along with the
password\051, while the user) 90 200.66 P
(name would be used to identify a user publicly) 90 187.66 T
(. This would be a trivial extension to the shadow) 294.95 187.66 T
(password concept, and would be easily implemented on top of the SRA
implementation.) 90 174.66 T
0 12 Q
(7.) 90 146.99 T
(A) 104.4 146.99 T
(vailability) 112.17 146.99 T
2 11 Q
-0.53 (The complete source packages for both TELNET and FTP) 90 128.66 P
-0.53 (, including all necessary client and server) 341.43 128.66 P
(code, \050but not including the Secure RPC code\051, is available on:) 90 115.66 T
(sc.tamu.edu:pub/security/SRA.) 143.57 97.66 T
90 72 522 720 C
108.11 432.99 503.89 695 C
4 10 Q
0 X
0 K
(Client) 179.76 675.3 T
248.9 432.39 363.1 446.39 R
7 X
V
5 8 Q
0 X
(Figure 3.) 248.9 441.05 T
(Basic FTP data \337ow) 288.51 441.05 T
(.) 359.16 441.05 T
4 10 Q
(Server) 405.04 675.36 T
5 9 Q
(Calculate) 172.05 623.65 T
(AUTH SRA) 283.28 662.6 T
383.6 662 388.8 659 383.6 656 383.6 659 4 Y
V
223.2 659 383.6 659 2 L
0.5 H
2 Z
N
161.93 465.79 223.13 670.44 R
N
389.16 467.79 450.36 670.57 R
N
(key pairs) 172.8 611.8 T
228.4 634.4 223.2 637.4 228.4 640.4 228.4 637.4 4 Y
V
228.4 637.4 388.8 637.4 2 L
N
(334 AUTH SRA OK) 266.79 641 T
(Calculate) 401.65 623.59 T
(key pairs) 402.4 611.86 T
383.6 608.63 388.8 605.63 383.6 602.63 383.6 605.63 4 Y
V
223.2 605.63 383.6 605.63 2 L
N
(ADA) 278.86 609.25 T
(T <PKA>) 296.67 609.25 T
228.4 576.3 223.2 579.3 228.4 582.3 228.4 579.3 4 Y
V
228.4 579.3 388.8 579.3 2 L
N
(335 <PKB>) 283.02 582.91 T
(Calculate) 401.82 564.61 T
(common keys) 392.83 554.61 T
(Calculate) 174.34 564.61 T
(common keys) 165.35 552.77 T
383.57 547.42 388.77 544.42 383.57 541.42 383.57 544.42 4 Y
V
223.17 544.42 383.57 544.42 2 L
N
(ADA) 277.84 548.05 T
(T KAB\050U\051) 295.65 548.05 T
228.4 481.3 223.2 484.3 228.4 487.3 228.4 484.3 4 Y
V
228.4 484.3 388.8 484.3 2 L
N
(235 ACCEPT | 535 REJECT) 249.14 487.91 T
383.6 518.61 388.8 515.61 383.6 512.61 383.6 515.61 4 Y
V
223.2 515.61 383.6 515.61 2 L
N
(ADA) 278.12 519.24 T
(T KAB\050P\051) 295.93 519.24 T
90 72 522 720 C
108.11 432.99 503.89 695 R
0.25 H
0 Z
0 X
0 K
N
0 0 612 792 C
FMENDPAGE
%%EndPage: "4" 5
%%Page: "5" 5
612 792 0 FMBEGINPAGE
90 72 522 720 R
7 X
0 K
V
2 11 Q
0 X
(The relevant Secure RPC code is available in:) 90 712.67 T
(ftp.uu.net:networking/rpc/tirpcsrc.tar) 143.57 694.67 T
(.Z,) 305.6 694.67 T
(keyserv/setkey) 144.29 676.67 T
(.c \050routines to calculate common key\051) 208.86 676.67 T
(keyserv/generic.c \050routines to generate public/secret key pair\051) 145 658.67
T
0 12 Q
(8.) 90 631 T
(Refer) 104.4 631 T
(ences) 132.81 631 T
2 11 Q
([1]) 90 612.67 T
-0.56 (Brian A. LaMacchia and Andrew M. Odlyzko. "Computation of Discrete
Logarithms in Prime) 111.6 612.67 P
(Fields", Designs, Codes, and Cryptography) 111.6 599.67 T
(, volume 1, 1991, pp46-62.) 301.21 599.67 T
([2]) 90 581.67 T
(RFC 1057 "RPC: Remote Procedure Call Protocol Speci\336cation, V) 111.6 581.67 T
(ersion 2.",) 405.7 581.67 T
(ftp.uu.net:/inet/rfc/rfc1057.Z) 111.6 568.67 T
FMENDPAGE
%%EndPage: "5" 6
%%Trailer
%%BoundingBox: 0 0 612 792
%%Pages: 5 1
%%DocumentFonts: Times-Bold
%%+ Times-Italic
%%+ Times-Roman
%%+ Symbol
%%+ Helvetica-Oblique
%%+ Helvetica
%%+ Courier

Vous aimerez peut-être aussi