%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: swap.dvi %%Pages: 10 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: Helvetica %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o swap.ps swap %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2000.06.12:1526 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N /@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X /yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin 39158280 55380996 1000 600 600 (swap.dvi) @start %DVIPSBitmapFont: Fa cmtt9 9 30 /Fa 30 127 df<007FB512F8B612FCA46C14F81E067C9927>45 D<121EEA7F80A2EAFFC0 A4EA7F80A2EA1E000A0A728927>I<1538157C15FCA2140115F8140315F0140715E0140F 15C0141F1580143F1500A25C147E14FE5C13015C13035C13075C130F5CA2131F5C133F91 C7FC5B137E13FE5B12015B12035BA212075B120F5B121F5B123F90C8FC5A127E12FE5AA2 5A12781E3A7CB327>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCAC121EEA7F80A2 EAFFC0A4EA7F80A2EA1E000A20729F27>58 D<3803FFC0000F13F04813FC4813FF811380 EC1FC0381F000F000480C71207A2EB0FFF137F0003B5FC120F5A383FFC07EA7FC0130012 FE5AA46C130F007F131FEBC0FF6CB612806C15C07E000313F1C69038807F8022207C9F27 >97 DIIIII<153F90391FC0FF80D97FF313C048B612E05A4814EF39 0FF07F873A1FC01FC3C0EDC000EB800F48486C7EA66C6C485AEBC01FA2390FF07F8090B5 C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC15E015F84814FE4880EB8001007EC7EA3F 80007C140F00FC15C0481407A46C140F007C1580007F143F6C6CEB7F009038F807FF6CB5 5A000714F86C5CC614C0D90FFCC7FC23337EA027>II<130F497E497EA46D5A6DC7FC90C8FCA7383FFF80487FA3 7EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I<143C147E14FFA4147E143C 1400A73801FFFE4813FFA37EC7123FB3B0147E1238007C13FE38FE01FC1303B512F814F0 6C13E06C13803807FE0018407CAE27>II<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA36C14 F81E2E7CAD27>I<397F07C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1F890 38F03FC001E0138001C01300A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701F813 E36C4801C313002920819F27>I<387FE07F39FFF1FFC001F713F090B5FC6C80000313C1 EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C713F0A36C018313E024207F9F27>II<387FE0FFD8FFF313C090B512 F0816C800003EB81FE49C67E49EB3F8049131F16C049130FA216E01507A6150F16C07F15 1F6DEB3F80157F6DEBFF009038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC387F FF80B57EA36C5B23317F9F27>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5FC 39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67EA3 6C5C22207E9F27>114 D<9038FFF3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC07 806C90C7FCEA7F8013FC383FFFF06C13FC000713FF00011480D8000F13C09038003FE014 070078EB03F000FC1301A27E14036CEB07E0EBE01F90B512C01580150000FB13FC38707F F01C207B9F27>I<133C137EA8007FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA4 15FE6D13FC1483ECFFF86D13F06D13E0010313C0010013001F297EA827>I<397FE01FF8 486C487EA3007F131F00031300B21401A21403EBFC0F6CB612E016F07EEB3FFE90390FF8 7FE024207F9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07C000F800EBE00100 035CA2EBF00300015CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3EA214 FE6D5AA36D5AA26D5A22207E9F27>I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F 80001F00A36D5B0007143EA414F0EBC1F83903E3FC7CA4EBE79EA200011478A301F713F8 A2EBFF0F6C5CA3EBFE0790387C03E024207F9F27>I<393FFC1FFF486C5A168016006C48 7E3901F807E06C6C485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F49 7E143EEB3E3FEB7E1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C0 6C486C1380A222207E9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07E000F800 000313015D13F00001130301F85B1200A26D485A137CA290387E0F80133EA2011F90C7FC 5CA2130F149E14BE130714FC1303A25C1301A25CA213035CA213075C1208EA3E0F007F5B 131FD87E7FC8FCEA7FFE6C5A5B6C5AEA07C022317E9F27>I<001FB512FE4814FFA49038 0001FEEC03FCEC07F8EC0FF0001EEB1FE0C7EA3FC0EC7F80ECFF00495A495A495AEB1FE0 495A495A49C7FC485A4848131E4848133F485A485A485A485AB7FCA46C14FE20207E9F27 >I<3901F003803903FC07C0000F130F381FFE1F393FFF7F80397FBFFF0038FE1FFE486C 5A00F813F0387003E01A0A7AAD27>126 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb cmr9 9 71 /Fb 71 124 df<91393FE00FE0903A01FFF83FF8903A07E01EF83C903A1F800FF07E903A 3F001FE0FE017E133F4914C0485A1738484890381F8000ACB812C0A33B03F0001F8000B3 A7486C497EB50083B5FCA32F357FB42D>11 DI14 D<137813FCA212011203EA07F813E0EA0FC0EA1F801300 123C5A5A12400E0E71B326>19 D<14C01301EB0380EB0F00130E5B133C5B5BA2485A485A A212075B120F90C7FC5AA2121E123EA3123C127CA55AB0127CA5123C123EA3121E121FA2 7E7F12077F1203A26C7E6C7EA213787F131C7F130FEB0380EB01C01300124A79B71E>40 D<12C07E1270123C121C7E120F6C7E6C7EA26C7E6C7EA27F1378137C133C133EA2131E13 1FA37F1480A5EB07C0B0EB0F80A514005BA3131E133EA2133C137C137813F85BA2485A48 5AA2485A48C7FC120E5A123C12705A5A124A7CB71E>I<123C127EB4FCA21380A2127F12 3D1201A412031300A25A1206120E120C121C5A5A126009177A8715>44 DI<123C127E12FFA4127E123C08087A8715>I48 D<13075B5B137FEA07FFB5FC13BFEAF83F 1200B3B3A2497E007FB51280A319327AB126>IIII<000C14C0380FC00F90B5 128015005C5C14F014C0D80C18C7FC90C8FCA9EB0FC0EB7FF8EBF07C380FC03F9038001F 80EC0FC0120E000CEB07E0A2C713F01403A215F8A41218127E12FEA315F0140712F80060 14E01270EC0FC06C131F003C14806CEB7F00380F80FE3807FFF8000113E038003F801D34 7CB126>I<14FE903807FF80011F13E090383F00F0017C13703901F801F8EBF003EA03E0 1207EA0FC0EC01F04848C7FCA248C8FCA35A127EEB07F0EB1FFC38FE381F9038700F8090 38E007C039FFC003E0018013F0EC01F8130015FC1400A24814FEA5127EA4127F6C14FCA2 6C1301018013F8000F14F0EBC0030007EB07E03903E00FC03901F81F806CB51200EB3FFC EB0FE01F347DB126>I<1230123C003FB6FCA34814FEA215FC0070C71238006014301570 15E04814C01401EC0380C7EA07001406140E5C141814385CA25CA2495A1303A3495AA213 0FA3131F91C7FCA25BA55BA9131C20347CB126>III<123C127E12FFA4127E123C1200B012 3C127E12FFA4127E123C08207A9F15>I<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC 187FA34A6C7EA202707FEC601FA202E07FECC00FA2D901807F1507A249486C7EA301066D 7EA2010E80010FB5FCA249800118C77EA24981163FA2496E7EA3496E7EA2000182160748 7ED81FF04A7ED8FFFE49B512E0A333367DB53A>65 DIIIIIIII<017FB5FCA39038003FE0EC1FC0B3B1127EB4FCA4EC3F805A 0060140000705B6C13FE6C485A380F03F03803FFC0C690C7FC20357DB227>IIIIIII82 D<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC003E80814880A20078 8000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C14C06C14F0C68001 3F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A21507A37EA26CEC0F 80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F138026C003FEC7FC 22377CB42B>I<007FB712FEA390398007F001D87C00EC003E0078161E0070160EA20060 160600E01607A3481603A6C71500B3AB4A7E011FB512FCA330337DB237>IIII91 D93 D97 DII<153FEC0FFFA3EC007F81AE EB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA 127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE013 0026357DB32B>III<151F90391FC07F809039FFF8E3C039 01F07FC73907E03F033A0FC01F83809039800F8000001F80EB00074880A66C5CEB800F00 0F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9FCA3121EA2121F380FFFFEEC FFC06C14F06C14FC4880381F0001003EEB007F4880ED1F8048140FA56C141F007C15006C 143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22337EA126>IIII II<2703F01FE013FF00FF 90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F387FD803FE147049 6D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C217EA041>I<3903F0 1FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3486CEB7F 80B538C7FFFCA326217EA02B>II<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F804914C049 130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F80160001FF13FC 9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I<903807F0 0390383FFC07EBFC0F3901F8038F3807E001000F14DF48486CB4FC497F123F90C77E5AA2 5A5AA9127FA36C6C5B121F6D5B000F5B3907E003BF3903F0073F3800F81EEB3FF8EB0FE0 90C7FCAAED7F8091380FFFFCA326307DA029>I<3803E07C38FFE1FF9038E38F809038E7 1FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>II<1330A51370A313F0A21201A2120312 07381FFFFEB5FCA23803F000AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0 182F7FAD1E>IIIII<3A7FFF807FF8A33A07F8001FC00003EC0F8000 01EC070015066C6C5BA26D131C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA290 3807E180A214F3010390C7FC14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A12 78D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2 EB000F003C14E00038EB1FC00030EB3F800070137F1500006013FE495A13035CC6485A49 5AA2495A495A49C7FC153013FE485A12035B48481370485A001F14604913E0485A387F00 0348130F90B5FCA21C207E9F22>II E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc cmsy7 7 1 /Fc 1 1 df0 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmti9 9 57 /Fd 57 125 df11 D39 D44 DI<121C127F12FFA412FE123808 08778718>I48 DI II<150E151FA2153F153EA3157E157CA215FC15F8A2140115F0 A2EC03E0A3EC07C0A2EC0F80A2EC1F00A2143EA25C147814F85C1301903803E0E0ECC1F0 EB0781EB0F83EC03E0131E133CEB7C0701F813C0EA01F0EA03E03807C00FD80F801380EA 1FFC383FFFCF48EBFF82D8F00313FF3860003FC7EA1FF8EC3F00143EA3147E147CA314FC 5CA4146020417DB127>I55 DII<161C163CA2167C16 FCA21501821503A2ED077E150F150E151CA21538A2157015F015E0EC01C0A2913803807F 82EC0700A2140E141E141C5CA25CA25C49B6FCA25B913880003F49C7EA1F80A2130E131E 131C133C13385B13F05B12011203D80FF0EC3FC0D8FFFE903807FFFEA32F367BB539>65 D67 D<0107B612C04915F017FC903A00 3F8001FEEE007FEF1F8092C7EA0FC0EF07E05CEF03F0147E170102FE15F8A25CA21301A2 5CA2130317035CA2130718F04A1407A2130F18E04A140F18C0011F151F18805CEF3F0013 3F177E91C85AA2494A5A4C5A017E4A5A4C5A01FE4A5A047EC7FC49495A0001EC0FF8007F B612E0B7C8FC15F835337BB23A>I<0107B712F05B18E0903A003F80001F1707170392C7 FC17015C18C0147EA214FEA24A130EA20101EC1E03041C13804A91C7FC163C13035E9138 F001F891B5FC5B5EECE0011500130F5E5C1707011F01015BEEC00E0280141E92C7121C13 3F173C91C812381778495DA2017E14014C5A01FE14074C5A49141F00014AB45A007FB7FC B8FC94C7FC34337CB234>I<0107B712E05B18C0903A003F80003F170F170792C7FC1703 5C1880147EA214FEA25C161C0101EC3C07043813004A91C7FCA20103147816704A13F015 0349B5FCA25EECE003130F6F5A14C0A2011F13035E1480A2013F90C9FCA291CAFCA25BA2 137EA213FEA25B1201387FFFFCB5FCA233337CB232>I<0107B548B512C0495CA2903C00 3FC0000FF0004B5CA292C75BA24A141F60147EA202FE143F95C7FC5CA201015D177E5CA2 010315FE5F5C91B6FC5B5F9138E00001A2010F14035F5CA2011F14075F5CA2013F140F5F 91C7FCA249141F5F137EA201FE143F94C8FC5B00015D3B7FFFF01FFFFCB55BA23A337BB2 39>72 D<010FB51280A216009038003FC05DA292C7FCA25CA2147EA214FEA25CA21301A2 5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C8FCA25BA2137EA213FE A25B1201B512F8A25C21337BB21E>I<0107B512C05BA29026003FC0C7FC5DA292C8FCA2 5CA2147EA214FEA25CA21301A25CA21303A25CA21307A25CA2130FA25C17E0011F140117 C05C1603013F1580160791C7FCEE0F005B5E017E143EA201FE5CED01FC4913030001EC1F F8007FB6FCB7FC5E2B337CB230>76 D<902607FFC0ED7FFC4917FF81D9003F4B13006118 03023BED077CA2027BED0EFC610273151C1838DAF1F01439F071F014E118E10101ED01C3 6102C1EC0383EF070301031607050E5BEC80F8171C0107ED380F6102001470A249EDE01F DC01C090C7FC130EEE0380011E017C5C933807003E011C140EA2013C4A137E187C01385C 5E017816FC6F485B1370ED3FC001F0EC80016000011500D807F81503277FFF803E90B512 C0B5EB3C01151C46337BB245>I<902607FF8090383FFFC0496D5BA2D9001F913803F800 4A6C6D5A6060EC3BF0027B140360EC71F8A202F11407DAF0FC91C7FC14E0A20101017E5B 170E14C0810103151EEE801CEC801FA20107ECC03C030F1338140016E049010713781770 010E14F01503011E15F0705A011C1301A2013C14FD03005B133816FF0178147F5F017014 3FA213F070C8FC1201EA07F8267FFF807FB5140EA23A337BB239>II<0107B612C04915F883903A003F8001FEEE003FEF1F8092C7 13C0170F5C18E0147EA214FEEF1FC05CA201011680173F4A1500177E010315FE5F4AEB03 F8EE07E00107EC3FC091B6C7FC16F802E0C9FC130FA25CA2131FA25CA2133FA291CAFCA2 5BA2137EA213FEA25B1201387FFFF0B5FCA233337CB234>I<0107B512FE49ECFFC017F0 903A003F8007F8EE01FCEE007E92C7127F835C1880147EA214FEEF7F005CA2010115FE5F 4A13015F01034A5AEE0FC04A495A04FEC7FC49B512F016C09138E003E0ED01F8010F6D7E 167C4A137EA2131FA25CA2013F14FEA291C7FCA24913015E137EEF01C001FE150318805B 00011607277FFFF0001400B5ECFE0EEE7E1CC9EA1FF8EE07E032357BB238>82 D<913901FC018091380FFF03023F13C791387E07EF903A01F801FF0049487E4A7F495A49 48133E131F91C7FC5B013E143CA3137E1638A293C7FC137FA26D7E14E014FE90381FFFC0 6D13F86D7F01017F6D6C7E020F7F1400153F6F7E150FA4120EA2001E5D121CA2151F003C 92C7FCA2003E143E5D127E007F5C6D485A9038C007E039F3F80FC000F0B5C8FC38E03FFC 38C00FF029377AB42B>I<0003B812C05A1880903AF800FC003F260FC001141F0180150F 01005B001EEE07001403121C003C4A5BA200380107140E127800705CA2020F141E00F016 1CC74990C7FCA2141FA25DA2143FA292C9FCA25CA2147EA214FEA25CA21301A25CA21303 A25CA21307A25C497E001FB512F05AA2323374B237>I<3B3FFFF801FFFE485CA2D801FE C7EA1FC049EC0F80170049140EA2161E120349141CA2163C1207491438A21678120F4914 70A216F0121F495CA21501123F90C75BA215035A007E5DA2150712FE4892C7FCA25D150E 48141E151C153C153815786C5C5D007C1301007E495A003EEB0F806C011EC8FC380FC0FC 6CB45A000113E06C6CC9FC2F3570B239>I87 D<902607FFFE90387FFFC0A39026001FF090380FF80003C014C0020F5D6F91C7FC020714 1E6F5B5F02035C6F485A02015C6F485A4CC8FC0200130EEDFE1EED7E3C5EED7FF06F5A5E 5E151F82A24B7E157F1577EDE7F0EC01C7EC038302077FEC0F01021E7F143CEC38004A7F 4A137E495A0103147F49487F49C77F131E49141F017C8113FC00074B7EB5D88003B57EA2 95C7FC3A337CB239>II97 D<137EEA0FFE121F5B1200A35BA21201A25BA21203A25BA21207A2EBC3E0EBCFF8380FDC 3EEBF81F497E01E01380EA1FC0138015C013005AA2123EA2007E131F1580127CA2143F00 FC14005AA2147EA25CA2387801F85C495A6C485A495A6C48C7FCEA0FFCEA03F01A3578B3 23>I<14FCEB07FF90381F078090383E03C0EBFC013801F8033803F0073807E00F13C012 0F391F80070091C7FC48C8FCA35A127EA312FE5AA4007C14C0EC01E0A2EC03C06CEB0F80 EC1F006C137C380F81F03803FFC0C648C7FC1B2278A023>III<151FED7FC0EDF0E0020113F0EC03E3A2EC07C316E0ED C1C091380FC0005DA4141F92C7FCA45C143E90381FFFFEA3D9007EC7FC147CA414FC5CA5 13015CA413035CA413075CA3130FA25CA3131F91C8FCA35B133E1238EA7E3CA2EAFE7812 FC485AEA78E0EA3FC0000FC9FC244582B418>I<143FECFF80903803E1E6903807C0FF90 380F807FEB1F00133E017E133F49133EA24848137EA24848137CA215FC12074913F8A214 01A2D80FC013F0A21403120715E01407140F141F3903E03FC00001137FEBF0FF38007FCF 90381F0F801300141FA21500A25C143E1238007E137E5C00FE5B48485A387803E0387C0F 80D81FFFC7FCEA07F820317CA023>III107 D<133FEA07FF5A13FEEA007EA3137CA213FCA213F8A21201A213F0A21203A213E0A21207 A213C0A2120FA21380A2121FA21300A25AA2123EA2127EA2127C1318EAFC1C133CEAF838 A21378137012F013F0EAF8E01279EA3FC0EA0F00103579B314>I<2703C003F8137F3C0F F00FFE01FFC03C1E783C1F07C1E03C1C7CF00F8F01F03B3C3DE0079E0026383FC001FC7F D97F805B007001005B5E137ED8F0FC90380FC00100E05FD860F8148012000001021F1303 60491400A200034A13076049013E130FF081800007027EEC83C0051F138049017C1403A2 000F02FC1407053E130049495CEF1E0E001F01015D183C010049EB0FF0000E6D48EB03E0 3A227AA03F>I<3903C007F0390FF01FFC391E787C1E391C7CF01F393C3DE00F26383FC0 1380EB7F8000781300EA707EA2D8F0FC131F00E01500EA60F8120000015C153E5BA20003 147E157C4913FCEDF8180007153C0201133801C013F0A2000F1578EDE070018014F016E0 001FECE1C015E390C7EAFF00000E143E26227AA02B>I<14FCEB07FF90381F07C090383E 03E09038FC01F0EA01F83903F000F8485A5B120F484813FCA248C7FCA214014814F8127E A2140300FE14F05AA2EC07E0A2007CEB0FC01580141FEC3F006C137E5C381F01F0380F83 E03803FF80D800FCC7FC1E2278A027>I<011E137C90387F81FF9039F3C387C09039E3EF 03E03901E1FE01D9C1FC13F0EBC3F8000313F0018314F814E0EA07871307000313C01200 010F130316F01480A2011F130716E01400A249EB0FC0A2013EEB1F80A2017EEB3F00017F 133E5D5D9038FF81F09038FDC3E09038F8FF80027EC7FC000190C8FCA25BA21203A25BA2 1207A25BB5FCA325307FA027>I<903803F01890380FF83890383E1C7890387C0EF89038 F807F0EA01F0EA03E000071303D80FC013E0A2EA1F801407D83F0013C0A348130F007E14 80A300FE131F481400A35C143E147E127C14FE495AEA3C03EA3E07EA1F0E3807FCF8EA01 F0C7FC13015CA313035CA21307A25C48B5FCA25C1D3078A023>I<3903C00FC0390FF03F F0391E78F078391C7DE03C393C3FC0FC00381380EB7F00007814F8D8707E13701500EAF0 FC12E0EA60F812001201A25BA21203A25BA21207A25BA2120FA25BA2121FA290C8FC120E 1E227AA020>II<1303EB0F 80A3131FA21400A25BA2133EA2137EA2137C387FFFF8A2B5FC3800F800A21201A25BA212 03A25BA21207A25BA2120FA25B1460001F13F014E01300130114C01303001E1380EB0700 5BEA0F1EEA07F8EA01E015307AAE19>II<01F01338D803FC13FC EA0F1E120E121C123C0038147CEA783E0070143CA2137ED8F07C1338EA60FCC65A157800 0114705BA215F0000314E05BA2EC01C0A2EBC003158014071500EBE00EA26C6C5A3800F8 78EB7FE0EB1F801E227AA023>II<011F137C90387FC1FF3A01E1E787803A03C0F703C0903880FE0FEA0700 4813FC000E1580001E9038F80700001C91C7FC1301003C5B1218120013035CA31307A25C 1506010F130F150E14800038141ED87C1F131C00FC143C1538013F5B39F07FC0E03970F3 C3C0393FE1FF80260F807EC7FC22227CA023>I<13F0D803FC1307D80F1E130F000E141F 121C123C0038143FD8783E133E1270A2017E137ED8F07C137CEA60FCC65A15FC000114F8 5BA21401000314F013E0A2140315E0EA07C0A20003130715C0EBE00F141F0001133F9038 F07F8038007FEFEB1F8FEB001F1500A25C003E133E007E137E147C5C007C5BEA7001495A 38380780D83C1FC7FCEA0FFCEA07F020317AA025>I124 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmmi7 7 6 /Fe 6 112 df<90263FFFF0EB7FF8A2D901FCC7EA1FC04AEC1E005F010315704C5A4AEB 03804CC7FC0107141C5E4A13E04B5A010FEB0780030EC8FC4A5A157C011F13FE14C3EC87 7F149E90393FB83F8014F09138C01FC0148049486C7EA2017E6D7EA201FE6D7EA2496D7E A200016E7EA249147FA2000382B539C007FFF8A235287DA738>75 D77 D<013FB512E016FC903901FC007F4AEB0F80EE07C0010315E016 035C17F01307EE07E05CA2010FEC0FC017804AEB1F00163E011F14F8ED07F091B51280A2 90393F800FE0ED03F002007F15015BA2137EA201FE1303A2495CA20001160817184914E0 17380003EDF070B5D8C00113E0923800FFC0C9EA3F002D297DA732>82 D<130E131F5BA2133E131C90C7FCA7EA03E0487EEA0C78EA187C1230A212605B12C0A2EA 01F0A3485AA2485AA2EBC180EA0F81A2381F0300A213066C5A131CEA07F06C5A11287DA6 17>105 D<3907801FC0390FE07FF03918F0E0F83930F1807CEBFB00D860FE133C5B5B00 C1147C5B1201A248485BA34A5AEA07C01660EC03E0A23A0F8007C0C0A2EDC180913803C3 00D81F0013C7EC01FE000EEB00F8231B7D9929>110 DI E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmmi10 10 20 /Ff 20 121 df<121C127FEAFF80A5EA7F00121C0909798817>58 D<121C127FEAFF80A213C0A3127F121C1200A412011380A2120313005A1206120E5A5A5A 12600A19798817>I<126012FCB4FCEA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07 FCEB01FF9038007FC0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED01FF9238007F C0EE1FF0EE07FCEE01FF9338007F80EF1FC0A2EF7F80933801FF00EE07FCEE1FF0EE7FC0 4B48C7FCED07FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0 EB7FC04848CAFCEA07FCEA3FF0EA7FC048CBFC12FC1270323279AD41>62 D<9339FF8001C0030F13E0037F9038F80380913A01FF807E07913A07F8000F0FDA1FE0EB 079FDA3F80903803BF0002FFC76CB4FCD901FC80495A4948157E495A495A4948153E017F 163C49C9FC5B1201484816385B1207485A1830121F4993C7FCA2485AA3127F5BA312FF90 CCFCA41703A25F1706A26C160E170C171C5F6C7E5F001F5E6D4A5A6C6C4A5A16076C6C02 0EC8FC6C6C143C6C6C5C6CB4495A90393FE00FC0010FB5C9FC010313FC9038007FC03A3D 7CBA3B>67 D<0103B812F05BA290260007F8C7123F4B1407F003E0020F150118005DA214 1FA25D19C0143FA24B1330A2027F1470190092C7126017E05C16014A495A160F49B6FCA2 5F9138FC000F01031407A24A6DC8FCA201075C18034A130660010F160693C7FC4A150E18 0C011F161C18184A1538A2013F5E18F04A4A5AA2017F15074D5A91C8123F49913803FF80 B9FCA295C7FC3C397DB83D>69 D<0107B512FCA216F890390007F8005DA2140FA25DA214 1FA25DA2143FA25DA2147FA292C7FCA25CA25CA21301A25CA21303A25CA21307A25CA213 0FA25CA2131FA25CA2133FA25CA2137FA291C8FC497EB6FCA326397DB824>73 D<902603FFF893383FFF80496081D900079438FF80000206DC01BFC7FCA2020E4C5A1A7E 020C1606190CDA1C7E16FE4F5A02181630A20238166162023016C1F00181DA703F158395 380303F002601506A202E0ED0C076202C01518183001016D6C140F06605B028015C0A201 03923801801FDD03005B140092380FC00649173F4D91C8FC01065DA2010E4B5B4D137E13 0C6F6C5A011C17FEDCE1805B011802E3C7FCA2013802E6130104EC5C1330ED03F8017016 034C5C01F05CD807FC4C7EB500E0D9C007B512F01680150151397CB851>77 D<0103B7FC4916E018F8903B0007F80007FC4BEB00FE187F020FED3F80F01FC05DA2021F 16E0A25DA2143FF03FC05DA2027FED7F80A292C8130018FE4A4A5A604AEC07F04D5A0101 ED3FC04CB4C7FC91B612FC17E0D903FCCAFCA25CA21307A25CA2130FA25CA2131FA25CA2 133FA25CA2137FA291CBFC497EB6FCA33B397DB835>80 D<0103B612F849EDFF8018E090 3B0007F8001FF84BEB03FCEF00FE020F157FA24BEC3F80A2021F16C0A25DA2143FF07F80 5DA2027FEDFF006092C7485A4D5A4A4A5A4D5A4AEC1F80057FC7FC0101EC07F891B612E0 94C8FC9139FC000FC00103EC03F0707E4A6D7E831307177E5C177F010F5D5F5CA2011F14 01A25CA2133F16034A4A1360A2017F17E019C091C71401496C01011480B61503933900FE 0700EF7E0ECAEA1FFCEF07F03B3B7DB83F>82 D<267FFFFC91383FFFC0B55DA2000390C8 3807FC006C48ED03E06060000094C7FC5F17065FA25F6D5DA26D5D17E05F4C5AA24CC8FC 6E1306A2013F5C161C16185EA25E6E5BA2011F495A150393C9FC1506A25D6E5AA2010F5B 157015605DA2ECE18002E3CAFC14F3EB07F614FE5C5CA25C5CA26D5AA25C91CBFC3A3B7C B830>86 D<49B500F890387FFFF095B5FC1AE0D90003018090380FFC004BC713E00201ED 07804EC7FC6E6C140E606F5C705B606F6C485A4D5A031F91C8FCEEE0065F6F6C5A5F0307 5B705A16F96FB45A94C9FC6F5AA36F7EA34B7FED037F9238063FC0150E4B6C7E1538ED70 0F03E07F15C04A486C7EEC0300020613034A805C4A6D7E14704A1300494880495A49C86C 7E130E011E153F017E4B7ED803FF4B7E007F01E0011FEBFFC0B5FC6144397EB845>88 D99 D103 D<14E0EB03F8A21307A314F0EB01 C090C7FCAB13F8EA03FEEA070F000E1380121C121812381230EA701F1260133F00E01300 12C05BEA007EA213FE5B1201A25B12035BA20007131813E01438000F133013C01470EB80 6014E014C01381EB838038078700EA03FEEA00F815397EB71D>105 D108 D110 D<90390F8003F090391FE00FFC90 3939F03C1F903A70F8700F80903AE0FDE007C09038C0FF80030013E00001491303018015 F05CEA038113015CA2D800031407A25CA20107140FA24A14E0A2010F141F17C05CEE3F80 131FEE7F004A137E16FE013F5C6E485A4B5A6E485A90397F700F80DA383FC7FC90387E1F FCEC07E001FEC9FCA25BA21201A25BA21203A25B1207B512C0A32C3583A42A>112 D116 D<13F8D803FE1438D8070F147C000E6D13FC121C1218003814011230D8701F5C12601503 EAE03F00C001005B5BD8007E1307A201FE5C5B150F1201495CA2151F120349EC80C0A215 3F1681EE0180A2ED7F0303FF130012014A5B3A00F8079F0E90397C0E0F1C90393FFC07F8 903907F001F02A267EA430>I<903907E001F090391FF807FC9039783E0E0F9039E01F1C 1FD801C09038383F803A03800FF07F0100EBE0FF5A000E4A1300000C157E021F133C001C 4AC7FC1218A2C7123FA292C8FCA25CA2147EA214FEA24A130CA20101141C001E1518003F 5BD87F81143801835C00FF1560010714E03AFE0E7C01C0D87C1C495A2778383E0FC7FC39 1FF00FFC3907C003F029267EA42F>120 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg cmsy10 10 7 /Fg 7 104 df<0060150600F8150F6C151F007E153F6C157E6C6C14FC6C6CEB01F86C6C EB03F06C6CEB07E06C6CEB0FC06C6CEB1F80017EEB3F006D137E6D6C5A90380FC1F89038 07E3F0903803F7E06DB45A6D5B6EC7FCA24A7E497F903803F7E0903807E3F090380FC1F8 90381F80FC90383F007E017E7F49EB1F804848EB0FC04848EB07E04848EB03F04848EB01 F84848EB00FC48C8127E007E153F48151F48150F00601506282874A841>2 D8 D15 D20 D<1478A414F85CA213015C1303495AA2495A49CCFC5B137E5B 485A485AEA0FE0003FBA12FEBCFCA2003F19FED80FE0CCFCEA03F06C7E6C7E137E7F7F6D 7E6D7EA26D7E1301801300A2801478A4482C7BAA53>32 D102 D<12FCEAFFC0EA07F0EA01FCEA007E7F80131F80130FB3A7801307806D7E6D7E EB007EEC1FF0EC07F8EC1FF0EC7E00495A495A495A5C130F5CB3A7131F5C133F91C7FC13 7E485AEA07F0EAFFC000FCC8FC1D537ABD2A>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh cmr8 8 30 /Fh 30 123 df<14FF010713E090381F80F090383E003849137C4913FC485A1203491378 153092C7FCA7157CB612FCA23803E000157CB3A5486C13FE3A7FFF0FFFE0A2232F7FAE27 >12 D<003C13F0387E01F838FF03FCA2EB83FEA2EA7F81383D80F600011306A30003130E EB000CA248131C00061318000E13384813704813E0387001C00060138017157EAD23>34 D<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A5A126009157A 8714>44 DI<123C127E12FFA4127E123C08087A8714>I<007FB7 12F8A29039000FC003007C150000701638A200601618A200E0161CA248160CA5C71500B3 A94A7E011FB512E0A22E2D7EAC33>84 D<0003130C48131C000E13384813704813E00030 13C0EA700100601380A2EAE00300C01300A300DE137800FF13FCEB83FEA2EA7F81A2383F 00FC001E1378171577AD23>92 D<13FF000713C0380F01F0381C00F8003F137C80A2143F 001E7FC7FCA4EB07FF137F3801FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065AA314 3F7E007E137F007FEBEF8C391F83C7FC390FFF03F83901FC01E01F207D9E23>97 DII<15F8141FA2 14011400ACEB0FE0EB7FF83801F81E3803E0073807C003380F8001EA1F00481300123E12 7EA25AA9127C127EA2003E13017EEB8003000F13073903E00EFC3A01F03CFFC038007FF0 90391FC0F800222F7EAD27>III<013F13F89038FFC3FE3903E1FF1E3807807C000F140C391F003E00A200 3E7FA76C133EA26C6C5A00071378380FE1F0380CFFC0D81C3FC7FC90C8FCA3121E121F38 0FFFF814FF6C14C04814F0391E0007F848130048147C12F848143CA46C147C007C14F86C EB01F06CEB03E03907E01F803901FFFE0038003FF01F2D7E9D23>III107 DI<2607C07FEB07F03B FFC3FFC03FFC903AC783F0783F3C0FCE01F8E01F803B07DC00F9C00F01F8D9FF8013C049 90387F000749137EA249137CB2486C01FEEB0FE03CFFFE0FFFE0FFFEA2371E7E9D3C>I< 3807C0FE39FFC3FF809038C703E0390FDE01F0EA07F8496C7EA25BA25BB2486C487E3AFF FE1FFFC0A2221E7E9D27>II<3807C0FE39FFC7FF80 9038CF03E0390FDC01F03907F800FC49137E49133E49133FED1F80A3ED0FC0A8151F1680 A2ED3F00A26D137E6D137C5D9038FC01F09038CE07E09038C7FF80D9C1FCC7FC01C0C8FC A9487EEAFFFEA2222B7E9D27>I<380781F838FF87FEEB8E3FEA0F9CEA07B813B0EBF01E EBE000A45BB0487EB5FCA2181E7E9D1C>114 D<3801FE183807FFB8381E01F8EA3C0048 1378481338A21418A27E7EB41300EA7FF06CB4FC6C13C06C13F0000113F838001FFC1301 38C0007E143EA26C131EA27EA26C133CA26C137838FF01F038E3FFC000C0130017207E9E 1C>I<1360A413E0A312011203A21207121FB512F0A23803E000AF1418A714383801F030 14703800F860EB3FE0EB0F80152A7FA81B>I I<3AFFFC01FFC0A23A0FE0007E000007147C15380003143015706C6C1360A26C6C5BA390 387C0180A26D48C7FCA2EB3F07EB1F06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5A 221E7F9C25>I<3BFFFC3FFE07FFA23B0FE003F001F801C09038E000F00007010114E081 2603E00314C0A2913807F8012701F006781380A29039F80E7C030000D90C3C1300A29039 7C181E06A2151F6D486C5AA2168C90391F600798A216D890390FC003F0A36D486C5AA36D C75A301E7F9C33>I<3AFFFC01FFC0A23A0FE0007E000007147C1538000314306D137000 011460A26C6C5BA2EBFC01017C5BEB7E03013E90C7FCA2EB1F06A2148EEB0F8CA2EB07D8 A2EB03F0A36D5AA26D5AA2495AA2130391C8FC1278EAFC06A25B131CEA7838EA7070EA3F E0EA0F80222B7F9C25>121 D<003FB51280A2EB003F003C14000038137E00305BEA7001 00605B495A495A130F00005B495A49C7FC5B137E9038FC0180EA01F8120313F03807E003 EA0FC0001F1400138048485A007E5B00FE133FB6FCA2191D7E9C1F>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fi cmr6 6 3 /Fi 3 52 df<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>49 DI<13FF000313C0380F03E0381C00F014F800 3E13FC147CA2001E13FC120CC712F8A2EB01F0EB03E0EB0FC03801FF00A2380003E0EB00 F01478147C143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFF C00001130018227DA01E>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fj cmr7 7 9 /Fj 9 58 df<140EB3A2B812E0A3C7000EC8FCB3A22B2B7DA333>43 D48 D<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521 >I<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC 15005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA0180390300 030012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C007C 0030137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E03801FF8091C7FC38 0001E06D7E147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B381F 01F03807FFC0C690C7FC19277DA521>I<0018130C001F137CEBFFF85C5C1480D819FCC7 FC0018C8FCA7137F3819FFE0381F81F0381E0078001C7F0018133EC7FC80A21580A21230 127C12FCA3150012F00060133E127000305B001C5B380F03E03803FFC0C648C7FC19277D A521>53 D<1230123C003FB512E0A215C0481480A239700007000060130E140C48131C5C 5CC75A5C1301495AA249C7FC5B130E131EA3133E133CA2137CA413FCA813781B287DA621 >55 D<137F3803FFE0380781F8380E007C48131E5A801278A3127C007E131EEA3F80EBE0 3C6C6C5A380FFCF03807FFC06C5BC613E0487F38079FFC380F07FEEA1E0348C67E48133F EC1F8048130FA21407A315001278140E6C5B6C5B380F80F03803FFE0C66CC7FC19277DA5 21>I<137F3801FFC03807C1E0380F0070001E1378003E7F003C133E007C131EA200FC13 1FA41580A4007C133FA2123C003E137F001E135F380F01DF3807FF9F3801FE1FD8001013 001300A2143E123C007E133CA25C5C007C5B383003C0381C0780D80FFFC7FCEA03F81927 7DA521>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fk cmbx10 10.95 33 /Fk 33 122 df45 DI<140F143F5C495A130F48B5FCB6FCA313F7EA FE071200B3B3A8007FB612F0A5243C78BB34>49 D<903803FF80013F13F890B512FE0003 6E7E4881260FF80F7F261FC0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F1380A46C 5A6C5A6C5A0007C7FCC8FC4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7FC5D4A5A EC1FE04A5A4A5A9139FF000F80EB01FC495A4948EB1F00495AEB1F8049C7FC017E5C5B48 B7FC485D5A5A5A5A5AB7FC5EA4293C7BBB34>I<903801FFE0010F13FE013F6D7E90B612 E04801817F3A03FC007FF8D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C48133FD8 01F05CC8FC4B5A5E4B5A4A5B020F5B902607FFFEC7FC15F815FEEDFFC0D9000113F06E6C 7E6F7E6F7E6F7E1780A26F13C0A217E0EA0FC0487E487E487E487EA317C0A25D49158012 7F49491300D83FC0495A6C6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7FC010313 E02B3D7CBB34>II<0007 1538D80FE0EB01F801FE133F90B6FC5E5E5E5E93C7FC5D15F85D15C04AC8FC0180C9FCA9 ECFFC0018713FC019F13FF90B67E020113E09039F8007FF0496D7E01C06D7E5B6CC77FC8 120F82A31780A21207EA1FC0487E487E12FF7FA21700A25B4B5A6C5A01805C6CC7123F6D 495AD81FE0495A260FFC075B6CB65A6C92C7FCC614FC013F13F0010790C8FC293D7BBB34 >I66 D<922607FFC0130E92B500FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803F FB499039F80003FF4901C01300013F90C8127F4948151FD9FFF8150F48491507485B4A15 03481701485B18004890CAFC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA2 7F6C187E197C6C7F19FC6C6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D 6CED3F80010F01C0ECFF006D01F8EB03FE6D9039FF801FFC010091B55A023F15E0020715 80020002FCC7FC030713C03F407ABE4C>I<922607FFC0130E92B500FC131E020702FF13 3E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C01300013F90C8127F 4948151FD9FFF8150F48491507485B4A1503481701485B18004890CAFC197E5A5B193E12 7FA34994C7FC12FFAB0407B612FC127F7FA3003F92C7383FFE00A27F7EA26C7FA26C7F6C 7FA26C7F6C7FD97FFE157F6D6C7E010F01E014FF6D01F813036D9038FF801F010091B512 F3023F15C00207ED803E02009138FE000E030701E090C7FC46407ABE52>71 D77 D80 D82 D<903A03FFC001C0011FEBF803017FEBFE0748B6128F4815 DF48010013FFD80FF8130F48481303497F4848EB007F127F49143F161F12FF160FA27F16 07A27F7F01FC91C7FCEBFF806C13F8ECFFC06C14FCEDFF806C15E016F86C816C816C816C 16806C6C15C07F010715E0EB007F020714F0EC003F1503030013F8167F163F127800F815 1FA2160FA27EA217F07E161F6C16E06D143F01E015C001F8EC7F8001FEEB01FF9026FFE0 0713004890B55A486C14F8D8F81F5CD8F00314C027E0003FFEC7FC2D407ABE3A>I<9038 07FFC0013F13F848B6FC48812607FE037F260FF8007F6DEB3FF0486C806F7EA36F7EA26C 5A6C5AEA01E0C8FC153F91B5FC130F137F3901FFFE0F4813E0000F1380381FFE00485A5B 485A12FF5BA4151F7F007F143F6D90387BFF806C6C01FB13FE391FFF07F36CEBFFE10003 1480C6EC003FD91FF890C7FC2F2B7DA933>97 D 99 DII<90 3A03FF8007F0013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC007FC34848 EB3FE1001FEDF1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C6C495A3A03 FF83FF8091B5C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6FC16F016FC 6C15FF17806C16C06C16E01207001F16F0393FE000034848EB003F49EC1FF800FF150F90 C81207A56C6CEC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF800F13006C 90B55AC615F8013F14E0010101FCC7FC2F3D7DA834>103 D<13FFB5FCA512077EAFED1F F8EDFFFE02036D7E4A80DA0FE07F91381F007F023C805C4A6D7E5CA25CA35CB3A4B5D8FE 0FB512E0A5333F7CBE3A>III<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5AED07F0 ED1FE04B5A4B5A4BC8FCEC03FC4A5A4A5A141F4A7EECFFFCA2818102E77F02C37F148102 007F826F7E6F7E151F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37>I<13FF B5FCA512077EB3B3AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B5010713F802 03DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013EDAF9F0806C 0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03FEBFF80A551 297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F0007013C806C 5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>II<01FFEBFFE0B5000713FC021FEBFF80027F80DAFF8113F091 39FC007FF8000701F06D7E6C496D7E4A130F4A6D7E1880A27013C0A38218E0AA4C13C0A3 18805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC028713FC02 8113C00280C9FCACB512FEA5333B7DA83A>I<3901FE01FE00FF903807FF804A13E04A13 F0EC3F1F91387C3FF8000713F8000313F0EBFFE0A29138C01FF0ED0FE091388007C092C7 FCA391C8FCB3A2B6FCA525297DA82B>114 D<90383FFC1E48B512BE000714FE5A381FF0 0F383F800148C7FC007E147EA200FE143EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14 F06C806C806C806C80C61580131F1300020713C014000078147F00F8143F151F7EA27E16 806C143F6D140001E013FF9038F803FE90B55A15F0D8F87F13C026E00FFEC7FC222B7DA9 29>III121 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fl cmti10 10 27 /Fl 27 118 df12 D<387FFFF8A2B5FCA214F0150579941E>45 D<120EEA3F80127F12FFA3130012 7E123C0909778819>I<15181538157815F0140114031407EC0FE0141F147FEB03FF9038 3FEFC0148FEB1C1F13001580A2143FA21500A25CA2147EA214FEA25CA21301A25CA21303 A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C7FC497EB61280A31D3877B72A> 49 DII<133C137E13FF5AA313FE13FCEA00701300B2 120EEA3F80127F12FFA31300127E123C102477A319>58 D<0107B712FEA3903A000FF000 074B1300187C021F153CA25DA2143FA25D1838147FA292C8FCEE03804A130718004A91C7 FCA201015CA24A131E163E010314FE91B5FC5EA2903807F800167C4A1378A2130FA24A13 70A2011F14F0A24A90C8FCA2133FA25CA2137FA291CAFCA25BA25B487EB6FCA337397BB8 36>70 D<0103B612F017FEEFFF80903B0007F8003FC04BEB0FF01707020FEC03F8EF01FC 5DA2021F15FEA25DA2143FEF03FC5DA2027FEC07F818F092C7120F18E04AEC1FC0EF3F00 4A14FEEE01F80101EC0FE091B6128004FCC7FC9138FC003F0103EC0F80834A6D7E830107 1403A25C83010F14075F5CA2011F140FA25CA2133F161F4AECE007A2017F160F180E91C7 FC49020F131C007F01FE153CB5913807F078040313F0CAEAFFE0EF3F80383B7CB83D>82 D<0007B812E0A25AD9F800EB001F01C049EB07C0485AD900011403121E001C5C003C1780 1403123800785C00701607140700F01700485CA2140FC792C7FC5DA2141FA25DA2143FA2 5DA2147FA292C9FCA25CA25CA21301A25CA21303A25CA21307A25CA2130FA25CEB3FF000 7FB512F8B6FCA2333971B83B>84 D<14F8EB07FE90381F871C90383E03FE137CEBF80112 0148486C5A485A120FEBC001001F5CA2EA3F801403007F5C1300A21407485C5AA2140F5D 48ECC1C0A2141F15831680143F1587007C017F1300ECFF076C485B9038038F8E391F0F07 9E3907FE03FC3901F000F0222677A42A>97 D<133FEA1FFFA3C67E137EA313FE5BA31201 5BA312035BA31207EBE0F8EBE7FE9038EF0F80390FFC07C013F89038F003E013E0D81FC0 13F0A21380A2123F1300A214075A127EA2140F12FE4814E0A2141F15C05AEC3F80A21500 5C147E5C387801F8007C5B383C03E0383E07C0381E1F80D80FFEC7FCEA01F01C3B77B926 >I<147F903803FFC090380FC1E090381F0070017E13784913383901F801F83803F00312 0713E0120FD81FC013F091C7FC485AA2127F90C8FCA35A5AA45AA3153015381578007C14 F0007EEB01E0003EEB03C0EC0F806CEB3E00380F81F83803FFE0C690C7FC1D2677A426> II<147F903803FFC090380FC1E090383F00F0017E13785B485A485A485A120F4913 F8001F14F0383F8001EC07E0EC1F80397F81FF00EBFFF891C7FC90C8FC5A5AA55AA21530 007C14381578007E14F0003EEB01E0EC03C06CEB0F806CEB3E00380781F83803FFE0C690 C7FC1D2677A426>III105 D108 DII<147F903803FFC090380FC1F090381F00F8 017E137C5B4848137E4848133E0007143F5B120F485AA2485A157F127F90C7FCA215FF5A 4814FEA2140115FC5AEC03F8A2EC07F015E0140F007C14C0007EEB1F80003EEB3F00147E 6C13F8380F83F03803FFC0C648C7FC202677A42A>I<9039078007C090391FE03FF09039 3CF0787C903938F8E03E9038787FC00170497EECFF00D9F0FE148013E05CEA01E113C15C A2D80003143FA25CA20107147FA24A1400A2010F5C5E5C4B5A131F5EEC80035E013F495A 6E485A5E6E48C7FC017F133EEC70FC90387E3FF0EC0F8001FEC9FCA25BA21201A25BA212 03A25B1207B512C0A3293580A42A>I<3903C003F0390FF01FFC391E783C0F381C7C703A 3C3EE03F8038383FC0EB7F800078150000701300151CD8F07E90C7FCEAE0FE5BA2120012 015BA312035BA312075BA3120F5BA3121F5BA3123F90C9FC120E212679A423>114 D<14FE903807FF8090380F83C090383E00E04913F00178137001F813F00001130313F0A2 15E00003EB01C06DC7FC7FEBFFC06C13F814FE6C7F6D13807F010F13C01300143F141F14 0F123E127E00FE1480A348EB1F0012E06C133E00705B6C5B381E03E06CB45AD801FEC7FC 1C267AA422>II<13F8D8 03FEEB01C0D8078FEB03E0390E0F8007121E121C0038140F131F007815C01270013F131F 00F0130000E015805BD8007E133FA201FE14005B5D120149137EA215FE120349EBFC0EA2 0201131E161C15F813E0163CD9F003133814070001ECF07091381EF8F03A00F83C78E090 393FF03FC090390FC00F00272679A42D>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fm cmr10 10 80 /Fm 80 123 df11 DIII<133C137EA213FE1201EA03FC13F0EA07E0EA0FC0EA1F80EA 1E005A5A5A12C00F0F6FB92A>19 D<001C131C007F137F39FF80FF80A26D13C0A3007F13 7F001C131C00001300A40001130101801380A20003130301001300485B00061306000E13 0E485B485B485B006013601A197DB92A>34 D<017C166048B416F02607C3801401260F81 C01403D900E04A5A001E01784A5A003E6D141F003C013FEC7F80007C90271BE003FFC7FC 0218B512BF007891381FFC3E00F8011CC75A020C14FC5F4C5A16035F4C5A160F5F4CC8FC 021C5B00780118133E007C5D16FC003C01385B003E90383001F0001EEB70036C01E05B90 3981C007C03907C3800F2601FF005BD8007C49C9FC90C748EB07C0033EEB1FF04BEB3C38 03FCEBF81C4B497E913A01F001E00602030103130703E0497E912607C0071480020F1501 1580DA1F00018013C04A010F1300143E5C14FC5C495A13035C495A130F4A0107130149C7 01C013805B013E1603490203140001FC6F5A49020113064848913800F00E0003705A49ED 3C3849ED1FF06C48ED07C03A437BBD45>37 D<121C127FEAFF80A213C0A3127F121C1200 A412011380A2120313005A1206120E5A5A5A12600A1979B917>39 D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA212075B120F90C7FC A25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E 1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>I<12C07E12707E7E7E120F 6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0 B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A25BA2485A485AA2485A48C7 FC120E5A5A5A5A5A13527CBD20>I<15301578B3A6007FB812F8B912FCA26C17F8C80078 C8FCB3A6153036367BAF41>43 D<121C127FEAFF80A213C0A3127F121C1200A412011380 A2120313005A1206120E5A5A5A12600A19798817>II<121C127F EAFF80A5EA7F00121C0909798817>I<150C151E153EA2153C157CA2157815F8A215F014 01A215E01403A215C01407A21580140FA215005CA2141E143EA2143C147CA2147814F8A2 5C1301A25C1303A2495AA25C130FA291C7FC5BA2131E133EA2133C137CA2137813F8A25B 1201A25B1203A25B1207A25B120FA290C8FC5AA2121E123EA2123C127CA2127812F8A25A 12601F537BBD2A>IIIII<1538A2157815F8A2140114031407A2140F141F141B14331473146314C313011483EB 030313071306130C131C131813301370136013C01201EA038013005A120E120C5A123812 305A12E0B712F8A3C73803F800AB4A7E0103B512F8A325397EB82A>I<0006140CD80780 133C9038F003F890B5FC5D5D158092C7FC14FC38067FE090C9FCABEB07F8EB3FFE903878 0F803907E007E090388003F0496C7E12066E7EC87EA28181A21680A4123E127F487EA490 C71300485C12E000605C12700030495A00385C6C1303001E495A6C6C485A3907E03F8000 01B5C7FC38007FFCEB1FE0213A7CB72A>II<123012 38123E003FB612E0A316C05A168016000070C712060060140E5D151800E01438485C5D5D C712014A5A92C7FC5C140E140C141C5CA25CA214F0495AA21303A25C1307A2130FA3495A A3133FA5137FA96DC8FC131E233B7BB82A>III<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C09 2479A317>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127F5A1380A4127F121D1201 A412031300A25A1206A2120E5A121812385A1260093479A317>I<007FB812F8B912FCA2 6C17F8CCFCAE007FB812F8B912FCA26C17F836167B9F41>61 D<1538A3157CA315FEA34A 7EA34A6C7EA202077FEC063FA2020E7FEC0C1FA2021C7FEC180FA202387FEC3007A20270 7FEC6003A202C07F1501A2D901807F81A249C77F167FA20106810107B6FCA24981010CC7 121FA2496E7EA3496E7EA3496E7EA213E0707E1201486C81D80FFC02071380B56C90B512 FEA3373C7DBB3E>65 DI<913A01FF800180020FEBE003027F13F890 3A01FF807E07903A03FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE 153F12014848151F4848150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FC AD127F6DED0180A3123F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D0000161801 7F15386D6C5CD91FE05C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC02 0F13F002011380313D7BBA3C>IIIIIII75 DIIIII82 DI<003FB812E0A3D9C003EB001F273E0001FE1303 48EE01F00078160000701770A300601730A400E01738481718A4C71600B3B0913807FF80 011FB612E0A335397DB83C>IIII<007FB590383FFFFCA3C601F801071380 D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C5C6D6C13034CC8FC6D6C1306160E6D6C5B 6DEB8018163891387FC0306E6C5A16E06E6C5A91380FF18015FB6EB4C9FC5D14036E7EA2 6E7F6F7EA24B7E15DF9138019FF09138038FF8150F91380607FC91380E03FE140C4A6C7E EC38000230804A6D7E14E04A6D7E49486D7E130391C76C7E01066E7E130E010C6E7E011C 1401013C8101FE822607FF80010713E0B500E0013FEBFF80A339397EB83E>I<003FB7FC A39039FC0001FE01C0130349495A003EC7FC003C4A5A5E0038141F00784A5A12704B5A5E 006014FF4A90C7FCA24A5A5DC712074A5AA24A5A5D143F4A5AA24A5A92C8FC5B495AA249 5A5C130F4948EB0180A2495A5C137F495A16034890C7FC5B1203485AEE0700485A495C00 1F5D48485C5E4848495A49130FB8FCA329397BB833>90 DI<3901800180000313033907000700000E130E485B0018131800 381338003013300070137000601360A200E013E0485BA400CE13CE39FF80FF806D13C0A3 007F137FA2393F803F80390E000E001A1974B92A>II97 DIIII<147E903803FF8090 380FC1E0EB1F8790383F0FF0137EA213FCA23901F803C091C7FCADB512FCA3D801F8C7FC B3AB487E387FFFF8A31C3B7FBA19>IIIIIII<2703F00FF0EB1FE000FFD93FFCEB 7FF8913AF03F01E07E903BF1C01F83803F3D0FF3800FC7001F802603F70013CE01FE14DC 49D907F8EB0FC0A2495CA3495CB3A3486C496CEB1FE0B500C1B50083B5FCA340257EA445 >I<3903F00FF000FFEB3FFCECF03F9039F1C01F803A0FF3800FC03803F70013FE496D7E A25BA35BB3A3486C497EB500C1B51280A329257EA42E>II<3903F01F E000FFEB7FF89038F1E07E9039F3801F803A0FF7000FC0D803FEEB07E049EB03F04914F8 49130116FC150016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D13076DEB0FE001F614 C09039F7803F009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0A328357EA42E> II<3807E01F00FFEB7FC09038E1E3E09038E387F0380FE707EA03E613EE9038EC03E0 9038FC0080491300A45BB3A2487EB512F0A31C257EA421>II<1318A51338A31378A313F812011203 1207001FB5FCB6FCA2D801F8C7FCB215C0A93800FC011580EB7C03017E13006D5AEB0FFE EB01F81A347FB220>IIIIII<003FB512FCA2EB8003D83E0013F8003CEB07F00038EB0F E012300070EB1FC0EC3F800060137F150014FE495AA2C6485A495AA2495A495A495AA290 387F000613FEA2485A485A0007140E5B4848130C4848131CA24848133C48C7127C48EB03 FC90B5FCA21F247EA325>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fn cmbx12 12 38 /Fn 38 122 df49 DII<163FA25E5E 5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14F8 EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E5A 12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01FF EB07FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C7 14C001DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8 FC6F13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C012 3E003F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01 FCC7FC010113C02D427BC038>I<4AB47E021F13F0027F13FC49B6FC01079038807F8090 390FFC001FD93FF014C04948137F4948EBFFE048495A5A1400485A120FA248486D13C0EE 7F80EE1E00003F92C7FCA25B127FA2EC07FC91381FFF8000FF017F13E091B512F89039F9 F01FFC9039FBC007FE9039FF8003FF17804A6C13C05B6F13E0A24915F0A317F85BA4127F A5123FA217F07F121FA2000F4A13E0A26C6C15C06D4913806C018014006C6D485A6C9038 E01FFC6DB55A011F5C010714C0010191C7FC9038003FF02D427BC038>I<121E121F13FC 90B712FEA45A17FC17F817F017E017C0A2481680007EC8EA3F00007C157E5E00785D1501 4B5A00F84A5A484A5A5E151FC848C7FC157E5DA24A5A14035D14074A5AA2141F5D143FA2 147F5D14FFA25BA35B92C8FCA35BA55BAA6D5A6D5A6D5A2F447AC238>I65 D67 D69 D73 D77 D80 D82 DI86 DI<903801FF E0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F 7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC01000313E0000F 1380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1F FF80FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97 DIIIIII<137C 48B4FC4813804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7F FFA512037EB3AFB6FCA518467CC520>105 D107 DI<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002 816E4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C 019E6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5 572D7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F 801F000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7C AC3E>II<90397FC00FF8B5 90B57E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A 15C04A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B 6E4913806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9 FCADB67EA536407DAC3E>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F 1FFE000313BE6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5 272D7DAC2E>114 D<90391FFC038090B51287000314FF120F381FF003383FC00049133F 48C7121F127E00FE140FA215077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14 FC6C800003806C15806C7E010F14C0EB003F020313E0140000F0143FA26C141F150FA27E A26C15C06C141FA26DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007 FEC7FC232F7CAD2C>IIIII121 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fo cmti12 12 21 /Fo 21 122 df67 D<027FB512E091B6FCA20200EBE000ED7F8015FFA293C7FCA35C5DA314035DA31407 5DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C8FCA35B5CA313035CA313075CA313 0F5CA3131F5CA2133FA25CEBFFE0B612E0A25D2B447BC326>73 D<91B56C93387FFFC082 98B5FC02014DEBC0006E614A5FA203DF4C6CC7FC1A0E63912603CFE05D038F5F1A381A71 1407030FEEE1FCA2F101C3020FEE0383020E60F107036F6C1507021E160E021C60191CF1 380F143C023804705BA2F1E01F0278ED01C091267003F85EF003801A3F02F0ED070002E0 030E5CA24E137F130102C04B91C8FC606201036D6C5B02805F4D5A943803800113070200 DA07005BA2050E1303495D010E606F6C5A1907011E5D011C4B5CA27048130F133C01384B 5C017892C7FC191F01F85C486C027E5DD807FE027C4A7EB500F00178013FB512C0A21670 5A447AC357>77 D<48B912F85AA2913B0007FC001FF0D807F84A130701E0010F14034916 0148485C90C71500A2001E021F15E05E121C123C0038143F4C1301007818C0127000F014 7F485DA3C800FF91C7FC93C9FCA35C5DA314035DA314075DA3140F5DA3141F5DA3143F5D A3147F5DA314FF92CAFCA35B5CA21303A21307497E007FB612C0A25E3D446FC346>84 D<001FB500F090383FFFFCA326003FF0C7000113806D48913800FE00013F167C18785C18 7018F0017F5E5CA2170101FF5E91C8FCA21703485F5BA21707000394C7FC5BA25F000716 0E5BA2171E120F49151CA2173C121F491538A21778123F491570A217F0127F495DA21601 00FF5E90C8FCA216035F16074893C8FC5E160E161E5E007E1538007F15785E6C4A5A6D49 5A001F4A5A6D49C9FC6C6C133E6C6C13F83903FC07F0C6B512C0013F90CAFCEB07F83E46 6DC348>I97 D99 D101 DI<15FCEC03FF91390F83838091 393E01CFC091387C00EF4A13FF4948137F010315804948133F495A131F4A1400133F91C7 5A5B167E13FE16FE1201495CA215011203495CA21503A2495CA21507A25EA2150F151F5E 0001143F157F6C6C13FF913801DF8090387C039F90383E0F3FEB0FFCD903F090C7FC90C7 FC5DA2157EA215FEA25DA2001C495A127F48495A14074A5A485C023FC8FC00F8137E387C 01F8381FFFE0000390C9FC2A407BAB2D>I<14FE137FA3EB01FC13001301A25CA21303A2 5CA21307A25CA2130FA25CA2131FA25C157F90393F83FFC091388F81F091381E00F80238 7F4948137C5C4A137EA2495A91C7FCA25B484814FE5E5BA2000314015E5BA2000714035E 5B1507000F5DA249130F5E001F1678031F1370491480A2003F023F13F0EE00E090C7FC16 0148023E13C01603007E1680EE070000FEEC1E0FED1F1E48EC0FF80038EC03E02D467AC4 32>I<143C147E14FE1301A3EB00FC14701400AE137C48B4FC3803C780380703C0000F13 E0120E121C13071238A21278EA700F14C0131F00F0138012E0EA003F1400A25B137EA213 FE5B12015BA212035B141E0007131C13E0A2000F133CEBC038A21478EB807014F014E0EB 81C0EA0783EBC7803803FE00EA00F8174378C11E>I108 DIII114 DI<1470 EB01F8A313035CA313075CA3130F5CA3131F5CA2007FB512E0B6FC15C0D8003FC7FCA25B 137EA313FE5BA312015BA312035BA312075BA3120F5BA2EC0780001F140013805C140E00 3F131EEB001C143C14385C6C13F0495A6C485AEB8780D807FEC7FCEA01F81B3F78BD20> I<017C143848B414FC3A03C78001FE380703C0000F13E0120E001C14000107147E123816 3E1278D8700F141E5C131F00F049131C12E0EA003F91C7123C16385B137E167801FE1470 5BA216F0000115E05B150116C0A24848EB0380A2ED0700A2150E12015D6D5B000014786D 5B90387C01E090383F0780D90FFFC7FCEB03F8272D78AB2D>118 D<137C48B414072603C780EB1F80380703C0000F7F000E153F001C1600130712385E0078 157EEA700F5C011F14FE00F0495B12E0EA003FEC00015E5B137E150301FE5C5BA2150700 015D5BA2150F00035D5BA2151F5EA2153F12014BC7FC6D5B00005BEB7C0390383E0F7EEB 1FFEEB03F090C712FE5DA214015D121F397F8003F0A24A5A4848485A5D48131F00F049C8 FC0070137E007813F8383801F0381E07C06CB4C9FCEA01FC294078AB2F>121 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fp cmr12 12 18 /Fp 18 119 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>46 D64 D 78 D 80 D99 D<167FED3FFFA315018182B3EC7F8090 3803FFF090380FC07C90383F000E017E1307496D5AD803F87F48487F5B000F81485AA248 5AA2127FA290C8FC5AAB7E7FA2123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F80 6C6C010E13C0013F011C13FE90380FC0F8903803FFE09026007F0013002F467DC436>I< EB01FE903807FFC090381F03F090387E00FC49137E48487F485A4848EB1F80000F15C049 130F121F484814E01507A2007F15F090C7FCA25AA390B6FCA290C9FCA67EA27FA2123F16 306C7E1670000F15606D14E06C6C14C0000314016C6CEB03806C6CEB0700013E131E9038 1F80F8903803FFE0010090C7FC242E7DAC2B>I104 DI108 DI111 D<3901FC03FC00FF90380FFF8091383C07 E091387001F83A07FDE000FE00030180137FD801FFEC3F8091C7EA1FC04915E049140F17 F0160717F8160317FCA3EE01FEABEE03FCA3EE07F8A217F0160F6D15E0EE1FC06D143F17 806EEB7E00D9FDC05B9039FCF003F891383C0FE091381FFF80DA03FCC7FC91C9FCAE487E B512F8A32F3F7DAB36>I<3903F803F000FFEB1FFCEC3C3EEC707F0007EBE0FF3803F9C0 00015B13FBEC007E153C01FF13005BA45BB3A748B4FCB512FEA3202C7DAB26>114 D<90383FE0183901FFFC383907E01F78390F0003F8001E1301481300007C1478127800F8 1438A21518A27EA27E6C6C13006C7E13FC383FFFE06C13FC6C13FF6C14C06C14E0C614F0 011F13F81300EC0FFC140300C0EB01FE1400157E7E153EA27EA36C143C6C147C15786C14 F86CEB01F039F38003E039F1F00F8039E07FFE0038C00FF01F2E7DAC26>I<1306A5130E A4131EA3133E137EA213FE12011207001FB512F0B6FCA2C648C7FCB3A4150CAA017E131C 017F1318A26D133890381F8030ECC070903807E0E0903801FFC09038007F001E3E7EBC26 >III E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fq cmbx12 14.4 17 /Fq 17 122 df69 D77 D86 D97 D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A 1FFE0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F13 00705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F 806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A0100158002 3F49C7FC020113E033387CB63C>99 D<913803FFC0023F13FC49B6FC010715C04901817F 903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7FC 4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E 14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A 0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>101 D103 D<137F497E000313E0487FA2487FA76C5BA26C5BC613 806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>105 D108 DII<913801FFE0021F13FE91B612C0010315F0010F9038 807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C8 6C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA2 6C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF80 7FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F 13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F 92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F61 6E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F14 80031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380F FF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF 150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426 003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF8 6D6C5B021F5B020313802A4D7ECB34>116 DI121 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop 1104 615 a Fq(Encrypting)45 b(Virtual)g(Memory)1671 856 y Fp(Niels)32 b(Pro)m(v)m(os)944 972 y Fo(Center)i(for)h (Information)e(T)-7 b(e)i(chnolo)g(gy)33 b(Inte)-5 b(gr)g(ation)1446 1089 y(University)35 b(of)g(Michigan)1461 1205 y Fp(pro)m(v)m (os@citi.umic)m(h.edu)0 1530 y Fn(Abstract)0 1819 y Fm(In)19 b(mo)r(dern)h(op)r(erating)e(systems,)i(cryptographic)e(\014le)h(sys-)0 1918 y(tems)39 b(can)f(protect)g(con\014den)n(tial)g(data)f(from)i (unautho-)0 2018 y(rized)33 b(access.)51 b(Ho)n(w)n(ev)n(er,)33 b(once)f(an)h(authorized)f(pro)r(cess)0 2118 y(has)26 b(accessed)g(data)h(from)f(a)h(cryptographic)e(\014le)i(system,)0 2217 y(the)e(data)f(can)g(app)r(ear)f(as)h(plain)n(text)h(in)f(the)h (unprotected)0 2317 y(virtual)44 b(memory)f(bac)n(king)h(store,)j(ev)n (en)d(after)g(system)0 2417 y(sh)n(utdo)n(wn.)34 b(The)22 b(solution)f(describ)r(ed)g(in)h(this)f(pap)r(er)g(uses)0 2516 y(sw)n(ap)29 b(encryption)g(for)g(pro)r(cesses)g(in)h(p)r (ossession)e(of)i(con-)0 2616 y(\014den)n(tial)j(data.)52 b(V)-7 b(olatile)32 b(encryption)g(k)n(eys)g(are)g(c)n(hosen)0 2715 y(randomly)-7 b(,)22 b(and)f(remain)g(v)-5 b(alid)22 b(only)f(for)g(short)g(time)h(p)r(eri-)0 2815 y(o)r(ds.)37 b(In)n(v)-5 b(alid)27 b(encryption)g(k)n(eys)g(are)f(deleted,)i (e\013ectiv)n(ely)0 2915 y(erasing)22 b(all)i(data)f(that)h(w)n(as)f (encrypted)h(with)g(them.)36 b(The)0 3014 y(sw)n(ap)c(encryption)g (system)h(has)f(b)r(een)h(implemen)n(ted)h(for)0 3114 y(the)26 b(UVM)h([7)o(])f(virtual)f(memory)g(system)h(and)f(its)h(p)r (erfor-)0 3214 y(mance)h(is)h(acceptable.)0 3618 y Fn(1)112 b(In)m(tro)s(duction)0 3907 y Fm(Man)n(y)33 b(computer)g(systems)g (emplo)n(y)g(cryptographic)e(\014le)0 4006 y(systems,)f Fl(e.g.)46 b Fm(CFS)31 b([4)o(],)g(TCFS)g([6)o(])f(or)g(encryption)f (la)n(y-)0 4106 y(ers)40 b([19],)k(to)e(protect)e(con\014den)n(tial)h (data)g(from)g(prying)0 4206 y(ey)n(es.)h(A)30 b(user)f(without)h(the)g (prop)r(er)e(cryptographic)g(k)n(ey)0 4305 y(is)h(unable)g(to)h(read)e (the)i(con)n(ten)n(ts)e(of)h(the)h(cryptographic)0 4405 y(\014le)e(system,)f(nor)g(is)h(he)g(able)f(to)h(glean)f(an)n(y)g (useful)h(infor-)0 4504 y(mation)j(from)g(it.)48 b(Ho)n(w)n(ev)n(er,)30 b(bac)n(king)g(store)g(of)h(the)h(vir-)0 4604 y(tual)d(memory)g(system) g(is)g(generally)e(unprotected.)42 b(An)n(y)0 4704 y(data)21 b(read)f(b)n(y)h(a)f(pro)r(cess)g(that)i(w)n(as)e(originally)f (encrypted)0 4803 y(can)k(b)r(e)g(found)g(as)f(plain)n(text)h(in)g(sw)n (ap)f(storage)f(if)j(the)f(pro-)0 4903 y(cess)31 b(w)n(as)g(sw)n(app)r (ed)g(out.)49 b(It)32 b(is)f(p)r(ossible)g(for)g(passw)n(ords)0 5003 y(and)i(pass)f(phrases)f(to)i(reside)f(in)h(sw)n(ap)e(long)h (after)h(they)0 5102 y(ha)n(v)n(e)26 b(b)r(een)i(t)n(yp)r(ed)g(in,)g (ev)n(en)f(across)f(reb)r(o)r(ots.)0 5301 y(A)38 b(user)f(exp)r(ects)h (that)g(all)f(con\014den)n(tial)g(data)h(v)-5 b(anishes)0 5401 y(with)48 b(pro)r(cess)e(termination,)52 b(and)c(is)f(completely)g (un-)0 5501 y(a)n(w)n(are)27 b(that)j(data)e(can)h(remain)g(on)g(bac)n (king)f(store.)40 b(And)0 5600 y(ev)n(en)24 b(if)g(she)g(w)n(ere)f(a)n (w)n(are)f(of)j(it,)g(there)f(is)g(next)g(to)g(nothing)0 5700 y(she)j(can)h(do)f(to)g(prev)n(en)n(t)g(its)h(exp)r(osure.)2010 1530 y(If)33 b(the)f(in)n(tegrit)n(y)f(of)h(the)h(op)r(erating)e (system)h(is)g(compro-)2010 1630 y(mised)e(and)h(an)f(un)n(trusted)g (part)n(y)f(gains)h(ro)r(ot)f(privileges)2010 1730 y(or)41 b(ph)n(ysical)g(access)g(to)h(the)g(mac)n(hine)f(itself,)46 b(she)c(also)2010 1829 y(gains)i(access)g(to)g(the)i(p)r(oten)n(tially) e(sensitiv)n(e)h(data)f(re-)2010 1929 y(tained)28 b(in)g(bac)n(king)e (store.)2010 2128 y(Our)18 b(solution)h(to)g(this)g(problem)f(is)h(to)g (encrypt)g(pages)f(that)2010 2228 y(need)24 b(to)f(b)r(e)i(sw)n(app)r (ed)e(out.)36 b(These)23 b(pages)g(are)f(decrypted)2010 2327 y(when)30 b(they)g(are)f(brough)n(t)g(bac)n(k)g(in)n(to)h(ph)n (ysical)f(memory)-7 b(,)2010 2427 y Fl(e.g.)37 b Fm(due)23 b(to)g(a)f(page)g(fault.)36 b(After)23 b(a)g(pro)r(cess)e(terminates,) 2010 2527 y(all)30 b(its)h(pages)e(stored)h(on)g(bac)n(king)f(store)g (are)h(in)n(v)-5 b(alid,)31 b(so)2010 2626 y(there)c(is)g(no)g(need)g (to)g(b)r(e)h(able)f(to)g(decrypt)g(them;)h(on)f(the)2010 2726 y(con)n(trary)-7 b(,)34 b(nob)r(o)r(dy)h(should)f(b)r(e)h(able)g (to)f(decrypt)g(them.)2010 2826 y(This)e(suggests)f(the)h(use)g(of)g(v) n(olatile)f(random)g(k)n(eys)g(that)2010 2925 y(exist)c(only)h(for)f (short)g(time)h(p)r(erio)r(ds.)2010 3124 y(The)d(remainder)f(of)h(this) h(pap)r(er)e(is)h(organized)f(as)g(follo)n(ws.)2010 3224 y(Section)35 b(2)g(pro)n(vides)f(further)h(motiv)-5 b(ation)35 b(for)g(encrypt-)2010 3324 y(ing)23 b(the)g(bac)n(king)f(store)g(and)h (describ)r(es)g(related)f(w)n(ork.)34 b(In)2010 3423 y(Section)e(3)f(w)n(e)g(giv)n(e)g(a)h(brief)f(o)n(v)n(erview)f(of)i (virtual)f(mem-)2010 3523 y(ory)-7 b(,)35 b(note)f(a)g(securit)n(y)g (problem)g(of)g(secondary)f(storage,)2010 3623 y(and)25 b(discuss)g(ho)n(w)g(it)h(can)f(b)r(e)h(resolv)n(ed)e(with)i (encryption.)2010 3722 y(Section)38 b(4)h(explains)f(ho)n(w)f(w)n(e)i (implemen)n(ted)g(sw)n(ap)e(en-)2010 3822 y(cryption.)55 b(In)34 b(Section)g(5)g(w)n(e)f(analyse)g(ho)n(w)g(the)h(paging)2010 3921 y(times)c(and)f(system)g(throughput)g(are)g(a\013ected.)42 b(Finally)-7 b(,)2010 4021 y(w)n(e)27 b(conclude)h(in)f(Section)h(6.) 2010 4421 y Fn(2)112 b(Related)37 b(W)-9 b(ork)2010 4704 y Fm(Computer)29 b(systems)g(frequen)n(tly)h(pro)r(cess)e(data)h(that)h (re-)2010 4803 y(quires)38 b(protection)f(from)h(unauthorized)g(users.) 68 b(Often)2010 4903 y(it)42 b(is)f(enough)g(to)h(use)f(access)f(con)n (trol)g(mec)n(hanisms)h(of)2010 5003 y(the)29 b(op)r(erating)f(system)g (to)h(determine)g(who)f(ma)n(y)g(access)2010 5102 y(sp)r(eci\014c)38 b(data.)67 b(In)38 b(man)n(y)f(cases)g(a)g(system)h(also)e(needs)2010 5202 y(to)30 b(b)r(e)g(secured)f(against)f(ph)n(ysical)h(attac)n(ks)g (or)f(protected)2010 5301 y(against)20 b(securit)n(y)h(compromises)f (that)i(allo)n(w)f(the)h(circum-)2010 5401 y(v)n(en)n(tion)43 b(of)h(access)f(con)n(trols.)84 b(Blaze)43 b(addresses)g(data)2010 5501 y(protection)37 b(with)h(a)f(cryptographic)e(\014le)j(system)f (called)2010 5600 y(CFS)32 b(b)n(y)f(encrypting)f(all)h(\014le)h (system)f(data,)g(prev)n(en)n(ting)2010 5700 y(an)n(y)n(one)e(without)h (the)h(prop)r(er)f(cryptographic)e(k)n(ey)h(from)p eop %%Page: 2 2 2 1 bop 0 383 a Fm(accessing)32 b(its)i(con)n(ten)n(t)f([4].)55 b(Anderson,)35 b(Needham)e(and)0 483 y(Shamir)26 b(aim)h(at)g(hiding)g (the)g(existence)g(of)f(data)h(from)f(an)0 582 y(attac)n(k)n(er)34 b(b)n(y)h(using)g(a)g(\\Steganographic)e(File)i(System")0 682 y([1].)42 b(A)29 b(cryptographic)f(k)n(ey)g(and)h(the)h(kno)n (wledge)e(that)h(a)0 782 y(\014le)19 b(exists)f(are)g(needed)h(to)g (access)e(a)i(\014le's)g(con)n(ten)n(ts.)33 b(Ho)n(w-)0 881 y(ev)n(er,)25 b(securit)n(y)h(dep)r(ends)h(on)e(the)i(whole)f (system,)g(and)g(an)0 981 y(in)n(v)n(estigation)37 b(of)h(the)h(in)n (teraction)e(with)i(other)e(system)0 1080 y(comp)r(onen)n(ts)27 b(is)h(essen)n(tial.)0 1280 y(Neither)i(pap)r(er)f(lo)r(oks)g (carefully)g(at)h(its)g(op)r(erating)f(en)n(vi-)0 1379 y(ronmen)n(t,)35 b(nor)f(do)g(they)g(tak)n(e)g(in)n(to)g(consideration) f(that)0 1479 y(con\014den)n(tial)50 b(data)f(migh)n(t)h(inadv)n(erten) n(tly)f(end)h(up)h(in)0 1579 y(bac)n(king)32 b(store.)51 b(The)33 b(storage)d(of)j(con\014den)n(tial)f(data)g(on)0 1678 y(a)24 b(sw)n(ap)f(device)h(ma)n(y)f(defeat)i(the)f(purp)r(ose)g (of)g(encryption)0 1778 y(in)29 b(CFS.)h(Sw)n(ap)f(data)f(can)h(also)f (b)r(e)i(used)f(to)g(reconstruct)0 1877 y(what)37 b(\014les)h(are)e (presen)n(t)h(in)h(a)f(system,)j(th)n(us)d(defeating)0 1977 y(the)28 b(purp)r(ose)f(of)h(steganograph)n(y)-7 b(.)0 2176 y(Sw)n(ap)42 b(encryption)f(is)i(mean)n(t)f(to)g(protect)g (con\014den)n(tial)0 2276 y(data)35 b(left)h(on)f(the)h(bac)n(king)e (store)g(from)h(in)n(truders)f(who)0 2376 y(ha)n(v)n(e)26 b(gained)g(ph)n(ysical)h(access)f(to)h(the)g(storage)e(medium.)0 2475 y(W)-7 b(e)25 b(observ)n(e)e(that)i(the)f(same)g(can)h(b)r(e)f(ac) n(hiev)n(ed)g(b)n(y)g(delet-)0 2575 y(ing)34 b(all)g(con\014den)n(tial) g(data)g(once)f(it)i(is)f(no)g(longer)f(refer-)0 2674 y(enced.)i(Ho)n(w)n(ev)n(er,)20 b(Gutmann)i(has)e(sho)n(wn)g(that)i(it) f(is)g(di\016-)0 2774 y(cult)g(to)f(delete)h(thoroughly)e(information)g (from)i(magnetic)0 2874 y(media)39 b(or)g(random-access)e(memory)i([16) o(].)73 b(He)39 b(states:)0 2973 y(\\the)22 b(easiest)g(w)n(a)n(y)f(to) h(solv)n(e)f(the)i(problem)f(of)g(erasing)f(sen-)0 3073 y(sitiv)n(e)j(information)h(from)f(magnetic)h(media)f(is)h(to)g(ensure) 0 3173 y(that)38 b(it)f(nev)n(er)g(gets)f(to)h(the)h(media)f(in)h(the)f (\014rst)g(place.)0 3272 y(Although)31 b(not)h(practical)e(for)g (general)g(data,)i(it)g(is)f(often)0 3372 y(w)n(orth)n(while)21 b(to)h(tak)n(e)g(steps)g(to)g(k)n(eep)g(particularly)f(imp)r(or-)0 3471 y(tan)n(t)28 b(information)g(suc)n(h)f(as)h(encryption)f(k)n(eys)g (from)h(ev)n(er)0 3571 y(b)r(eing)g(written)g(to)f(disk.")0 3770 y(Sc)n(hneier)39 b(and)g(Kelsey)f(describ)r(e)h(a)g(secure)f(log)g (system)0 3870 y(that)43 b(k)n(eeps)f(the)h(con)n(ten)n(ts)g(of)g(the)g (log)f(\014les)h(con\014den-)0 3970 y(tial)31 b(ev)n(en)g(if)h(the)f (system)g(has)g(b)r(een)h(compromised)e([24)o(].)0 4069 y(While)22 b(sw)n(ap)f(encryption)h(is)f(quite)h(di\013eren)n(t)g(from) g(secure)0 4169 y(logging,)27 b(the)j(attac)n(k)d(scenario)g(and)i(op)r (erating)f(en)n(viron-)0 4268 y(men)n(t)g(is)f(similar.)0 4468 y(There)43 b(are)g(other)h(systems)f(that)h(mo)r(dify)h(the)f (paging)0 4567 y(b)r(eha)n(vior)h(of)i(a)f(virtual)g(memory)g(system.) 93 b(Notably)-7 b(,)0 4667 y(F)g(red)33 b(Douglis')g(compression)e(cac) n(he)i(compresses)e(mem-)0 4767 y(ory)c(pages)f(to)h(a)n(v)n(oid)g (costly)g(disk)g(accesses)f([10)o(].)0 5192 y Fn(3)112 b(Virtual)35 b(Memory)j(System)0 5501 y Fm(One)e(purp)r(ose)g(of)h (virtual)f(memory)g(is)h(to)f(increase)g(the)0 5600 y(size)45 b(of)g(the)h(address)e(space)h(visible)g(to)g(pro)r(cesses)f(b)n(y)0 5700 y(cac)n(hing)36 b(frequen)n(tly-accessed)f(subsets)i(of)h(the)f (address)2010 383 y(space)c(in)h(ph)n(ysical)f(memory)g([2)o(].)55 b(Data)34 b(that)g(do)r(es)f(not)2010 483 y(\014t)22 b(in)f(ph)n(ysical)g(memory)f(is)i(sa)n(v)n(ed)d(on)i(secondary)f (storage)2010 582 y(kno)n(wn)31 b(as)g(the)h(bac)n(king)e(store.)48 b(P)n(aged)30 b(out)h(memory)g(is)2010 682 y(restored)f(to)h(ph)n (ysical)f(memory)h(when)g(a)g(pro)r(cess)f(needs)2010 782 y(to)d(access)g(it)h(again)e([7].)2010 981 y(In)47 b(man)n(y)g(op)r(erating)f(systems,)51 b(the)c(virtual)g(memory)2010 1080 y(pager)22 b(daemon)h(is)g(resp)r(onsible)g(for)g(reading)f(and)h (writing)2010 1180 y(pages)35 b(to)h(and)h(from)f(their)g(designated)g (bac)n(king)f(store.)2010 1280 y(When)46 b(a)e(page)g(has)h(b)r(een)g (written,)50 b(it)45 b(is)g(mark)n(ed)f(as)2010 1379 y(\\clean")31 b(and)g(can)h(b)r(e)g(evicted)g(from)g(ph)n(ysical)f (memory)-7 b(.)2010 1479 y(The)31 b(next)f(time)h(a)g(pro)r(cess)e (accesses)g(the)i(virtual)f(mem-)2010 1579 y(ory)24 b(that)i(w)n(as)e (asso)r(ciated)g(with)i(this)g(page,)f(a)g(page)g(fault)2010 1678 y(o)r(ccurs.)2010 1877 y(If)i(the)g(page)f(is)h(still)g(residen)n (t)f(in)h(ph)n(ysical)f(memory)-7 b(,)26 b(it)h(is)2010 1977 y(mark)n(ed)22 b(as)g(\\recen)n(tly)g(used,")i(and)f(additionally) f(\\dirt)n(y")2010 2077 y(if)27 b(the)f(page)f(fault)h(is)g(caused)g(b) n(y)f(a)h(write)g(access.)35 b(Other-)2010 2176 y(wise,)24 b(b)r(ecause)f(the)g(page)g(is)g(no)g(longer)f(residen)n(t)g(in)i(ph)n (ys-)2010 2276 y(ical)29 b(memory)-7 b(,)29 b(the)h(pager)d(allo)r (cates)i(a)f(page)h(of)g(ph)n(ysical)2010 2376 y(memory)e(and)g (retriev)n(es)f(the)i(data)f(from)h(bac)n(king)e(store.)2010 2681 y Fk(3.1)105 b(Secondary)36 b(Storage)2010 2987 y Fm(Compared)45 b(to)h(RAM)h(sp)r(eeds,)k(secondary)45 b(storage)f(is)2010 3086 y(usually)39 b(made)f(up)i(from)e(slo)n(w)g (media,)k Fl(e.g.)72 b Fm(ra)n(w)38 b(par-)2010 3186 y(titions)26 b(on)g(disk)g(driv)n(es.)36 b(Unlik)n(e)26 b(primary)f(memory)-7 b(,)26 b(sec-)2010 3286 y(ondary)33 b(storage)g(is)h(non)n(v)n(olatile,)h(and)f(the)h(data)f(stored)2010 3385 y(on)21 b(it)h(is)g(preserv)n(ed)d(after)j(a)f(system)g(sh)n(utdo) n(wn.)34 b(Dep)r(end-)2010 3485 y(ing)f(on)f(usage)g(patterns,)i(a)e (sw)n(ap)g(partition)g(can)h(retain)2010 3585 y(data)27 b(for)g(man)n(y)g(mon)n(ths)h(or)e(ev)n(en)h(y)n(ears.)2010 3784 y(Con\014den)n(tial)g(data)f(in)h(a)g(pro)r(cess')f(address)g (space)g(migh)n(t)2010 3883 y(b)r(e)d(sa)n(v)n(ed)f(on)h(secondary)e (storage)g(and)i(surviv)n(e)f(there)h(b)r(e-)2010 3983 y(y)n(ond)30 b(the)i(exp)r(ectations)e(of)h(a)f(user.)47 b(She)31 b(assumes)f(that)2010 4083 y(all)25 b(con\014den)n(tial)g (data)g(is)g(deleted)h(with)g(the)f(termination)2010 4182 y(of)j(the)f(pro)r(cess.)36 b(Ho)n(w)n(ev)n(er,)26 b(the)i(data)f(found)h(b)n(y)f(lo)r(oking)2010 4282 y(at)20 b(the)h(con)n(ten)n(t)f(of)h(sev)n(eral)e(sw)n(ap)g(partitions)h(of)h (mac)n(hines)2010 4382 y(at)39 b(the)h(Cen)n(ter)g(of)f(Information)g (T)-7 b(ec)n(hnology)38 b(In)n(tegra-)2010 4481 y(tion)26 b(included:)37 b(login)25 b(passw)n(ords)3110 4451 y Fj(1)3145 4481 y Fm(,)i(PGP)e(pass)g(phrases,)2010 4581 y(email)i(messages,)f(cryptographic)f(k)n(eys)h(from)h(ssh-agen)n(t,) 2010 4680 y(shell)h(command)f(histories,)f(URLs,)i Fl(etc.)2010 4880 y Fm(T)-7 b(o)37 b(a)n(v)n(oid)f(this,)k(w)n(e)d(dev)n(elop)r(ed)g (a)f(system)i(that)f(mak)n(es)2010 4979 y(data)23 b(on)g(the)g(bac)n (king)f(store)g(imp)r(ossible)h(for)g(an)g(attac)n(k)n(er)2010 5079 y(to)28 b(read)g(if)h(it)g(w)n(as)e(written)i(a)f(certain)f(time)i (prior)e(to)i(the)2010 5179 y(op)r(erating)e(system's)g(compromise.) 2010 5378 y(One)35 b(approac)n(h)f(is)h(to)h(a)n(v)n(oid)e(sw)n(apping) g(completely)h(b)n(y)2010 5477 y(not)47 b(using)f(secondary)f(storage)g (at)h(all.)94 b(But)47 b(this)g(is)p 2010 5544 744 4 v 2102 5598 a Fi(1)2137 5621 y Fh(The)19 b(author)h(w)n(as)f(amazed)g (to)h(\014nd)f(not)h(only)f(his)g(curren)n(t)g(pass-)2010 5700 y(w)n(ord,)i(but)g(also)f(older)g(ones)h(that)h(had)f(not)g(b)r (een)g(used)g(for)f(mon)n(ths.)p eop %%Page: 3 3 3 2 bop 0 383 a Fm(not)37 b(a)f(general)f(solution,)j(and)f(there)f (are)f(man)n(y)h(appli-)0 483 y(cations)26 b(and)g(en)n(vironmen)n(ts)f (that)i(require)f(a)g(virtual)g(ad-)0 582 y(dress)19 b(space)f(bigger)g(than)i(the)g(ph)n(ysical)e(memory)h(presen)n(t)0 682 y(in)28 b(the)g(system.)0 881 y(An)50 b(application)f(can)g(prev)n (en)n(t)g(memory)g(from)g(b)r(eing)0 981 y(sw)n(app)r(ed)28 b(out)h(b)n(y)f(using)h(the)g(\\mlo)r(c)n(k\(\)")e(system)i(call)f(to)0 1080 y(lo)r(c)n(k)22 b(the)h(ph)n(ysical)f(pages)f(asso)r(ciated)g (with)i(a)g(virtual)f(ad-)0 1180 y(dress)40 b(range)g(in)n(to)h(memory) g([16)o(].)78 b(There)41 b(are)f(sev)n(eral)0 1280 y(disadv)-5 b(an)n(tages)35 b(with)j(this)f(approac)n(h.)63 b(It)37 b(requires)f(ap-)0 1379 y(plications)d(to)h(b)r(e)g(rewritten)f(to)g (use)h(\\mlo)r(c)n(k\(\)",)g(whic)n(h)0 1479 y(migh)n(t)26 b(not)g(b)r(e)g(p)r(ossible)f(for)g(legacy)g(applications)g(or)g(dif-)0 1579 y(\014cult)32 b(if)g(it)f(requires)f(a)h(complicated)g(analysis)f (of)h(whic)n(h)0 1678 y(parts)i(of)g(the)h(memory)f(con)n(tain)g (con\014den)n(tial)g(data.)54 b(In)0 1778 y(addition,)30 b(\\mlo)r(c)n(k\(\)")f(reduces)f(the)i(opp)r(ortunit)n(y)f(of)h(the)0 1877 y(virtual)42 b(memory)f(system)h(to)g(evict)g(stale)g(pages)f (from)0 1977 y(ph)n(ysical)35 b(memory)-7 b(,)37 b(whic)n(h)f(can)f(ha) n(v)n(e)g(a)h(sev)n(ere)e(impact)0 2077 y(on)27 b(system)h(p)r (erformance.)0 2276 y(In)f(general,)f(it)i(is)f(not)g(desirable)f(to)h (prev)n(en)n(t)g(the)g(system)0 2376 y(from)18 b(sw)n(apping)f(memory)h (to)g(the)h(disk.)34 b(Instead,)20 b(encryp-)0 2475 y(tion)h(can)g(b)r (e)g(used)g(to)g(protect)f(con\014den)n(tial)h(data)f(when)i(it)0 2575 y(is)g(written)h(to)f(secondary)f(storage)f(b)n(y)i(the)h(pager.) 34 b(A)23 b(user)0 2674 y(program)28 b(could)i(install)g(its)g(o)n(wn)g (encrypting)g(pager)e([2].)0 2774 y(This)22 b(w)n(ould)g(lead)h(to)f (greater)f(complexit)n(y)-7 b(,)23 b(require)e(mo)r(d-)0 2874 y(i\014cation)j(of)g(applications)g(and)g(p)r(oses)g(di\016cult)h (decisions)0 2973 y(ab)r(out)19 b(whic)n(h)g(cryptosystem)f(to)h(use.) 34 b(If)19 b(a)g(cryptographic)0 3073 y(\014le)34 b(system)g(lik)n(e)g (CFS)g([4])g(w)n(ere)g(a)n(v)-5 b(ailable,)34 b(the)h(virtual)0 3173 y(memory)26 b(pager)g(could)g(b)r(e)h(con\014gured)f(to)h(sw)n(ap) f(to)g(a)h(\014le)0 3272 y(that)h(resided)f(on)g(an)h(encrypted)f (\014le)h(system.)0 3471 y(Ho)n(w)n(ev)n(er,)50 b(in)e(con)n(trast)e (to)h(common)g(use)g(of)g(encryp-)0 3571 y(tion)26 b([20)o(],)h(w)n(e)e (require)g(di\013eren)n(t)i(c)n(haracteristics)c(for)j(our)0 3671 y(cryptographic)g(system:)83 3946 y Fg(\017)41 b Fm(When)20 b(a)f(page)f(on)h(bac)n(king)f(store)h(is)g(no)g(longer)f (refer-)166 4045 y(enced)25 b(b)n(y)g(its)h(o)n(wner,)e(the)i (decryption)f(k)n(ey)f(for)h(that)166 4145 y(page)19 b(should)h(b)r(e)h(irretriev)-5 b(ably)19 b(lost)h(after)f(a)h (suitable)166 4244 y(time)28 b(p)r(erio)r(d)g(\()p Ff(t)676 4256 y Fe(R)730 4244 y Fm(\))g(has)f(passed.)83 4429 y Fg(\017)41 b Fm(Only)28 b(the)h(virtual)e(memory)h(pager)f(should)h (b)r(e)g(able)166 4528 y(to)g(decrypt)f(data)g(read)g(from)g(the)h(bac) n(king)e(store.)0 4803 y(Clearly)-7 b(,)23 b(the)h(b)r(est)g (protection)e(is)h(ac)n(hiev)n(ed)f(with)i Ff(t)1630 4815 y Fe(R)1708 4803 y Fm(=)e(0.)0 4903 y(The)32 b(decryption)g(k)n (ey)-7 b(,)32 b(and)g(indirectly)g(the)h(page's)e(con-)0 5003 y(ten)n(t,)25 b(is)e(irretriev)-5 b(ably)21 b(remo)n(v)n(ed)h (immediately)h(when)h(the)0 5102 y(page)33 b(is)g(no)h(longer)e (referenced.)54 b(This)34 b(b)r(eha)n(vior)e(meets)0 5202 y(the)40 b(user's)f(exp)r(ectation)h(that)g(con\014den)n(tial)f (data)g(in)h(a)0 5301 y(pro)r(cess')29 b(address)g(space)h(is)g (deleted)g(with)h(the)g(termina-)0 5401 y(tion)d(of)f(the)h(pro)r (cess.)0 5600 y(Ho)n(w)n(ev)n(er,)39 b(this)g(is)f(di\016cult)i(to)e (ac)n(hiev)n(e,)i(and)e(w)n(e)g(ha)n(v)n(e)0 5700 y(to)30 b(trade)f(o\013)h(securit)n(y)g(against)e(p)r(erformance.)43 b(Often,)31 b(a)2010 383 y Ff(t)2040 395 y Fe(R)2124 383 y Ff(>)e Fm(0)i(is)g(still)h(acceptable.)48 b(In)31 b(the)h(initial)g(implemen-)2010 483 y(tation,)d(w)n(e)f(only)g(guaran) n(tee)e Ff(t)2996 495 y Fe(R)3075 483 y Fg(\024)f Fm(system)i(uptime)q (,)h(but)2010 582 y(attempt)g(to)g(minimize)g(the)g(a)n(v)n(erage)d Ff(t)3256 594 y Fe(R)3310 582 y Fm(.)2010 782 y(This)46 b(implies)f(the)h(use)g(of)f(v)n(olatile)g(encryption)g(k)n(eys,)2010 881 y(v)-5 b(alid)22 b(maximally)g(for)g(the)h(duration)e(of)h(the)h (system's)f(up-)2010 981 y(time.)38 b(Suc)n(h)27 b(k)n(eys)g(are)g (similar)g(to)g(ephemeral)g(k)n(eys)g(used)2010 1080 y(to)21 b(ac)n(hiev)n(e)f(p)r(erfect)i(forw)n(ard)d(secrecy)h([9].)35 b(A)22 b(v)n(olatile)e(k)n(ey)2010 1180 y(is)f(completely)g(unrelated)g (to)g(all)g(other)g(k)n(eys.)33 b(Kno)n(wledge)2010 1280 y(of)h(it)h(do)r(es)f(not)g(allo)n(w)g(the)g(decryption)g(of)g(old)h (data)e(on)2010 1379 y(secondary)g(storage.)56 b(Encryption)34 b(k)n(eys)g(are)g(used)g(only)2010 1479 y(b)n(y)28 b(the)h(virtual)f (memory)g(pager)f(and)h(can)g(b)r(e)h(generated)2010 1579 y(on)d(demand)g(when)h(they)f(are)g(required,)f(eliminating)i(the) 2010 1678 y(need)h(for)f(complicated)g(k)n(ey)g(managemen)n(t.)2010 1877 y(On)41 b(the)g(other)f(hand,)45 b(sw)n(apping)40 b(to)h(a)f(cryptographic)2010 1977 y(\014le)27 b(system)f(do)r(es)h (not)g(ful\014ll)g(either)g(of)f(the)i(t)n(w)n(o)d(require-)2010 2077 y(men)n(ts.)56 b(Key)33 b(managemen)n(t)g(is)g(an)h(in)n(tegral)e (part)i(of)f(an)2010 2176 y(encrypting)20 b(\014le)h(system)g([5)o(].) 35 b(Consequen)n(tly)-7 b(,)21 b(p)r(ermanen)n(t)2010 2276 y(non)n(v)n(olatile)33 b(encryption)h(k)n(eys)g(are)f(presen)n(t,) j(making)e(it)2010 2376 y(p)r(ossible)28 b(to)h(read)f(the)h(data)f(on) h(the)g(sw)n(ap)f(storage)e(after)2010 2475 y(the)20 b(system)f(has)g(b)r(een)h(sh)n(ut)f(do)n(wn.)34 b(F)-7 b(urthermore,)20 b(a)f(user)2010 2575 y(with)27 b(access)f(righ)n(ts)f (to)i(the)g(sw)n(ap)f(\014le)h(on)f(the)h(encrypted)2010 2674 y(\014le)c(system)f(-)g(usually)g(the)g(ro)r(ot)g(user)g(-)g(can)g (directly)g(read)2010 2774 y(its)28 b(con)n(ten)n(ts.)2010 2973 y(Instead,)39 b(w)n(e)d(emplo)n(y)h(encryption)f(at)h(the)g(pager) f(lev)n(el.)2010 3073 y(P)n(ages)42 b(that)j(are)f(sw)n(app)r(ed)g(out) g(are)g(\(optionally\))g(en-)2010 3173 y(crypted,)f(and)d(encrypted)f (pages)g(that)h(are)f(read)g(from)2010 3272 y(secondary)26 b(storage)f(are)i(decrypted.)1914 4845 y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2494 @rwi @setspecial %%BeginDocument: lifetime-eps.ps %!PS-Adobe-2.0 EPSF-2.0 %%Title: lifetime-eps.ps %%Creator: gnuplot 3.7 patchlevel 0 %%CreationDate: Sun Jun 11 20:26:53 2000 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -46 def /dl {10 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop Solid {pop []} if 0 setdash} ifelse } def /BL { stroke gnulinewidth 2 mul setlinewidth } def /AL { stroke gnulinewidth 2 div setlinewidth } def /UL { gnulinewidth mul /userlinewidth exch def } def /PL { stroke userlinewidth setlinewidth } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 140 scalefont setfont 1.000 UL LTb 714 420 M 63 0 V -147 0 R (0) Rshow 714 1056 M 63 0 V -147 0 R (200) Rshow 714 1692 M 63 0 V -147 0 R (400) Rshow 714 2328 M 63 0 V -147 0 R (600) Rshow 714 2964 M 63 0 V -147 0 R (800) Rshow 714 3600 M 63 0 V -147 0 R (1000) Rshow 714 4236 M 63 0 V -147 0 R (1200) Rshow 714 4872 M 63 0 V -147 0 R (1400) Rshow 714 420 M 0 63 V 0 4389 R 0 -63 V 714 280 M (0) Cshow 1551 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (10) Cshow 2387 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (20) Cshow 3224 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (30) Cshow 4060 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (40) Cshow 4897 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (50) Cshow 5733 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (60) Cshow 6570 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (70) Cshow 6570 420 M -63 0 V 147 0 R (0) Lshow 6570 1310 M -63 0 V 147 0 R (20) Lshow 6570 2201 M -63 0 V 147 0 R (40) Lshow 6570 3091 M -63 0 V 147 0 R (60) Lshow 6570 3982 M -63 0 V 147 0 R (80) Lshow 6570 4872 M -63 0 V 147 0 R (100) Lshow 1.000 UL LTb 714 420 M 5856 0 V 0 4452 V -5856 0 V 714 420 L 140 2646 M currentpoint gsave translate 90 rotate 0 0 M (number of pages) Cshow grestore 7059 2646 M currentpoint gsave translate 90 rotate 0 0 M (cumulative probability in percent) Cshow grestore 3642 70 M (time in minutes) Cshow 1.000 UL LT0 736 3206 M 23 0 V 0 -1864 V 22 0 V 0 3365 V 22 0 V 803 423 L 23 0 V 0 3 V 22 0 V 0 531 V 22 0 V 0 -527 V 22 0 V 0 82 V 23 0 V 0 566 V 22 0 V 0 -604 V 22 0 V 0 175 V 23 0 V 0 -216 V 22 0 V 0 305 V 22 0 V 0 -280 V 23 0 V 0 220 V 22 0 V 0 108 V 22 0 V 0 -191 V 23 0 V 0 6 V 22 0 V 0 -165 V 22 0 V 0 38 V 22 0 V 0 3 V 23 0 V 0 172 V 22 0 V 0 375 V 22 0 V 0 -601 V 23 0 V 0 261 V 22 0 V 0 -146 V 22 0 V 0 -108 V 23 0 V 0 919 V 22 0 V 0 -875 V 22 0 V 0 -48 V 23 0 V 0 1187 V 22 0 V 0 -1145 V 22 0 V 0 -3 V 67 0 V 0 -16 V 22 0 V 0 31 V 23 0 V 0 -50 V 44 0 V 0 54 V 45 0 V 0 -39 V 45 0 V 0 -9 V 22 0 V 0 -13 V 22 0 V 0 32 V 67 0 V 0 -32 V 22 0 V 0 19 V 23 0 V 0 19 V 44 0 V 0 48 V 67 0 V 0 -83 V 23 0 V 0 147 V 44 0 V 0 -121 V 23 0 V 0 -22 V 66 0 V 0 -7 V 290 0 V 0 22 V 290 0 V 67 0 V 0 -19 V 67 0 V 0 668 V 23 0 V 0 757 V 67 0 V 0 -1358 V 44 0 V 0 -60 V 22 0 V 0 9 V 45 0 V 0 -16 V 45 0 V 0 -3 V 22 0 V 22 0 V 0 3 V 290 0 V 0 16 V 23 0 V 0 -16 V 67 0 V 0 7 V 22 0 V 0 -3 V 44 0 V 0 -4 V 23 0 V 134 0 V 0 -3 V 223 0 V 0 328 V 111 0 V 0 -13 V 23 0 V 0 -305 V 133 0 V 0 86 V 90 0 V 0 -74 V 67 0 V 0 115 V 67 0 V 0 25 V 66 0 V 0 -162 V 45 0 V 0 178 V 45 0 V 0 -165 V 22 0 V 0 -10 V 22 0 V 0 74 V 90 0 V 0 -67 V 22 0 V 0 149 V 67 0 V 0 -149 V 44 0 V 0 -3 V 23 0 V 0 9 V 44 0 V 0 -6 V 67 0 V 0 -7 V 67 0 V 0 -3 V 45 0 V 0 38 V 111 0 V 0 -19 V 469 0 V 0 38 V 357 0 V 0 -47 V 134 0 V 0 270 V 22 0 V 0 -16 V 45 0 V 0 -248 V 89 0 V 0 -13 V 22 0 V 0 10 V 67 0 V 0 -6 V 1.000 UL LT1 736 1044 M 23 207 V 22 960 V 22 1 V 23 1 V 22 121 V 22 2 V 22 20 V 23 148 V 22 12 V 22 51 V 23 3 V 22 71 V 22 9 V 23 58 V 22 82 V 22 39 V 23 40 V 22 4 V 22 12 V 22 13 V 23 51 V 22 136 V 22 0 V 23 59 V 22 27 V 22 2 V 23 208 V 22 12 V 22 1 V 23 268 V 22 10 V 22 10 V 67 7 V 22 13 V 23 2 V 44 15 V 45 5 V 45 4 V 22 1 V 22 7 V 67 1 V 22 5 V 23 9 V 44 20 V 67 2 V 23 34 V 44 7 V 23 2 V 66 1 V 290 6 V 290 5 V 67 2 V 67 151 V 23 320 V 67 17 V 44 3 V 22 5 V 45 1 V 45 1 V 22 0 V 22 2 V 290 5 V 23 1 V 67 3 V 22 2 V 44 2 V 23 1 V 134 1 V 223 74 V 111 71 V 23 3 V 133 22 V 90 6 V 67 31 V 67 37 V 66 1 V 45 40 V 45 4 V 22 1 V 22 18 V 90 3 V 22 36 V 67 3 V 44 2 V 23 5 V 44 3 V 67 1 V 67 1 V 45 9 V 111 5 V 469 14 V 357 2 V 134 64 V 22 60 V 45 4 V 89 1 V 22 4 V 67 2 V 1.000 UL LT2 736 4427 M 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V 58 0 V 57 0 V stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 2010 5019 a Fl(Figur)l(e)44 b(1:)68 b Fd(Histo)l(gr)l(am) 42 b(of)f(p)l(age)h(r)l(esidency)g(in)f(se)l(c)l(ondary)2010 5110 y(stor)l(age)34 b(for)f(a)f(desktop)i(session)g(and)e(c)l(orr)l (esp)l(onding)j(cumu-)2010 5202 y(lative)28 b(pr)l(ob)l(ability.)2010 5401 y Fm(W)-7 b(e)27 b(compared)f(page)g(encryption)g(to)h(zeroing)e (a)h(page)g(on)2010 5501 y(the)31 b(bac)n(king)f(store)f(after)i(it)g (is)f(dereferenced.)46 b(T)-7 b(o)30 b(get)g(a)2010 5600 y(b)r(etter)k(understanding)e(of)h(the)h(o)n(v)n(erheard)d(incurred)h (b)n(y)2010 5700 y(suc)n(h)c(a)h(measure,)f(w)n(e)g(recorded)g(ho)n(w)g (long)g(pages)g(reside)p eop %%Page: 4 4 4 3 bop 0 383 a Fm(on)36 b(bac)n(king)e(store.)61 b(Figure)36 b(1)f(sho)n(ws)g(the)h(result)g(for)f(a)0 483 y(desktop)27 b(session.)0 682 y(Most)33 b(pages)e(remain)i(in)g(the)g(bac)n(king)f (store)g(for)g(only)g(a)0 782 y(few)j(min)n(utes.)60 b(The)35 b(strong)f(temp)r(oral)g(correlation)f(b)r(e-)0 881 y(t)n(w)n(een)e(sw)n(apping)f(and)h(zeroing)f(can)g(result)h(in)h (unneces-)0 981 y(sary)e(cleaning)g(of)h(pages)f(that)h(will)g(b)r(e)h (o)n(v)n(erwritten)d(im-)0 1080 y(mediately)-7 b(,)34 b(and)e(will)g(impact)h(on)f(system)g(p)r(erformance)0 1180 y(due)38 b(to)f(exp)r(ensiv)n(e)g(write)h(op)r(erations.)65 b(Zeroing)36 b(pages)0 1280 y(also)j(fails)h(to)g(protect)g(against)f (ph)n(ysical)h(attac)n(ks)f(that)0 1379 y(prev)n(en)n(t)18 b(writes)h(to)g(secondary)e(storage,)i Fl(e.g.)35 b Fm(an)19 b(attac)n(k)n(er)0 1479 y(stealing)k(disks)f(or)h(turning)g(o\013)g (the)h(system's)e(p)r(o)n(w)n(er)g(sup-)0 1579 y(ply)-7 b(.)0 1778 y(In)41 b(summary)-7 b(,)43 b(encryption)d(has)g(the)g (follo)n(wing)g(adv)-5 b(an-)0 1877 y(tages)32 b(o)n(v)n(er)f(ph)n (ysically)h(zeroing)f(pages)h(on)g(the)h(bac)n(king)0 1977 y(store.)83 2231 y Fg(\017)41 b Fm(Deleting)25 b(data)e(b)n(y)h (erasing)f(it)h(on)g(disk)g(incurs)g(extra)166 2331 y(seek)33 b(time)h(and)f(additional)g(I/O)g(for)g(writing.)54 b(On)166 2430 y(the)27 b(other)g(hand,)g(with)h(encryption)e(the)h(con)n(ten)n (t)g(of)166 2530 y(a)33 b(page)f(disapp)r(ears)g(when)h(its)h(resp)r (ectiv)n(e)e(encryp-)166 2630 y(tion)d(k)n(ey)g(is)g(deleted.)41 b(F)-7 b(urthermore,)29 b(encrypting)f(a)166 2729 y(page)23 b(is)h(fast)h(compared)e(to)h(writing)f(it,)j(and)e(the)g(en-)166 2829 y(cryption)36 b(cost)g(is)g(spread)f(ev)n(enly)h(o)n(v)n(er)f(the) h(whole)166 2929 y(sw)n(apping)27 b(pro)r(cess.)83 3089 y Fg(\017)41 b Fm(Encryption)34 b(pro)n(vides)g(b)r(etter)i(protection) e(against)166 3188 y(ph)n(ysical)h(attac)n(ks.)61 b(Mere)35 b(p)r(ossession)g(of)h(the)g(disk)166 3288 y(driv)n(e)30 b(is)h(not)g(su\016cien)n(t)g(to)g(read)f(its)h(con)n(ten)n(t.)47 b(The)166 3388 y(correct)38 b(encryption)g(k)n(ey)g(is)h(required,)i (but)f(man)n(y)166 3487 y(ph)n(ysical)g(attac)n(ks)f(disrupt)i(the)g (op)r(eration)e(of)i(the)166 3587 y(mac)n(hine;)54 b(the)47 b(con)n(ten)n(t)e(of)g(ph)n(ysical)g(memory)g(is)166 3687 y(lost,)h(and)c(th)n(us)g(also)f(the)i(encryption)f(k)n(ey)-7 b(.)80 b(Ad-)166 3786 y(ditionally)-7 b(,)34 b(encryption)f(prev)n(en)n (ts)f(\\compromising)166 3886 y(emanations")37 b(caused)h(b)n(y)g(data) g(transfers)f(to)i(sec-)166 3985 y(ondary)31 b(storage,)h Fl(i.e.)53 b Fm(electromagnetic)31 b(radiation)166 4085 y(that)39 b(carries)f(sensitiv)n(e)g(information)g(and)h(can)g(b)r(e) 166 4185 y(receiv)n(ed)27 b(remotely)f([11)o(].)83 4345 y Fg(\017)41 b Fm(Reliably)30 b(deleting)f(data)h(from)f(magnetic)h (media)f(is)166 4445 y(di\016cult,)36 b(a)d(problem)g(that)g(do)r(es)g (not)h(apply)f(when)166 4544 y(using)27 b(encryption)g([16)o(].)0 4798 y(In)c(the)h(next)f(section,)h(w)n(e)f(describ)r(e)g(our)f (implemen)n(tation)0 4898 y(of)28 b(sw)n(ap)e(encryption.)0 5307 y Fn(4)112 b(Sw)m(ap)38 b(Encryption)0 5600 y Fm(Sw)n(ap)21 b(encryption)g(divides)h(naturally)f(in)n(to)h(t)n(w)n(o)f(separate)0 5700 y(functions:)48 b(encryption)32 b(and)g(decryption.)52 b(The)33 b(former)2010 383 y(requires)39 b(a)h(p)r(olicy)g(decision)g (ab)r(out)g(when)h(to)f(encrypt)2010 483 y(pages.)33 b(The)19 b(latter)f(requires)f(kno)n(wing)h(whic)n(h)g(pages)g(read) 2010 582 y(from)36 b(sw)n(ap)f(need)h(to)g(b)r(e)g(decrypted.)63 b(The)36 b(encryption)2010 682 y(p)r(olicy)i(can)g(b)r(e)g(v)n(ery)f (simple,)k Fl(e.g.)69 b Fm(all)38 b(pages)f(that)h(go)2010 782 y(to)g(sw)n(ap)g(will)g(b)r(e)h(encrypted.)69 b(A)38 b(more)g(sophisticated)2010 881 y(p)r(olicy)e(migh)n(t)g(encrypt)h (only)e(pages)h(of)g(pro)r(cesses)f(that)2010 981 y(ha)n(v)n(e)40 b(read)h(data)f(from)h(a)g(cryptographic)f(\014le)h(system.)2010 1080 y(The)34 b(en)n(umeration)g(of)g(suc)n(h)g(p)r(olicies)g(is)h(the) g(sub)5 b(ject)34 b(of)2010 1180 y(future)28 b(w)n(ork.)2010 1379 y(In)38 b(all)f(cases,)i(though,)h(the)f(decryption)e(is)g (completely)2010 1479 y(indep)r(enden)n(t)28 b(from)f(the)h(decision)f (to)g(encrypt.)37 b(F)-7 b(or)27 b(that)2010 1579 y(reason,)34 b(w)n(e)g(k)n(eep)g(a)g(bitmap)h(in)g(the)f(sw)n(ap)g(device)g(that) 2010 1678 y(indicates)f(for)g(eac)n(h)g(page)f(whether)i(it)g(needs)f (to)g(b)r(e)h(de-)2010 1778 y(crypted)c(after)g(it)h(has)f(b)r(een)h (read.)45 b(Th)n(us,)31 b(it)g(is)f(p)r(ossible)2010 1877 y(to)d(c)n(hange)e(the)i(encryption)f(p)r(olicy)h(during)f(the)h (run)n(time)2010 1977 y(of)39 b(the)h(system)f(without)g(a\013ecting)g (the)h(decryption)e(of)2010 2077 y(pages)i(that)h(ha)n(v)n(e)f(b)r(een) i(encrypted)f(while)g(a)g(di\013eren)n(t)2010 2176 y(p)r(olicy)27 b(w)n(as)g(in)h(e\013ect.)2010 2376 y(T)-7 b(o)37 b(ac)n(hiev)n(e)f(lo) n(w)n(er)g(upp)r(er)i(b)r(ounds)f(on)g(the)h(windo)n(w)f(of)2010 2475 y(vulnerabilit)n(y)29 b(\()p Ff(t)2561 2487 y Fe(R)2615 2475 y Fm(\),)i(w)n(e)e(divide)g(the)h(bac)n(king)e(store)g(in)n(to) 2010 2575 y(sections)38 b(of)h(512)f(KByte)2838 2545 y Fj(2)2875 2575 y Fm(,)k(and)d(giv)n(e)f(eac)n(h)g(section)h(its)2010 2674 y(o)n(wn)23 b(k)n(ey)-7 b(.)35 b(A)25 b(k)n(ey)e(consists)g(of)h (a)g(128-bit)e(encryption)i(k)n(ey)-7 b(,)2010 2774 y(a)33 b(reference)g(coun)n(ter)g(and)h(an)f(expiration)g(time.)55 b(F)-7 b(or)33 b(a)2010 2874 y(bac)n(king)26 b(store)g(of)i(256)e (MByte,)h(k)n(eys)f(o)r(ccup)n(y)h(14)g(KByte)2010 2973 y(of)h(memory)-7 b(.)2010 3173 y(A)22 b(section's)e(128-bit)g (cryptographic)f(k)n(ey)i(is)g(created)f(ran-)2010 3272 y(domly)32 b(the)g(\014rst)g(time)g(it)h(is)f(needed,)h(and)f(its)g (reference)2010 3372 y(coun)n(ter)k(is)h(set)g(to)g(0.)65 b(Eac)n(h)36 b(time)h(a)g(new)g(page)f(is)h(en-)2010 3471 y(crypted)27 b(with)h(it,)h(the)f(coun)n(ter)e(is)i(incremen)n (ted.)2010 3671 y(When)h(a)g(page)e(is)i(freed)f(on)h(the)g(bac)n(king) e(store,)h(the)i(ref-)2010 3770 y(erence)23 b(coun)n(ter)g(of)h(the)g (resp)r(ectiv)n(e)f(k)n(ey)h(is)f(decremen)n(ted.)2010 3870 y(A)42 b(k)n(ey)f(is)g(immediately)h(deleted)f(when)h(the)g (reference)2010 3970 y(coun)n(ter)36 b(reac)n(hes)g(0.)64 b(Th)n(us,)39 b(all)e(data)g(encrypted)g(with)2010 4069 y(that)g(k)n(ey)f(can)h(no)f(longer)g(b)r(e)h(decrypted)g(and)f(is)h (e\013ec-)2010 4169 y(tiv)n(ely)27 b(erased.)2010 4368 y(A)n(t)j(the)h(momen)n(t)f(the)h(\014rst)e(page)h(in)g(a)g(section)f (b)r(ecomes)2010 4468 y(unreferenced,)21 b(its)f(encryption)g(k)n(ey)f (is)h(set)g(to)g(expire)f(after)2010 4567 y(a)37 b(time)h(p)r(erio)r(d) g Ff(t)2587 4579 y Fe(R)2641 4567 y Fm(.)67 b(After)38 b Ff(t)2988 4579 y Fe(R)3080 4567 y Fm(has)f(b)r(een)h(reac)n(hed,)h (all)2010 4667 y(pages)23 b(that)h(reference)g(it)g(ha)n(v)n(e)f(to)h (b)r(e)h(re-encrypted)e(with)2010 4767 y(a)35 b(new)g(k)n(ey)-7 b(.)59 b(The)35 b(n)n(um)n(b)r(er)g(of)g(pages)f(that)h(need)h(to)f(b)r (e)2010 4866 y(pro)r(cessed)j(is)h(b)r(ounded)h(b)n(y)e(the)i(section)f (size,)i(so)e(that)2010 4966 y(the)28 b(additional)f(encryption)g(o)n (v)n(erhead)f(is)h(con\014gurable.)2010 5165 y(The)37 b(framew)n(ork)e(for)i(expiration)f(exists,)j(but)f(w)n(e)e(ha)n(v)n(e) 2010 5265 y(y)n(et)25 b(to)g(implemen)n(t)h(re-encryption.)35 b(Ho)n(w)n(ev)n(er,)24 b(once)h(this)2010 5364 y(has)i(b)r(een)i(done,) f(w)n(e)g(can)f(mak)n(e)g(stricter)h(guaran)n(tees)e(for)2010 5464 y(the)f(time)g(that)g(pages)f(remain)g(readable)g(on)g(the)h(bac)n (king)p 2010 5544 744 4 v 2102 5598 a Fi(2)2137 5621 y Fh(The)36 b(section)h(size)f(is)f(con\014gurable,)40 b(and)c(dep)r(ends)h(on)g(ho)n(w)2010 5700 y(m)n(uc)n(h)23 b(memory)f(is)h(a)n(v)l(ailable)h(for)f(cryptographic)i(k)n(eys.)p eop %%Page: 5 5 5 4 bop 0 383 a Fm(store.)0 582 y(Figure)46 b(2)g(describ)r(es)g(the)h (paging)f(pro)r(cess)f(in)i(sev)n(eral)0 682 y(steps,)33 b(and)f(sho)n(ws)f(where)h(encryption)g(and)g(decryption)0 782 y(tak)n(e)27 b(place:)60 1062 y(1.)41 b(A)28 b(user)f(pro)r(cess)f (references)h(memory)-7 b(.)60 1259 y(2.)41 b(If)31 b(the)g(referenced) f(address)g(has)g(a)g(v)-5 b(alid)31 b(mapping,)166 1358 y(the)e(data)e(is)h(accessed)f(from)h(the)g(mapp)r(ed)h(ph)n(ysical)166 1458 y(page.)60 1654 y(3.)41 b(If)c(the)g(referenced)e(address)g(has)h (an)g(in)n(v)-5 b(alid)37 b(map-)166 1754 y(ping,)28 b(a)f(page)g(fault)h(o)r(ccurs.)60 1950 y(4.)41 b(The)34 b(pager)f(reads)h(the)g(corresp)r(onding)f(page)g(from)166 2050 y(secondary)26 b(storage.)60 2246 y(5.)41 b(The)23 b(page)e(is)h(decrypted)h(if)g(its)f(en)n(try)g(in)h(the)g(bitmap)166 2346 y(indicates)k(that)h(it)g(is)g(encrypted.)60 2542 y(6.)41 b(Finally)-7 b(,)24 b(the)g(page)e(is)h(mapp)r(ed)g(in)n(to)g (ph)n(ysical)f(mem-)166 2642 y(ory)-7 b(,)27 b(and)g(the)h(page)f (fault)h(is)f(resolv)n(ed.)60 2838 y(7.)41 b(Con)n(v)n(ersely)-7 b(,)23 b(if)h(the)g(page)f(daemon)h(decides)f(to)h(evict)166 2937 y(a)j(page)g(from)g(ph)n(ysical)g(memory)-7 b(,)60 3134 y(8.)41 b(the)19 b(pager)e(encrypts)h(the)g(page)g(with)h(the)g (encryption)166 3233 y(k)n(ey)27 b(of)g(the)h(section)g(that)g(the)g (page)e(b)r(elongs)h(to.)201 3430 y(\(a\))42 b(If)f(the)h(section)f(do) r(es)g(not)h(ha)n(v)n(e)e(an)h(encryp-)349 3529 y(tion)32 b(k)n(ey)-7 b(,)34 b Fl(e.g.)53 b Fm(it)33 b(is)f(the)h(\014rst)f (encryption,)h(a)349 3629 y(v)n(olatile)e(encryption)g(k)n(ey)h(is)g (initialized)g(from)349 3729 y(the)c(k)n(ernel's)e(en)n(trop)n(y)h(p)r (o)r(ol.)60 3925 y(9.)41 b(Afterw)n(ards,)g(the)f(page)e(is)h(written)h (to)f(secondary)166 4024 y(storage.)0 4305 y(There)k(is)h(one)f(cen)n (tral)g(di\013erence)h(b)r(et)n(w)n(een)f(page)g(en-)0 4405 y(cryption)35 b(and)h(decryption.)61 b(P)n(ages)34 b(can)h(b)r(e)h(decrypted)0 4504 y(in)c(place)f(b)r(ecause)g (immediately)h(after)f(they)h(ha)n(v)n(e)f(b)r(een)0 4604 y(read)k(in)n(to)g(memory)-7 b(,)38 b(no)d(pro)r(cess)g(is)g(allo) n(w)n(ed)g(to)g(access)0 4704 y(these)25 b(pages)e(un)n(til)j(they)f (ha)n(v)n(e)e(b)r(een)i(decrypted.)36 b(On)25 b(the)0 4803 y(other)20 b(hand,)i(ev)n(en)f(after)f(a)g(page)g(has)g(b)r(een)i (sw)n(app)r(ed)e(out,)0 4903 y(a)26 b(pro)r(cess)e(ma)n(y)i(access)e (it)j(at)f(an)n(y)f(time.)37 b(This)26 b(precludes)0 5003 y(in-place)39 b(encryption.)70 b(Instead,)42 b(w)n(e)d(ha)n(v)n(e) f(to)h(allo)r(cate)0 5102 y(pages)c(in)n(to)g(whic)n(h)h(to)f(store)g (temp)r(orarily)g(the)h(encryp-)0 5202 y(tion)j(result,)j(placing)c (additional)g(pressure)g(on)g(the)i(al-)0 5301 y(ready)27 b(memory)f(limited)j(VM)f(system.)0 5501 y(The)i(v)n(olatile)f(k)n(eys) h(are)f(stored)g(in)h(an)g(unmanaged)g(part)0 5600 y(of)j(the)h(k)n (ernel)f(memory)-7 b(.)54 b(As)33 b(a)g(result,)i(they)f(are)e(nev)n (er)0 5700 y(paged)27 b(out.)2009 2029 y @beginspecial 0 @llx 0 @lly 459 @urx 420 @ury 2267 @rwi @setspecial %%BeginDocument: arch.ps %!PS-Adobe-2.0 EPSF-2.0 %%Title: arch.fig %%Creator: fig2dev Version 3.2 Patchlevel 1 %%CreationDate: Sun Jan 30 19:05:34 2000 %%For: root@warzenschwein (Charlie &) %%Orientation: Portrait %%BoundingBox: 0 0 459 420 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 1.0000 %%EndComments /MyAppDict 100 dict dup begin def /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def /col32 {0.557 0.557 0.557 srgb} bind def /col33 {0.255 0.271 0.255 srgb} bind def /col34 {0.557 0.557 0.557 srgb} bind def /col35 {0.557 0.557 0.557 srgb} bind def /col36 {0.557 0.557 0.557 srgb} bind def /col37 {0.255 0.271 0.255 srgb} bind def /col38 {0.557 0.557 0.557 srgb} bind def /col39 {0.255 0.271 0.255 srgb} bind def /col40 {0.557 0.557 0.557 srgb} bind def /col41 {0.255 0.271 0.255 srgb} bind def end save -117.0 509.0 translate 1 -1 scale .9 .9 scale % to make patterns same scale as in xfig % This junk string is used by the show operators /PATsstr 1 string def /PATawidthshow { % cx cy cchar rx ry string % Loop over each character in the string { % cx cy cchar rx ry char % Show the character dup % cx cy cchar rx ry char char PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char) false charpath % cx cy cchar rx ry char /clip load PATdraw % Move past the character (charpath modified the % current point) currentpoint % cx cy cchar rx ry char x y newpath moveto % cx cy cchar rx ry char % Reposition by cx,cy if the character in the string is cchar 3 index eq { % cx cy cchar rx ry 4 index 4 index rmoveto } if % Reposition all characters by rx ry 2 copy rmoveto % cx cy cchar rx ry } forall pop pop pop pop pop % - currentpoint newpath moveto } bind def /PATcg { 7 dict dup begin /lw currentlinewidth def /lc currentlinecap def /lj currentlinejoin def /ml currentmiterlimit def /ds [ currentdash ] def /cc [ currentrgbcolor ] def /cm matrix currentmatrix def end } bind def % PATdraw - calculates the boundaries of the object and % fills it with the current pattern /PATdraw { % proc save exch PATpcalc % proc nw nh px py 5 -1 roll exec % nw nh px py newpath PATfill % - restore } bind def % PATfill - performs the tiling for the shape /PATfill { % nw nh px py PATfill - PATDict /CurrentPattern get dup begin setfont % Set the coordinate system to Pattern Space PatternGState PATsg % Set the color for uncolored pattezns PaintType 2 eq { PATDict /PColor get PATsc } if % Create the string for showing 3 index string % nw nh px py str % Loop for each of the pattern sources 0 1 Multi 1 sub { % nw nh px py str source % Move to the starting location 3 index 3 index % nw nh px py str source px py moveto % nw nh px py str source % For multiple sources, set the appropriate color Multi 1 ne { dup PC exch get PATsc } if % Set the appropriate string for the source 0 1 7 index 1 sub { 2 index exch 2 index put } for pop % Loop over the number of vertical cells 3 index % nw nh px py str nh { % nw nh px py str currentpoint % nw nh px py str cx cy 2 index show % nw nh px py str cx cy YStep add moveto % nw nh px py str } repeat % nw nh px py str } for 5 { pop } repeat end } bind def % PATkshow - kshow with the current pattezn /PATkshow { % proc string exch bind % string proc 1 index 0 get % string proc char % Loop over all but the last character in the string 0 1 4 index length 2 sub { % string proc char idx % Find the n+1th character in the string 3 index exch 1 add get % string proe char char+1 exch 2 copy % strinq proc char+1 char char+1 char % Now show the nth character PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr) false charpath % string proc char+1 char char+1 /clip load PATdraw % Move past the character (charpath modified the current point) currentpoint newpath moveto % Execute the user proc (should consume char and char+1) mark 3 1 roll % string proc char+1 mark char char+1 4 index exec % string proc char+1 mark... cleartomark % string proc char+1 } for % Now display the last character PATsstr dup 0 4 -1 roll put % string proc (char+1) false charpath % string proc /clip load PATdraw neewath pop pop % - } bind def % PATmp - the makepattern equivalent /PATmp { % patdict patmtx PATmp patinstance exch dup length 7 add % We will add 6 new entries plus 1 FID dict copy % Create a new dictionary begin % Matrix to install when painting the pattern TilingType PATtcalc /PatternGState PATcg def PatternGState /cm 3 -1 roll put % Check for multi pattern sources (Level 1 fast color patterns) currentdict /Multi known not { /Multi 1 def } if % Font dictionary definitions /FontType 3 def % Create a dummy encoding vector /Encoding 256 array def 3 string 0 1 255 { Encoding exch dup 3 index cvs cvn put } for pop /FontMatrix matrix def /FontBBox BBox def /BuildChar { mark 3 1 roll % mark dict char exch begin Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata] PaintType 2 eq Multi 1 ne or { XStep 0 FontBBox aload pop setcachedevice } { XStep 0 setcharwidth } ifelse currentdict % mark [paintdata] dict /PaintProc load % mark [paintdata] dict paintproc end gsave false PATredef exec true PATredef grestore cleartomark % - } bind def currentdict end % newdict /foo exch % /foo newlict definefont % newfont } bind def % PATpcalc - calculates the starting point and width/height % of the tile fill for the shape /PATpcalc { % - PATpcalc nw nh px py PATDict /CurrentPattern get begin gsave % Set up the coordinate system to Pattern Space % and lock down pattern PatternGState /cm get setmatrix BBox aload pop pop pop translate % Determine the bounding box of the shape pathbbox % llx lly urx ury grestore % Determine (nw, nh) the # of cells to paint width and height PatHeight div ceiling % llx lly urx qh 4 1 roll % qh llx lly urx PatWidth div ceiling % qh llx lly qw 4 1 roll % qw qh llx lly PatHeight div floor % qw qh llx ph 4 1 roll % ph qw qh llx PatWidth div floor % ph qw qh pw 4 1 roll % pw ph qw qh 2 index sub cvi abs % pw ph qs qh-ph exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph % Determine the starting point of the pattern fill %(px, py) 4 2 roll % nw nh pw ph PatHeight mul % nw nh pw py exch % nw nh py pw PatWidth mul exch % nw nh px py end } bind def % Save the original routines so that we can use them later on /oldfill /fill load def /oldeofill /eofill load def /oldstroke /stroke load def /oldshow /show load def /oldashow /ashow load def /oldwidthshow /widthshow load def /oldawidthshow /awidthshow load def /oldkshow /kshow load def % These defs are necessary so that subsequent procs don't bind in % the originals /fill { oldfill } bind def /eofill { oldeofill } bind def /stroke { oldstroke } bind def /show { oldshow } bind def /ashow { oldashow } bind def /widthshow { oldwidthshow } bind def /awidthshow { oldawidthshow } bind def /kshow { oldkshow } bind def /PATredef { MyAppDict begin { /fill { /clip load PATdraw newpath } bind def /eofill { /eoclip load PATdraw newpath } bind def /stroke { PATstroke } bind def /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def /ashow { 0 0 null 6 3 roll PATawidthshow } bind def /widthshow { 0 0 3 -1 roll PATawidthshow } bind def /awidthshow { PATawidthshow } bind def /kshow { PATkshow } bind def } { /fill { oldfill } bind def /eofill { oldeofill } bind def /stroke { oldstroke } bind def /show { oldshow } bind def /ashow { oldashow } bind def /widthshow { oldwidthshow } bind def /awidthshow { oldawidthshow } bind def /kshow { oldkshow } bind def } ifelse end } bind def false PATredef % Conditionally define setcmykcolor if not available /setcmykcolor where { pop } { /setcmykcolor { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat setrgbcolor - pop } bind def } ifelse /PATsc { % colorarray aload length % c1 ... cn length dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor } ifelse } ifelse } bind def /PATsg { % dict begin lw setlinewidth lc setlinecap lj setlinejoin ml setmiterlimit ds aload pop setdash cc aload pop setrgbcolor cm setmatrix end } bind def /PATDict 3 dict def /PATsp { true PATredef PATDict begin /CurrentPattern exch def % If it's an uncolored pattern, save the color CurrentPattern /PaintType get 2 eq { /PColor exch def } if /CColor [ currentrgbcolor ] def end } bind def % PATstroke - stroke with the current pattern /PATstroke { countdictstack save mark { currentpoint strokepath moveto PATpcalc % proc nw nh px py clip newpath PATfill } stopped { (*** PATstroke Warning: Path is too complex, stroking with gray) = cleartomark restore countdictstack exch sub dup 0 gt { { end } repeat } { pop } ifelse gsave 0.5 setgray oldstroke grestore } { pop restore pop } ifelse newpath } bind def /PATtcalc { % modmtx tilingtype PATtcalc tilematrix % Note: tiling types 2 and 3 are not supported gsave exch concat % tilingtype matrix currentmatrix exch % cmtx tilingtype % Tiling type 1 and 3: constant spacing 2 ne { % Distort the pattern so that it occupies % an integral number of device pixels dup 4 get exch dup 5 get exch % tx ty cmtx XStep 0 dtransform round exch round exch % tx ty cmtx dx.x dx.y XStep div exch XStep div exch % tx ty cmtx a b 0 YStep dtransform round exch round exch % tx ty cmtx a b dy.x dy.y YStep div exch YStep div exch % tx ty cmtx a b c d 7 -3 roll astore % { a b c d tx ty } } if grestore } bind def /PATusp { false PATredef PATDict begin CColor PATsc end } bind def % right45 11 dict begin /PaintType 1 def /PatternType 1 def /TilingType 1 def /BBox [0 0 1 1] def /XStep 1 def /YStep 1 def /PatWidth 1 def /PatHeight 1 def /Multi 2 def /PaintData [ { clippath } bind { 32 32 true [ 32 0 0 -32 0 32 ] {<010101010202020204040404080808081010101020202020 404040408080808001010101020202020404040408080808 101010102020202040404040808080800101010102020202 040404040808080810101010202020204040404080808080 010101010202020204040404080808081010101020202020 4040404080808080>} imagemask } bind ] def /PaintProc { pop exec fill } def currentdict end /P5 exch def 1.1111 1.1111 scale %restore scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 9467 m -1000 -1000 l 10584 -1000 l 10584 9467 l cp clip 0.06000 0.06000 sc /Times-Roman ff 240.00 scf sf 7200 3450 m gs 1 -1 sc (Pool) col0 sh gr % Polyline 7.500 slw n 8325 1800 m 8925 1800 l 8925 2100 l 8325 2100 l cp gs col0 s gr % Polyline n 8325 2100 m 8925 2100 l 8925 2400 l 8325 2400 l cp gs col0 s gr % Polyline n 8325 2400 m 8925 2400 l 8925 2700 l 8325 2700 l cp gs col0 s gr % Polyline n 8325 2700 m 8925 2700 l 8925 3000 l 8325 3000 l cp gs col0 s gr % Polyline n 8325 3000 m 8925 3000 l 8925 3300 l 8325 3300 l cp gs col0 s gr % Polyline n 8325 3300 m 8925 3300 l 8925 3600 l 8325 3600 l cp gs col0 s gr % Polyline n 8325 3600 m 8925 3600 l 8925 3900 l 8325 3900 l cp gs col0 s gr % Polyline n 8325 3900 m 8925 3900 l 8925 4200 l 8325 4200 l cp gs col0 s gr % Polyline n 8325 4200 m 8925 4200 l 8925 4500 l 8325 4500 l cp gs col0 s gr % Polyline n 8325 4500 m 8925 4500 l 8925 4800 l 8325 4800 l cp gs col0 s gr % Polyline n 8325 4800 m 8925 4800 l 8925 5100 l 8325 5100 l cp gs col0 s gr % Polyline n 8325 5100 m 8925 5100 l 8925 5400 l 8325 5400 l cp gs col0 s gr % Polyline n 8325 5400 m 8925 5400 l 8925 5700 l 8325 5700 l cp gs col0 s gr /Times-Roman ff 240.00 scf sf 7800 6150 m gs 1 -1 sc (Physical Memory) col0 sh gr % Polyline gs clippath 7395 4980 m 7275 4950 l 7395 4920 l 7260 4920 l 7260 4980 l cp clip n 7575 4950 m 7275 4950 l gs col0 s gr gr % arrowhead n 7395 4980 m 7275 4950 l 7395 4920 l col0 s % Polyline n 6300 4800 m 7275 4800 l 7275 5100 l 6300 5100 l cp gs col0 s gr /Times-Roman ff 240.00 scf sf 6450 5025 m gs 1 -1 sc (encrypt) col0 sh gr % Ellipse n 5250 6675 750 225 0 360 DrawEllipse gs col0 s gr % Ellipse n 5250 7875 750 225 0 360 DrawEllipse gs col0 s gr % Polyline n 4605 2400 m 4500 2400 4500 2895 105 arcto 4 {pop} repeat 4500 3000 5895 3000 105 arcto 4 {pop} repeat 6000 3000 6000 2505 105 arcto 4 {pop} repeat 6000 2400 4605 2400 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 2700 1500 m 3300 1500 l 3300 5700 l 2700 5700 l cp gs col0 s gr % Polyline n 2700 1800 m 3300 1800 l gs col0 s gr % Polyline n 2700 2100 m 3300 2100 l gs col0 s gr % Polyline n 2700 2400 m 3300 2400 l gs col0 s gr % Polyline n 2700 2700 m 2850 2700 l 3000 2700 l 3150 2700 l 3300 2700 l gs col0 s gr % Polyline n 2700 3000 m 3300 3000 l gs col0 s gr % Polyline n 2700 3300 m 3300 3300 l gs col0 s gr % Polyline n 2700 3600 m 3300 3600 l gs col0 s gr % Polyline n 2700 3900 m 2850 3900 l 3000 3900 l 3150 3900 l 3300 3900 l gs col0 s gr % Polyline n 2700 4200 m 3300 4200 l gs col0 s gr % Polyline n 2700 4500 m 3300 4500 l gs col0 s gr % Polyline n 2700 4800 m 3300 4800 l gs col0 s gr % Polyline n 2700 5100 m 3300 5100 l gs col0 s gr % Polyline n 2700 5400 m 3300 5400 l gs col0 s gr % Polyline gs clippath 4398 2770 m 4500 2700 l 4443 2810 l 4532 2709 l 4488 2669 l cp clip n 3300 4050 m 4500 2700 l gs col0 s gr gr % arrowhead n 4398 2770 m 4500 2700 l 4443 2810 l col0 s % Polyline gs clippath 8202 1959 m 8325 1950 l 8221 2016 l 8349 1974 l 8330 1917 l cp clip n 6075 2700 m 8325 1950 l gs col0 s gr gr % arrowhead n 8202 1959 m 8325 1950 l 8221 2016 l col0 s % Polyline n 4605 3750 m 4500 3750 4500 5445 105 arcto 4 {pop} repeat 4500 5550 5895 5550 105 arcto 4 {pop} repeat 6000 5550 6000 3855 105 arcto 4 {pop} repeat 6000 3750 4605 3750 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 5996 5550 m 6004 5550 l gs col0 s gr % Polyline gs clippath 5130 3705 m 5100 3825 l 5070 3705 l 5070 3840 l 5130 3840 l cp clip n 5100 3000 m 5100 3825 l gs col0 s gr gr % arrowhead n 5130 3705 m 5100 3825 l 5070 3705 l col0 s % Polyline gs clippath 7395 4080 m 7275 4050 l 7395 4020 l 7260 4020 l 7260 4080 l cp clip n 7575 4050 m 7275 4050 l gs col0 s gr gr % arrowhead n 7395 4080 m 7275 4050 l 7395 4020 l col0 s % Polyline n 6300 3900 m 7275 3900 l 7275 4200 l 6300 4200 l cp gs col0 s gr % Polyline gs clippath 6180 3945 m 6300 3975 l 6180 4005 l 6315 4005 l 6315 3945 l cp clip n 5925 3975 m 6300 3975 l gs col0 s gr gr % arrowhead n 6180 3945 m 6300 3975 l 6180 4005 l col0 s % Polyline gs clippath 6045 4155 m 5925 4125 l 6045 4095 l 5910 4095 l 5910 4155 l cp clip n 6300 4125 m 5925 4125 l gs col0 s gr gr % arrowhead n 6045 4155 m 5925 4125 l 6045 4095 l col0 s % Polyline gs clippath 6180 4845 m 6300 4875 l 6180 4905 l 6315 4905 l 6315 4845 l cp clip n 5925 4875 m 6300 4875 l gs col0 s gr gr % arrowhead n 6180 4845 m 6300 4875 l 6180 4905 l col0 s % Polyline gs clippath 6045 5055 m 5925 5025 l 6045 4995 l 5910 4995 l 5910 5055 l cp clip n 6300 5025 m 5925 5025 l gs col0 s gr gr % arrowhead n 6045 5055 m 5925 5025 l 6045 4995 l col0 s % Polyline [60] 0 sd n 4575 3825 m 5925 3825 l 5925 4650 l 4575 4650 l cp gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 4575 4725 m 5925 4725 l 5925 5475 l 4575 5475 l cp gs col0 s gr [] 0 sd % Polyline gs clippath 6042 5366 m 5925 5325 l 6047 5306 l 5913 5294 l 5907 5353 l cp clip n 8325 5550 m 5925 5325 l gs col0 s gr gr % arrowhead n 6042 5366 m 5925 5325 l 6047 5306 l col0 s % Polyline gs clippath 8216 1708 m 8325 1650 l 8256 1753 l 8356 1662 l 8316 1618 l cp clip n 5925 3825 m 8325 1650 l gs col0 s gr gr % arrowhead n 8216 1708 m 8325 1650 l 8256 1753 l col0 s % Polyline gs clippath 7755 3705 m 7725 3825 l 7695 3705 l 7695 3840 l 7755 3840 l cp clip n 7725 3525 m 7725 3825 l gs col0 s gr gr % arrowhead n 7755 3705 m 7725 3825 l 7695 3705 l col0 s % Polyline n 4500 6675 m 4500 7875 l gs col0 s gr % Polyline n 6000 6675 m 6000 7875 l gs col0 s gr % Polyline n 5100 7200 m 5250 7200 l 5250 7500 l 5100 7500 l cp gs col7 0.70 shd ef gr gs col0 s gr % Polyline n 4800 7575 m 4950 7575 l 4950 7875 l 4800 7875 l cp gs col7 0.70 shd ef gr gs col0 s gr % Polyline n 5400 7575 m 5550 7575 l 5550 7875 l 5400 7875 l cp gs col7 0.70 shd ef gr gs col0 s gr % Polyline n 4800 7050 m 4950 7050 l 4950 7350 l 4800 7350 l cp gs col7 0.70 shd ef gr gs col0 s gr % Polyline n 6405 3825 m 6300 3825 6300 5070 105 arcto 4 {pop} repeat 6300 5175 7995 5175 105 arcto 4 {pop} repeat 8100 5175 8100 3930 105 arcto 4 {pop} repeat 8100 3825 6405 3825 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 7575 3825 m 7950 3825 l 7950 5175 l 7575 5175 l cp gs col0 s gr % Polyline n 2700 3900 m 3300 3900 l 3300 4200 l 2700 4200 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def 15.00 15.00 sc P5 [16 0 0 -16 180.00 260.00] PATmp PATsp ef gr PATusp gs col0 s gr % Polyline n 8325 1500 m 8925 1500 l 8925 1800 l 8325 1800 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def 15.00 15.00 sc P5 [16 0 0 -16 555.00 100.00] PATmp PATsp ef gr PATusp gs col0 s gr % Polyline n 8325 1800 m 8925 1800 l 8925 2100 l 8325 2100 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def 15.00 15.00 sc P5 [16 0 0 -16 555.00 120.00] PATmp PATsp ef gr PATusp gs col0 s gr % Polyline n 8325 5400 m 8925 5400 l 8925 5700 l 8325 5700 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def 15.00 15.00 sc P5 [16 0 0 -16 555.00 360.00] PATmp PATsp ef gr PATusp gs col0 s gr % Polyline n 7005 3000 m 6900 3000 6900 3420 105 arcto 4 {pop} repeat 6900 3525 7995 3525 105 arcto 4 {pop} repeat 8100 3525 8100 3105 105 arcto 4 {pop} repeat 8100 3000 7005 3000 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline [60] 0 sd gs clippath 4490 4290 m 4575 4200 l 4543 4319 l 4609 4202 l 4556 4172 l cp clip n 4800 7200 m 4799 7198 l 4796 7194 l 4792 7187 l 4785 7175 l 4774 7159 l 4761 7138 l 4745 7112 l 4727 7081 l 4706 7047 l 4683 7008 l 4658 6967 l 4633 6924 l 4607 6880 l 4581 6835 l 4556 6791 l 4531 6746 l 4508 6703 l 4485 6661 l 4464 6621 l 4444 6581 l 4426 6543 l 4408 6506 l 4392 6471 l 4378 6436 l 4364 6402 l 4351 6368 l 4339 6334 l 4328 6301 l 4318 6268 l 4309 6234 l 4300 6200 l 4292 6167 l 4285 6134 l 4278 6100 l 4271 6066 l 4265 6031 l 4259 5995 l 4254 5958 l 4249 5920 l 4244 5882 l 4240 5843 l 4236 5803 l 4233 5763 l 4230 5722 l 4227 5681 l 4225 5640 l 4224 5598 l 4223 5557 l 4222 5516 l 4222 5475 l 4222 5434 l 4222 5394 l 4223 5354 l 4225 5316 l 4227 5278 l 4229 5241 l 4231 5204 l 4234 5169 l 4237 5135 l 4241 5102 l 4245 5070 l 4249 5038 l 4253 5008 l 4258 4979 l 4263 4950 l 4269 4916 l 4276 4883 l 4283 4851 l 4291 4819 l 4300 4788 l 4310 4757 l 4320 4726 l 4332 4694 l 4344 4661 l 4358 4628 l 4372 4594 l 4388 4559 l 4405 4524 l 4422 4487 l 4440 4451 l 4459 4415 l 4477 4379 l 4495 4345 l 4512 4314 l 4527 4285 l 4541 4261 l 4552 4240 l 4561 4225 l 4575 4200 l gs col0 s gr gr [] 0 sd % arrowhead n 4490 4290 m 4575 4200 l 4543 4319 l col0 s % Polyline [60] 0 sd gs clippath 4718 7632 m 4800 7725 l 4684 7681 l 4795 7758 l 4829 7709 l cp clip n 4575 5100 m 4573 5102 l 4569 5105 l 4562 5111 l 4552 5121 l 4537 5134 l 4519 5152 l 4498 5172 l 4474 5196 l 4448 5222 l 4422 5251 l 4396 5280 l 4370 5311 l 4345 5342 l 4322 5373 l 4301 5404 l 4282 5435 l 4264 5466 l 4249 5498 l 4235 5530 l 4224 5563 l 4213 5597 l 4205 5633 l 4198 5670 l 4192 5709 l 4188 5750 l 4185 5779 l 4183 5810 l 4182 5842 l 4181 5874 l 4180 5908 l 4180 5943 l 4181 5980 l 4182 6017 l 4183 6056 l 4185 6095 l 4187 6136 l 4190 6177 l 4193 6219 l 4197 6262 l 4201 6306 l 4206 6350 l 4211 6395 l 4217 6439 l 4223 6484 l 4229 6529 l 4235 6573 l 4242 6617 l 4249 6661 l 4257 6704 l 4264 6747 l 4272 6788 l 4280 6829 l 4288 6869 l 4297 6907 l 4305 6945 l 4313 6981 l 4322 7016 l 4331 7050 l 4339 7082 l 4348 7113 l 4357 7143 l 4366 7172 l 4375 7200 l 4389 7242 l 4404 7280 l 4420 7317 l 4436 7351 l 4453 7383 l 4471 7413 l 4490 7442 l 4511 7470 l 4533 7497 l 4557 7524 l 4582 7550 l 4608 7575 l 4635 7600 l 4663 7623 l 4690 7645 l 4715 7665 l 4738 7682 l 4758 7696 l 4774 7707 l 4800 7725 l gs col0 s gr gr [] 0 sd % arrowhead n 4718 7632 m 4800 7725 l 4684 7681 l col0 s /Times-Roman ff 240.00 scf sf 1950 6150 m gs 1 -1 sc (Virtual Address Space) col0 sh gr /Times-Roman ff 240.00 scf sf 4875 2775 m gs 1 -1 sc (Mapper) col0 sh gr /Times-Roman ff 240.00 scf sf 4800 5175 m gs 1 -1 sc (Page Out) col0 sh gr /Times-Roman ff 240.00 scf sf 4800 4350 m gs 1 -1 sc (Page In) col0 sh gr /Times-Roman ff 240.00 scf sf 4950 5850 m gs 1 -1 sc (Pager) col0 sh gr /Times-Roman ff 240.00 scf sf 6450 4125 m gs 1 -1 sc (decrypt) col0 sh gr /Times-Roman ff 240.00 scf sf 5175 3375 m gs 1 -1 sc (not resident) col0 sh gr /Times-Roman ff 240.00 scf sf 6600 2175 m gs 1 -1 sc (resident) col0 sh gr /Times-Roman ff 270.00 scf sf 4650 2100 m gs 1 -1 sc (VM System) col0 sh gr /Times-Roman ff 240.00 scf sf 4350 8400 m gs 1 -1 sc (Secondary Storage) col0 sh gr /Times-Roman ff 240.00 scf sf 7800 5100 m gs 1 -1 sc 90.0 rot (volatile key) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 3750 3375 m gs 1 -1 sc (1) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 6525 2475 m gs 1 -1 sc (2) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 4950 3450 m gs 1 -1 sc (3) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 4125 5100 m gs 1 -1 sc (4) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 6150 3900 m gs 1 -1 sc (5) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 6900 2850 m gs 1 -1 sc (6) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 7050 5700 m gs 1 -1 sc (7) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 4050 6525 m gs 1 -1 sc (9) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 7800 3750 m gs 1 -1 sc (8a) col0 sh gr /Helvetica-Bold ff 180.00 scf sf 6150 4800 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 7050 3225 m gs 1 -1 sc (Entropy) col0 sh gr % Polyline n 8325 1500 m 8925 1500 l 8925 1800 l 8325 1800 l cp gs col0 s gr $F2psEnd rs end %%EndDocument @endspecial 2010 2204 a Fl(Figur)l(e)j(2:)39 b Fd(A)n(n)28 b(overview)g(of)g(the)g(swap)g(encryption)h(pr)l(o)l(c)l(ess.)2010 2464 y Fk(4.1)105 b(Cipher)35 b(Selection)2010 2760 y Fm(T)-7 b(o)31 b(b)r(e)g(suitable)g(for)g(sw)n(ap)f(encryption,)i(a)e (cipher)h(needs)2010 2860 y(to)c(ful\014ll)i(at)e(least)h(three)f(imp)r (ortan)n(t)g(criteria:)2093 3120 y Fg(\017)41 b Fm(Encryption)19 b(and)g(decryption)g(need)h(to)f(b)r(e)h(fast)g(com-)2176 3220 y(pared)27 b(to)h(disk)g(I/O,)g(so)f(that)h(the)h(encryption)e(do) r(es)2176 3319 y(not)e(b)r(ecome)h(the)f(limiting)h(factor)f(in)g(the)h (sw)n(apping)2176 3419 y(pro)r(cess.)2093 3582 y Fg(\017)41 b Fm(The)60 b(generation)f(of)h(a)g(cipher's)g(k)n(ey)f(sc)n(hedule) 2176 3682 y(should)29 b(b)r(e)h(inexp)r(ensiv)n(e)f(compared)f(to)i (encrypting)2176 3782 y(a)d(page,)f(so)g(that)h(c)n(hanging)f(the)h(k)n (ey)g(sc)n(hedule)f(do)r(es)2176 3881 y(not)31 b(a\013ect)g(p)r (erformance.)45 b(The)30 b(k)n(ey)g(sc)n(hedule)h(of)f(a)2176 3981 y(cipher)25 b(is)f(usually)h(larger)d(than)j(its)g(encryption)g(k) n(ey)-7 b(.)2176 4080 y(T)g(o)29 b(conserv)n(e)f(system)i(memory)f(w)n (e)g(should)g(recom-)2176 4180 y(pute)34 b(it)h(ev)n(ery)d(time)j(w)n (e)e(switc)n(h)h(encryption)f(k)n(eys,)2176 4280 y Fl(e.g.)j Fm(the)22 b(encryption)f(k)n(ey)g(c)n(hanges)g(when)h(pages)e(are)2176 4379 y(written)28 b(to)f(di\013eren)n(t)h(sections.)2093 4543 y Fg(\017)41 b Fm(The)32 b(cipher)g(has)g(to)g(supp)r(ort)g (encryption)f(and)h(de-)2176 4642 y(cryption)25 b(on)h(a)f(page)g(b)n (y)g(page)g(basis,)g(since)h(page)f(in)2176 4742 y(and)c(page)f(out)h (are)f(not)h(sequen)n(tial.)34 b(This)21 b(precludes)2176 4842 y(the)28 b(use)f(of)h(a)f(stream)g(cipher.)2010 5102 y(Initially)-7 b(,)50 b(w)n(e)45 b(planned)h(to)g(emplo)n(y)e(Sc)n (hneier's)h(Blo)n(w-)2010 5202 y(\014sh)34 b(encryption)g(algorithm)f ([23)o(].)56 b(Its)35 b(soft)n(w)n(are)d(imple-)2010 5301 y(men)n(tation)k(is)g(v)n(ery)f(fast,)k(and)d(it)h(has)e(b)r(een)i (in)f(use)h(for)2010 5401 y(sev)n(eral)d(y)n(ears)g(without)i(an)n(y)f (apparen)n(t)g(securit)n(y)g(\015a)n(ws.)2010 5501 y(Nonetheless,)52 b(Blo)n(w\014sh)47 b(has)f(one)h(critical)g(dra)n(wbac)n(k.)2010 5600 y(The)29 b(computation)f(of)h(its)g(k)n(ey)f(sc)n(hedule)g(is)h(v) n(ery)e(exp)r(en-)2010 5700 y(siv)n(e,)36 b(and)g(requires)d(more)i (than)g(4)g(KByte)g(of)g(memory)-7 b(.)p eop %%Page: 6 6 6 5 bop 0 383 a Fm(F)-7 b(or)31 b(that)g(reason,)g(computing)g(the)g(k) n(ey)g(sc)n(hedule)g(when)0 483 y(it)25 b(is)f(needed)g(is)g(to)r(o)g (exp)r(ensiv)n(e,)h(and)f(precomputation)f(is)0 582 y(not)28 b(p)r(ossible)f(due)h(to)f(large)f(memory)h(requiremen)n(ts.)0 782 y(Based)g(on)g(our)g(en)n(vironmen)n(tal)f(constrain)n(ts,)g(the)i (cipher)0 881 y(that)e(matc)n(hes)g(our)f(needs)h(the)g(b)r(est)g(is)g (Rijndael)h([8)o(].)37 b(W)-7 b(e)0 981 y(describ)r(e)27 b(it)h(in)g(the)g(next)g(section.)0 1269 y Fk(4.2)105 b(Rijndael)0 1558 y Fm(Rijndael)32 b(is)g(one)f(of)h(the)g(\014nalists) g(in)g(the)g(adv)-5 b(anced)31 b(en-)0 1658 y(cryption)f(standard)g (\(AES\))h(comp)r(etition.)47 b(It)31 b(is)g(a)f(v)-5 b(ari-)0 1757 y(able)39 b(blo)r(c)n(k)g(and)h(k)n(ey)f(length)g (cipher.)73 b(In)40 b(con)n(trast)e(to)0 1857 y(man)n(y)27 b(other)g(blo)r(c)n(k)f(ciphers,)h(its)h(round)f(transformation)0 1956 y(do)r(es)39 b(not)h(ha)n(v)n(e)e(the)i(F)-7 b(eistel)40 b(structure.)72 b(Instead,)43 b(the)0 2056 y(round)37 b(transformation)f(is)i(comp)r(osed)f(of)h(distinct)g(la)n(y-)0 2156 y(ers:)g(a)28 b(linear)g(mixing)h(la)n(y)n(er,)e(a)h(non-linear)g (la)n(y)n(er,)f(and)h(a)0 2255 y(k)n(ey)21 b(addition)g(la)n(y)n(er.)33 b(Rijndael's)22 b(design)f(tries)g(to)g(ac)n(hiev)n(e)0 2355 y(resistance)f(against)h(all)g(kno)n(wn)g(attac)n(ks)g(while)h (main)n(tain-)0 2455 y(ing)27 b(simplicit)n(y)h([8].)0 2654 y(Compared)k(to)g(Blo)n(w\014sh,)i(Rijndael)f(is)f(faster)h(in)g (all)f(as-)0 2754 y(p)r(ects,)25 b(but)f(less)e(studied)i([12)o(].)36 b(W)-7 b(e)24 b(decided)f(to)g(use)h(Rijn-)0 2853 y(dael)g(with)h (128-bit)d(blo)r(c)n(ks)i(and)g(128-bit)f(k)n(eys.)35 b(With)25 b(the)0 2953 y(optimized)32 b(C)g(implemen)n(tation)g(b)n(y)f (Gladman)h([13)o(],)h(the)0 3052 y(encryption)22 b(k)n(ey)g(sc)n (hedule)h(can)f(b)r(e)h(computed)g(in)g(305)f(cy-)0 3152 y(cles)27 b(on)f(a)h(P)n(en)n(tium)g(Pro;)e(the)j(decryption)e(k)n(ey)g (sc)n(hedule)0 3252 y(costs)i(1398)f(cycles.)39 b(A)29 b(blo)r(c)n(k)f(can)g(b)r(e)h(encrypted)g(in)f(374)0 3351 y(cycles,)f(and)g(blo)r(c)n(k)h(decryption)f(tak)n(es)f(352)g (cycles.)0 3551 y(Ho)n(w)n(ev)n(er,)33 b(b)r(ecause)g(all)g(encryption) g(and)g(decryption)g(is)0 3650 y(done)25 b(on)g(4)g(KByte)g(units,)h (the)g(cost)f(of)g(the)h(k)n(ey)e(sc)n(hedule)0 3750 y(computation)41 b(is)g(amortized.)77 b(Therefore,)44 b(ev)n(en)d(if)g(w)n(e)0 3849 y(c)n(hange)27 b(the)h(k)n(ey)f(sc)n (hedule)h(ev)n(ery)f(time,)h(the)h(encryption)0 3949 y(cost)18 b(is)h(only)g(375)e(cycles)h(on)h(a)n(v)n(erage,)f(and)g(for) h(decryption)0 4049 y(it)28 b(is)g(357)e(cycles.)0 4248 y(Normally)-7 b(,)50 b(the)c(o)n(v)n(erall)e(p)r(erformance)h(of)h(an)g (encryp-)0 4348 y(tion)33 b(algorithm)f(is)g(in\015uenced)h(b)n(y)g(w)n (ord)f(con)n(v)n(ersion)e(to)0 4447 y(accommo)r(date)43 b(little)i(and)f(big)g(endian)g(arc)n(hitectures.)0 4547 y(Ho)n(w)n(ev)n(er,)37 b(b)r(ecause)f(encryption)g(and)g(decryption)g (hap-)0 4646 y(p)r(en)k(on)f(the)h(same)f(mac)n(hine,)k(the)c(w)n(ord)g (order)f(of)i(the)0 4746 y(algorithm's)34 b(output)j(is)e(not)h(relev) -5 b(an)n(t,)37 b(and)e(w)n(e)h(do)f(not)0 4846 y(need)28 b(to)f(tak)n(e)g(endianness)g(in)n(to)g(consideration.)0 5045 y(W)-7 b(e)45 b(use)g(Rijndael)h(in)f(cipher-blo)r(c)n(k)f(c)n (haining)g(\(CBC\))0 5145 y(mo)r(de.)35 b(The)24 b(CBC)e(mo)r(de)i(of)f (op)r(eration)f(in)n(v)n(olv)n(es)f(the)i(use)0 5244 y(of)i(a)f(128-bit)g(initialization)g(v)n(ector.)35 b(Iden)n(tical)24 b(plain)n(text)0 5344 y(blo)r(c)n(ks)32 b(encrypted)g(under)g(the)h (same)f(k)n(ey)g(but)h(di\013eren)n(t)0 5443 y Ff(I)7 b(V)19 b Fm(s,)i(pro)r(duce)e(di\013eren)n(t)g(cipher)g(blo)r(c)n(ks.) 34 b(With)20 b Ff(c)1579 5455 y Fj(0)1639 5443 y Fm(=)j Ff(I)7 b(V)19 b Fm(,)0 5543 y(the)28 b(result)f(of)h(the)g(encryption)f (is)g(de\014ned)h(as)574 5700 y Ff(c)610 5712 y Fe(i)660 5700 y Fm(=)23 b Ff(E)809 5712 y Fe(K)873 5700 y Fm(\()p Ff(c)941 5712 y Fe(i)p Fc(\000)p Fj(1)1073 5700 y Fg(\010)18 b Ff(x)1203 5712 y Fe(i)1231 5700 y Fm(\))p Ff(;)2010 383 y Fm(where)25 b(the)g Ff(x)2435 395 y Fe(i)2489 383 y Fm(are)f(the)i(plain)n(text)f(and)g Ff(c)3309 395 y Fe(i)3362 383 y Fm(the)h(ciphertext)2010 483 y(blo)r(c)n(ks.)36 b(The)28 b(decryption)f(is)g(similar)2569 666 y Ff(x)2616 678 y Fe(i)2667 666 y Fm(=)c Ff(c)2791 678 y Fe(i)p Fc(\000)p Fj(1)2922 666 y Fg(\010)18 b Ff(E)3071 630 y Fc(\000)p Fj(1)3066 690 y Fe(K)3160 666 y Fm(\()p Ff(c)3228 678 y Fe(i)3256 666 y Fm(\))p Ff(:)2010 948 y Fm(F)-7 b(or)35 b(sw)n(ap)g(encryption,)j(the)e(initial)g(128-bit)f Ff(I)7 b(V)55 b Fm(is)36 b(the)2010 1048 y(64-bit)e(blo)r(c)n(k)f(n)n(um)n(b)r (er)h(to)g(whic)n(h)h(the)f(page)g(is)g(written,)2010 1147 y(concatenated)22 b(with)i(its)g(bit)n(wise)f(complemen)n(t.)35 b(This)23 b(en-)2010 1247 y(sures)k(that)h(eac)n(h)e(page)h(is)h (encrypted)f(uniquely)-7 b(.)2010 1446 y(Caution)23 b(is)h(indicated)g (b)r(ecause)f(c)n(hanging)f(the)i Ff(I)7 b(V)43 b Fm(in)24 b(se-)2010 1546 y(quen)n(tial)36 b(incremen)n(ts)h(for)f(adjacen)n(t)g (pages)f(ma)n(y)h(result)2010 1646 y(in)43 b(only)g(small)g(input)h (di\013erences)e(to)h(the)h(encryption)2010 1745 y(function.)c(The)28 b(attac)n(ks)g(describ)r(ed)g(in)g(\\F)-7 b(rom)28 b(Di\013eren-)2010 1845 y(tial)33 b(Cryptanalysis)e(to)i(Ciphertext-Only)g(A)n(ttac)n(ks") e([3])2010 1944 y(migh)n(t)k(apply)h(in)f(suc)n(h)h(a)f(situation.)60 b(F)-7 b(or)35 b(that)h(reason,)2010 2044 y(w)n(e)c(encrypt)g(the)h (blo)r(c)n(k)f(n)n(um)n(b)r(er)g(and)h(use)f(that)h(for)f(the)2010 2144 y Ff(I)7 b(V)19 b Fm(.)38 b(Biryuk)n(o)n(v)26 b(and)i(Kushilevitz) g(also)f(state,)h(\\Another)2010 2243 y(metho)r(d)j(of)g(IV)h(c)n (hoice)e(is)h(the)g(encryption)g(of)g(the)g(data-)2010 2343 y(gram)22 b(sequence)g(n)n(um)n(b)r(ers)g([...],)i(and)f(sending)f ([the])i(IV)f(in)2010 2443 y([the])34 b(clear)f(\(explicit)h(IV)g (metho)r(d\))g([...].)55 b(This)34 b(metho)r(d)2010 2542 y(is)f(also)e(v)n(ery)h(vulnerable)f(to)i(our)f(analysis,)g([...].")52 b(Nev-)2010 2642 y(ertheless,)27 b(in)h(our)f(case)g(the)h Ff(I)7 b(V)47 b Fm(is)28 b(not)g(explicit,)g(and)f(no)2010 2742 y Ff(I)7 b(V)47 b Fm(di\013erences)27 b(can)g(b)r(e)h(observ)n(ed) e(directly)-7 b(.)2010 3041 y Fk(4.3)105 b(Pseudo-random)35 b(Generator)2010 3340 y Fm(T)-7 b(o)32 b(initialize)g(a)f(v)n(olatile)g (encryption)h(k)n(ey)f(w)n(e)h(require)e(a)2010 3440 y(source)g(of)i(random)f(bits.)49 b(The)32 b(generation)e(of)h(random-) 2010 3539 y(ness)f(with)h(deterministic)g(computers)e(is)i(v)n(ery)e (hard.)45 b(In)2010 3639 y(particular,)37 b(w)n(e)f(do)g(not)g(striv)n (e)f(to)h(create)g(p)r(erfect)g(ran-)2010 3738 y(domness)28 b(c)n(haracterized)e(b)n(y)i(the)h(uniform)f(distribution.)2010 3838 y(Instead,)f(w)n(e)h(use)f(pseudo-random)f(generators.)2010 4037 y(A)40 b(pseudo-random)e(generator)f(has)j(the)g(goal)e(that)i (its)2010 4137 y(output)49 b(is)f(computationally)f(indistinguishable)h (from)2010 4237 y(the)36 b(uniform)f(distribution,)i(while)f(its)f (execution)g(m)n(ust)2010 4336 y(b)r(e)e(feasible)f([14)o(].)51 b(A)33 b(pseudo-random)d(generator)h(is)h(re-)2010 4436 y(alized)e(b)n(y)g(a)g(stretc)n(hing)f(function)i Ff(g)i Fm(that)d(maps)g(strings)2010 4535 y(of)35 b(length)g Ff(n)g Fm(to)g(strings)f(of)h(length)g Ff(l)r Fm(\()p Ff(n)p Fm(\))g Ff(>)g(n)p Fm(.)58 b(If)36 b Ff(X)41 b Fm(is)2010 4635 y(a)30 b(random)f(v)-5 b(ariable)29 b(uniformly)h (distributed)g(on)g(strings)2010 4735 y(of)e(length)g Ff(n)g Fm(then)h Ff(g)s Fm(\()p Ff(X)7 b Fm(\))28 b(app)r(ears)f(to)h (b)r(e)g(uniformly)g(dis-)2010 4834 y(tributed)g(on)f(strings)g(of)h (length)f Ff(l)r Fm(\()p Ff(n)p Fm(\))h([18)o(].)2010 5034 y(F)-7 b(or)34 b(our)g(purp)r(ose,)i(w)n(e)e(use)g(the)h (pseudo-random)e(n)n(um-)2010 5133 y(b)r(er)i(generator)d(\(PRNG\))k (pro)n(vided)e(b)n(y)g(the)i(Op)r(enBSD)2010 5233 y(k)n(ernel)d([21)o (].)56 b(The)34 b(PRNG)g(is)g(a)f(cryptographic)f(stream)2010 5332 y(cipher)26 b(that)h(uses)f(a)h(source)e(of)i(strong)e(randomness) 3708 5302 y Fj(3)3771 5332 y Fm(for)p 2010 5386 744 4 v 2102 5440 a Fi(3)2137 5463 y Fh(The)36 b(term)f(\\source)h(of)f (strong)h(randomness")g(represen)n(ts)g(a)2010 5542 y(generator)c (whose)f(output)i(is)d(not)h(really)g(random,)g(but)h(dep)r(ends)2010 5621 y(on)24 b(so)g(man)n(y)f(en)n(trop)n(y)h(pro)n(viding)g(ph)n (ysical)g(pro)r(cesses)g(that)h(an)f(at-)2010 5700 y(tac)n(k)n(er)h (can)f(not)h(practically)f(predict)g(its)f(output.)p eop %%Page: 7 7 7 6 bop 0 383 a Fm(initialization)29 b(and)g(reseeding.)41 b(This)30 b(source)e(is)h(referred)0 483 y(to)e(as)g(the)h(\\en)n(trop) n(y)e(p)r(o)r(ol.")0 682 y(Nonetheless,)51 b(the)c(problem)f(on)g(ho)n (w)g(to)g(accum)n(ulate)0 782 y(strong)41 b(randomness)h(for)g(the)h (en)n(trop)n(y)e(p)r(o)r(ol)i(remains.)0 881 y(F)-7 b(ortunately)g(,)66 b(a)58 b(m)n(ulti-user)f(op)r(erating)h(system)g(has)0 981 y(man)n(y)23 b(external)g(ev)n(en)n(ts)f(from)i(whic)n(h)f(it)h (can)f(deriv)n(e)g(some)0 1080 y(randomness.)62 b(Gutmann)37 b(describ)r(es)f(a)g(generic)g(frame-)0 1180 y(w)n(ork)26 b(for)h(a)g(randomness)g(p)r(o)r(ol)g([17)o(].)0 1379 y(In)h(Op)r(enBSD,)g(the)g(en)n(trop)n(y)e(p)r(o)r(ol)527 1538 y Ff(P)35 b Fm(:=)22 b Fg(f)p Ff(p)809 1550 y Fj(1)846 1538 y Ff(;)14 b(p)925 1550 y Fj(2)962 1538 y Ff(;)g(:)g(:)g(:)g(;)g(p) 1189 1550 y Fj(128)1292 1538 y Fg(g)0 1697 y Fm(consists)27 b(of)h(128)f(32-bit)g(w)n(ords.)37 b(T)-7 b(o)28 b(increase)f(the)h(p)r (o)r(ol's)0 1796 y(randomness)i(the)j(k)n(ernel)d(collects)i (measuremen)n(ts)e(from)0 1896 y(v)-5 b(arious)38 b(ph)n(ysical)g(ev)n (en)n(ts:)58 b(the)39 b(in)n(ter-k)n(eypress)e(timing)0 1996 y(from)25 b(terminals,)h(the)f(mouse)g(in)n(terrupt)h(timing)f (and)h(the)0 2095 y(rep)r(orted)36 b(p)r(osition)h(of)g(the)g(mouse)g (cursor,)g(the)h(arriv)-5 b(al)0 2195 y(time)34 b(of)g(net)n(w)n(ork)e (pac)n(k)n(ets,)i(and)g(the)g(\014nishing)g(time)g(of)0 2295 y(disk)27 b(requests.)0 2494 y(The)k(measured)e(v)-5 b(alues)31 b(from)f(these)g(sources)g(are)f(added)0 2593 y(to)f(the)g(en)n(trop)n(y)f(p)r(o)r(ol)h(b)n(y)g(a)f(mixing)h (function.)39 b(F)-7 b(or)27 b(eac)n(h)0 2693 y(v)-5 b(alue,)26 b(the)g(function)h(replaces)d(one)h(w)n(ord)g(in)h(the)g(p)r (o)r(ol)g(as)0 2793 y(follo)n(ws:)324 2930 y Ff(p)366 2942 y Fe(i)417 2930 y Fg( )d Ff(u)18 b Fg(\010)g Ff(p)714 2942 y Fe(i)p Fj(+99)877 2930 y Fg(\010)g Ff(p)1002 2942 y Fe(i)p Fj(+59)1165 2930 y Fg(\010)g Ff(p)1290 2942 y Fe(i)p Fj(+31)1453 2930 y Fg(\010)933 3054 y Ff(p)975 3066 y Fe(i)p Fj(+9)1105 3054 y Fg(\010)g Ff(p)1230 3066 y Fe(i)p Fj(+7)1360 3054 y Fg(\010)g Ff(p)1485 3066 y Fe(i)1513 3054 y Ff(;)0 3209 y Fm(where)j Ff(i)g Fm(is)g(the)h(curren)n (t)e(p)r(osition)i(in)f(the)h(p)r(o)r(ol,)h(and)e Ff(u)g Fm(the)0 3309 y(32-bit)h(w)n(ord)f(that)i(is)g(added.)35 b(Index)22 b(addition)h(is)f(mo)r(dulo)0 3409 y(128.)34 b(After)25 b(a)e(v)-5 b(alue)24 b(has)f(b)r(een)h(added)g Ff(i)g Fm(is)f(decremen)n(ted.)0 3508 y(T)-7 b(o)20 b(estimate)g(the)h (randomness)e(in)i(the)g(p)r(o)r(ol,)h(the)e(en)n(trop)n(y)0 3608 y(is)29 b(measured)f(b)n(y)g(a)h(heuristic)f(based)g(on)h(the)g (deriv)-5 b(ativ)n(es)0 3707 y(of)28 b(di\013erences)f(in)h(the)g (input)g(v)-5 b(alues.)0 3907 y(A)32 b(random)g(seed)g(is)g(extracted)f (from)h(the)g(en)n(trop)n(y)f(p)r(o)r(ol)0 4006 y(as)g(follo)n(ws:)45 b(First,)33 b(the)f(concatenation)f(of)h Ff(p)1474 4018 y Fj(1)1511 4006 y Ff(p)1553 4018 y Fj(2)1604 4006 y Ff(:)14 b(:)g(:)g(p)1757 4018 y Fj(128)0 4106 y Fm(is)41 b(giv)n(en)g(as)f(input)i(to)g(an)f(MD5)g(hash)g([22)o(].)78 b(Second,)0 4206 y(the)27 b(in)n(ternal)f(state)h(of)g(the)g(MD5)g (hash)g(for)f(the)h(previous)0 4305 y(computation)e(is)h(added)f(in)n (to)g(the)h(en)n(trop)n(y)e(p)r(o)r(ol.)36 b(Third,)0 4405 y(the)h(resulting)f(p)r(o)r(ol)h(is)f(fed)h(once)g(more)e(in)n(to) i(the)g(MD5)0 4504 y(hash.)e(Finally)-7 b(,)25 b(the)g(message)e (digest)h(is)g(calculated.)35 b(The)0 4604 y(output)24 b(is)f(\\folded")f(in)h(half)h(b)n(y)e(X)n(OR-ing)h(its)g(upp)r(er)g (and)0 4704 y(lo)n(w)n(er)33 b(w)n(ord.)57 b(The)34 b(resulting)g(64)g (bits)h(are)f(returned)g(as)0 4803 y(the)28 b(seed.)0 5003 y(The)35 b(stretc)n(hing)f(function)h(is)g(implemen)n(ted)g(b)n(y) f(AR)n(C4,)0 5102 y(a)29 b(cipher)g(equiv)-5 b(alen)n(t)29 b(to)g(RSADSI's)i(R)n(C4)d([25].)42 b(The)29 b(ci-)0 5202 y(pher)c(has)g(an)g(in)n(ternal)g(memory)f(size)h(of)g Ff(M)32 b Fm(=)23 b Ff(n)p Fm(2)1609 5172 y Fe(n)1667 5202 y Fm(+)14 b(2)p Ff(n)p Fm(,)0 5301 y(with)33 b(in)g(our)e(case)h Ff(n)f Fm(=)f(8.)51 b(W)-7 b(e)33 b(use)f(the)h(random)f(seeds)0 5401 y(extracted)26 b(from)h(the)h(en)n(trop)n(y)e(p)r(o)r(ol)h(to)g (initialize)g(the)g Ff(M)0 5501 y Fm(bits.)47 b(The)31 b(output)g(of)g(R)n(C4)f(is)h(exp)r(ected)g(to)g(cycle)f(after)0 5600 y(2)42 5570 y Fe(M)6 b Fc(\000)p Fj(1)225 5600 y Fm(iterations.)35 b(Ho)n(w)n(ev)n(er,)23 b(Goli)n(\023)-39 b(c)23 b(sho)n(w)n(ed)h(that)g(a)g(cor-)0 5700 y(relation)f(b)r(et)n(w) n(een)g(the)h(second)f(binary)g(deriv)-5 b(ativ)n(e)23 b(of)h(the)2010 383 y(least)34 b(signi\014can)n(t)g(bit)i(output)f (sequence)f(and)h(1)f(can)h(b)r(e)2010 483 y(detected)27 b(in)g(signi\014can)n(tly)e(few)n(er)h(iterations)f([15)o(],)i(whic)n (h)2010 582 y(allo)n(ws)18 b(the)i(di\013eren)n(tiation)f(of)h Ff(R)q(C)6 b Fm(4)19 b(from)g(a)g(uniform)g(dis-)2010 682 y(tribution.)47 b(W)-7 b(e)31 b(can)g(a)n(v)n(oid)e(this)i(problem) g(b)n(y)f(reseeding)2010 782 y(R)n(C4's)36 b(in)n(ternal)h(state)g(b)r (efore)g(the)h(n)n(um)n(b)r(er)f(of)g(critical)2010 881 y(iterations)27 b(has)g(b)r(een)h(reac)n(hed.)35 b(In)28 b(fact,)g(the)g(implemen-)2010 981 y(tation)37 b(in)h(Op)r(enBSD)g (reseeds)f(the)h(AR)n(C4)f(ev)n(ery)g(time)2010 1080 y(enough)27 b(new)h(en)n(trop)n(y)e(has)h(b)r(een)h(accum)n(ulated.) 2010 1280 y(The)34 b(k)n(ernel)e(pro)n(vides)g(the)i (\\arc4random\(3\)")d(function)2010 1379 y(to)41 b(obtain)f(a)h(32-bit) f(w)n(ord)f(from)i(the)g(pseudo-random)2010 1479 y(n)n(um)n(b)r(er)27 b(generator.)2010 1678 y(The)k(v)n(olatile)f(k)n(ey)g(of)h(a)f(section) g(is)h(created)f(b)n(y)h(\014lling)g(it)2010 1778 y(with)36 b(the)g(output)h(from)e(\\arc4random\(3\).")58 b(W)-7 b(e)36 b(hop)r(e)2010 1877 y(that)30 b(b)r(et)n(w)n(een)f(the)h(time)h (the)e(system)h(has)f(b)r(een)h(b)r(o)r(oted)2010 1977 y(and)c(the)h(\014rst)e(sw)n(ap)h(encryption)f(su\016cien)n(t)i (randomness)2010 2077 y(is)44 b(a)n(v)-5 b(ailable)43 b(in)h(the)g(k)n(ernel)f(en)n(trop)n(y)g(p)r(o)r(ol)h(to)g(ensure)2010 2176 y(go)r(o)r(d)30 b(randomness)e(in)j(the)f(R)n(C4)g(output.)45 b(Nonetheless,)2010 2276 y(it)34 b(should)f(b)r(e)g(noted)h(that)f (this)h(construction)e(do)r(es)h(not)2010 2376 y(create)h(a)g(pro)n(v) -5 b(ably)34 b(pseudo-random)f(generator)f(as)i(de-)2010 2475 y(scrib)r(ed)27 b(in)h(the)g(b)r(eginning)g(of)f(this)h(section.) 2010 2920 y Fn(5)112 b(P)m(erformance)37 b(Ev)-6 b(aluation)2010 3249 y Fm(In)33 b(the)h(follo)n(wing,)f(w)n(e)g(analyse)f(the)h (e\013ect)h(of)f(sw)n(ap)f(en-)2010 3349 y(cryption)f(on)h(the)g (paging)f(b)r(eha)n(vior.)48 b(W)-7 b(e)32 b(lo)r(ok)f(at)h(page)2010 3448 y(encryption)45 b(and)h(decryption)f(times,)51 b(and)45 b(assess)g(the)2010 3548 y(run)n(time)28 b(of)f(applications)g(with)h (large)e(w)n(orking)g(sets.)2010 3747 y(All)i(measuremen)n(ts)f(w)n (ere)g(p)r(erformed)g(on)h(an)g(Op)r(enBSD)2010 3847 y(2.6)40 b(system)g(with)h(128)e(MByte)h(main)h(memory)e(and)h(a)2010 3946 y(333)g(MHz)i(Celeron)e(pro)r(cessor.)76 b(The)41 b(sw)n(ap)g(partition)2010 4046 y(w)n(as)50 b(on)h(a)g(6)g(GByte)g (Ultra-DMA)g(IDE)g(disk,)57 b(IBM)2010 4146 y(mo)r(del)40 b(DBCA-206480)e(running)h(at)h(4200)f(rev)n(olutions)2010 4245 y(p)r(er)50 b(min)n(ute.)104 b(The)50 b(op)r(erating)f(system)h (can)f(sustain)2010 4345 y(an)34 b(a)n(v)n(erage)e(blo)r(c)n(k)i(write) h(rate)f(of)g(7.5)g(MByte/s)g(and)g(a)2010 4445 y(blo)r(c)n(k)26 b(read)f(rate)h(of)h(6.3)e(MByte/s.)36 b(Op)r(enBSD)27 b(uses)f(the)2010 4544 y(UVM)i([7])g(virtual)f(memory)f(system.)2010 4873 y Fk(5.1)105 b(Micro)36 b(Benc)m(hmark)2010 5202 y Fm(Our)i(micro)f(b)r(enc)n(hmark)h(measures)f(the)h(time)h(it)g(tak)n (es)2010 5301 y(to)30 b(encrypt)h(one)f(page.)45 b(A)31 b(test)g(program)d(allo)r(cates)h(200)2010 5401 y(MByte)20 b(of)g(memory)-7 b(,)21 b(and)e(\014lls)h(the)h(memory)e(sequen)n (tially)2010 5501 y(with)25 b(zeros.)34 b(Afterw)n(ards,)24 b(it)h(reads)f(the)g(allo)r(cated)g(mem-)2010 5600 y(ory)40 b(from)g(the)h(b)r(eginning)f(in)h(sequen)n(tial)f(order.)75 b(The)2010 5700 y(pro)r(cess)26 b(is)i(rep)r(eated)f(three)h(times.)p eop %%Page: 8 8 8 7 bop 0 383 a Fm(W)-7 b(e)28 b(use)f(k)n(ernel)f(pro\014ling)g(to)h (measure)f(page)h(encryption)0 483 y(frequency)-7 b(,)35 b(and)f(the)g(cum)n(ulativ)n(e)f(time)h(of)g(the)g(encryp-)0 582 y(tion)19 b(function.)34 b(The)19 b(k)n(ernel)f(function)h(\\sw)n (ap)p 1456 582 25 4 v 28 w(encrypt\(\)")0 682 y(is)39 b(called)g(155336)d(times)j(with)h(a)f(cum)n(ulativ)n(e)f(running)0 782 y(time)j(of)g(67)p Ff(:)p Fm(96)e(seconds.)75 b(One)40 b(4)g(KByte)h(page)e(could)0 881 y(b)r(e)28 b(encrypted)f(in)g(0)p Ff(:)p Fm(44)f(ms,)i(resulting)e(in)i(an)f(encryption)0 981 y(bandwidth)39 b(of)f(8)p Ff(:)p Fm(9)g(MByte/s.)68 b(The)38 b(total)g(amoun)n(t)g(of)0 1080 y(memory)27 b(encrypted)g(is)h(600)e(MByte.)0 1280 y(In)50 b(UVM,)g(writes)g(to)f (the)h(bac)n(king)f(store)f(are)h(asyn-)0 1379 y(c)n(hronous)27 b(and)h(reads)g(are)f(sync)n(hronous.)38 b(T)-7 b(o)28 b(determine)0 1479 y(if)37 b(I/O)f(is)g(still)h(the)g(b)r(ottlenec)n(k) f(of)h(the)g(sw)n(apping)e(pro-)0 1579 y(cess,)30 b(w)n(e)f(measured)h (the)g(run)n(time)g(of)g(the)g(test)g(program)0 1678 y(for)i(di\013eren)n(t)g(memory)g(sizes,)g(with)h(and)f(without)h(sw)n (ap)0 1778 y(encryption.)88 b(W)-7 b(e)45 b(measure)f(an)g(increase)g (in)h(run)n(time)0 1877 y(of)36 b(ab)r(out)g(14\045)f(with)i (encryption.)61 b(T)-7 b(o)36 b(measure)f(asyn-)0 1977 y(c)n(hronous)h(writes,)j(w)n(e)e(mo)r(di\014ed)h(the)f(test)h(program) d(to)0 2077 y(write)24 b(only)g(to)g(memory)-7 b(.)35 b(The)24 b(run)n(time)g(increase)f(of)h(26\045)0 2176 y(-)19 b(36\045)g(is)h(due)g(to)f(allo)r(cation)g(of)g(new)h(pages)e (that)i(store)f(the)0 2276 y(encrypted)25 b(pages)f(un)n(til)i(they)g (are)e(written)i(to)f(disk,)h(th)n(us)0 2376 y(causing)35 b(the)i(system)f(to)g(sw)n(ap)f(more)g(often.)63 b(Figure)35 b(3)0 2475 y(sho)n(ws)26 b(a)i(graph)e(of)i(the)g(results.)-96 4074 y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2494 @rwi @setspecial %%BeginDocument: graph2.ps %!PS-Adobe-2.0 EPSF-2.0 %%Title: graph2.ps %%Creator: gnuplot 3.7 patchlevel 0 %%CreationDate: Mon Feb 7 08:58:35 2000 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -46 def /dl {10 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop Solid {pop []} if 0 setdash} ifelse } def /BL { stroke gnulinewidth 2 mul setlinewidth } def /AL { stroke gnulinewidth 2 div setlinewidth } def /UL { gnulinewidth mul /userlinewidth exch def } def /PL { stroke userlinewidth setlinewidth } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 140 scalefont setfont 1.000 UL LTb 630 420 M 63 0 V 6269 0 R -63 0 V 546 420 M (0) Rshow 630 1162 M 63 0 V 6269 0 R -63 0 V -6353 0 R (50) Rshow 630 1904 M 63 0 V 6269 0 R -63 0 V -6353 0 R (100) Rshow 630 2646 M 63 0 V 6269 0 R -63 0 V -6353 0 R (150) Rshow 630 3388 M 63 0 V 6269 0 R -63 0 V -6353 0 R (200) Rshow 630 4130 M 63 0 V 6269 0 R -63 0 V -6353 0 R (250) Rshow 630 4872 M 63 0 V 6269 0 R -63 0 V -6353 0 R (300) Rshow 918 420 M 0 63 V 0 4389 R 0 -63 V 918 280 M (100) Cshow 2069 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (120) Cshow 3220 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (140) Cshow 4372 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (160) Cshow 5523 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (180) Cshow 6674 420 M 0 63 V 0 4389 R 0 -63 V 0 -4529 R (200) Cshow 1.000 UL LTb 630 420 M 6332 0 V 0 4452 V -6332 0 V 630 420 L 140 2646 M currentpoint gsave translate 90 rotate 0 0 M (runtime in seconds) Cshow grestore 3796 70 M (allocated memory in MByte) Cshow 1.000 UP 1.000 UL LT0 918 436 M 0 2 V -31 -2 R 62 0 V -62 2 R 62 0 V 2069 2533 M 0 145 V -31 -145 R 62 0 V -62 145 R 62 0 V 1120 685 R 0 58 V -31 -58 R 62 0 V -62 58 R 62 0 V 1121 381 R 0 81 V -31 -81 R 62 0 V -62 81 R 62 0 V 1120 327 R 0 70 V -31 -70 R 62 0 V -62 70 R 62 0 V 1120 353 R 0 127 V -31 -127 R 62 0 V -62 127 R 62 0 V 918 437 Pls 2069 2605 Pls 3220 3392 Pls 4372 3842 Pls 5523 4245 Pls 6674 4696 Pls 1.000 UP 1.000 UL LT0 918 436 M 0 2 V -31 -2 R 62 0 V -62 2 R 62 0 V 2069 2660 M 0 45 V -31 -45 R 62 0 V -62 45 R 62 0 V 1120 331 R 0 4 V -31 -4 R 62 0 V -62 4 R 62 0 V 1121 376 R 0 3 V -31 -3 R 62 0 V -62 3 R 62 0 V 1120 349 R 0 69 V -31 -69 R 62 0 V -62 69 R 62 0 V 1120 314 R 0 8 V -31 -8 R 62 0 V -62 8 R 62 0 V 918 437 Pls 2069 2683 Pls 3220 3038 Pls 4372 3417 Pls 5523 3803 Pls 6674 4155 Pls 1.000 UP 1.000 UL LT2 3906 4739 M (seq. read and write with encryption) Rshow 3990 4739 M 399 0 V 918 437 M 2069 2605 L 1151 787 V 1152 450 V 1151 403 V 1151 451 V 918 437 Star 2069 2605 Star 3220 3392 Star 4372 3842 Star 5523 4245 Star 6674 4696 Star 4189 4739 Star 1.000 UP 1.000 UL LT3 3906 4599 M (seq. read and write without encryption) Rshow 3990 4599 M 399 0 V 918 437 M 2069 2683 L 1151 355 V 1152 379 V 1151 386 V 1151 352 V 918 437 Box 2069 2683 Box 3220 3038 Box 4372 3417 Box 5523 3803 Box 6674 4155 Box 4189 4599 Box 1.000 UP 1.000 UL LT0 918 437 M -31 0 R 62 0 V -62 0 R 62 0 V 1120 32 R 0 16 V -31 -16 R 62 0 V -62 16 R 62 0 V 1120 30 R 0 2 V -31 -2 R 62 0 V -62 2 R 62 0 V 1121 43 R 0 6 V -31 -6 R 62 0 V -62 6 R 62 0 V 1120 41 R 0 8 V -31 -8 R 62 0 V -62 8 R 62 0 V 1120 46 R 0 4 V -31 -4 R 62 0 V -62 4 R 62 0 V 918 437 Pls 2069 477 Pls 3220 516 Pls 4372 563 Pls 5523 611 Pls 6674 663 Pls 1.000 UP 1.000 UL LT0 918 437 M -31 0 R 62 0 V -62 0 R 62 0 V 1120 22 R 0 11 V -31 -11 R 62 0 V -62 11 R 62 0 V 1120 25 R 0 1 V -31 -1 R 62 0 V -62 1 R 62 0 V 1121 33 R 0 2 V -31 -2 R 62 0 V -62 2 R 62 0 V 1120 33 R 0 1 V -31 -1 R 62 0 V -62 1 R 62 0 V 1120 32 R 0 2 V -31 -2 R 62 0 V -62 2 R 62 0 V 918 437 Pls 2069 465 Pls 3220 496 Pls 4372 530 Pls 5523 564 Pls 6674 598 Pls 1.000 UL LT0 3906 4459 M (seq. write with encryption) Rshow 3990 4459 M 399 0 V 918 437 M 1151 40 V 1151 39 V 1152 47 V 1151 48 V 1151 52 V 1.000 UL LT1 3906 4319 M (seq. write without encryption) Rshow 3990 4319 M 399 0 V 918 437 M 1151 28 V 1151 31 V 1152 34 V 1151 34 V 1151 34 V stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 0 4248 a Fl(Figur)l(e)48 b(3:)74 b Fd(Performanc)l(e)46 b(di\013er)l(enc)l(e)f(b)l(etwe)l(en)h(swap)e(en-)0 4340 y(cryption)31 b(and)f(normal)g(swapping)g(when)g(p)l(ages)h(ar)l(e)f (ac)l(c)l(esse)l(d)0 4431 y(se)l(quential)t(ly,)53 b(il)t(lustr)l (ating)48 b(the)g(di\013er)l(enc)l(e)h(b)l(etwe)l(en)g(asyn-)0 4522 y(chr)l(onous)29 b(write)f(and)g(synchr)l(onous)j(r)l(e)l(ads.)0 4875 y Fk(5.2)105 b(Macro)36 b(Benc)m(hmark)0 5202 y Fm(T)-7 b(o)46 b(judge)h(the)f(impact)h(of)f(sw)n(ap)g(encryption)g(on) g(ap-)0 5301 y(plication)37 b(programs,)h(w)n(e)f(used)h(ImageMagic)n (k)d(to)i(pro-)0 5401 y(cess)f(a)g(960)23 b Fg(\002)h Fm(1280)34 b(image)i(with)h(a)f(16-bit)f(colorspace.)0 5501 y(The)29 b(image)g(w)n(as)f(magni\014ed)g(and)h(then)h(rotated)e (b)n(y)h(24)1801 5471 y Fe(o)1837 5501 y Fm(.)0 5600 y(The)d(run)n(times)g(for)g(di\013eren)n(t)h(magni\014cation)e(factors) g(are)0 5700 y(sho)n(wn)i(in)h(T)-7 b(able)27 b(1.)p 2010 303 1899 4 v 2008 403 4 100 v 2375 403 V 2492 373 a(No)g(Encryption)p 3141 403 V 294 w(Encryption)p 3907 403 V 2010 406 1899 4 v 2008 506 4 100 v 2066 476 a(Magni-)p 2375 506 V 136 w(Ma)5 b(jor)p 2729 506 V 99 w(Run)n(time)p 3141 506 V 132 w(Ma)g(jor)p 3495 506 V 98 w(Run)n(time)p 3907 506 V 2008 606 V 2060 576 a(\014cation)p 2375 606 V 130 w(F)-7 b(aults)p 2729 606 V 144 w(\(in)28 b(sec\))p 3141 606 V 131 w(F)-7 b(aults)p 3495 606 V 144 w(\(in)28 b(sec\))p 3907 606 V 2010 609 1899 4 v 2010 625 V 2008 725 4 100 v 2115 695 a(2)p Ff(:)p Fm(30)p Fg(\002)p 2375 725 V 98 w Fm(0.4)f(10)2645 665 y Fj(3)p 2729 725 V 2977 695 a Fm(49s)p 3141 725 V 99 w(0.4)f(10)3410 665 y Fj(3)p 3495 725 V 3743 695 a Fm(49s)p 3907 725 V 2010 728 1899 4 v 2008 828 4 100 v 2115 798 a(2)p Ff(:)p Fm(35)p Fg(\002)p 2375 828 V 121 w Fm(19)h(10)2645 768 y Fj(3)p 2729 828 V 2936 798 a Fm(145s)p 3141 828 V 121 w(18)f(10)3410 768 y Fj(3)p 3495 828 V 3702 798 a Fm(147s)p 3907 828 V 2010 831 1899 4 v 2008 931 4 100 v 2115 901 a(2)p Ff(:)p Fm(40)p Fg(\002)p 2375 931 V 121 w Fm(22)h(10)2645 871 y Fj(3)p 2729 931 V 2936 901 a Fm(169s)p 3141 931 V 121 w(22)f(10)3410 871 y Fj(3)p 3495 931 V 3702 901 a Fm(180s)p 3907 931 V 2010 934 1899 4 v 2008 1034 4 100 v 2115 1004 a(2)p Ff(:)p Fm(50)p Fg(\002)p 2375 1034 V 121 w Fm(24)h(10)2645 974 y Fj(3)p 2729 1034 V 2936 1004 a Fm(179s)p 3141 1034 V 121 w(24)f(10)3410 974 y Fj(3)p 3495 1034 V 3702 1004 a Fm(276s)p 3907 1034 V 2010 1037 1899 4 v 2010 1186 a Fl(T)-6 b(able)36 b(1:)50 b(R)n(untime)33 b(of)j(image)g(pr)l(o)l(c)l (essing)g(to)l(ol)f(for)h(dif-)2010 1286 y(fer)l(ent)30 b(magni\014c)l(ation)g(factors.)2010 1545 y Fm(The)j(table)g(compares)e (the)i(ma)5 b(jor)32 b(faults)h(and)f(program)2010 1644 y(run)n(time)g(for)f(a)g(system)h(that)g(do)r(es)f(not)h(use)g (encryption)2010 1744 y(against)25 b(a)g(system)g(that)h(do)r(es.)36 b(A)26 b(ma)5 b(jor)25 b(fault)h(is)g(a)f(page)2010 1844 y(fault)35 b(that)f(requires)f(I/O)g(to)i(service)e(it,)j(and)e(do)r (es)g(not)2010 1943 y(tak)n(e)g(in)n(to)g(accoun)n(t)g(the)h(pages)e (that)i(ha)n(v)n(e)f(b)r(een)h(paged)2010 2043 y(out)28 b(b)n(y)f(the)h(paging)e(daemon.)2010 2242 y(With)38 b(increasing)e(magni\014cation)g(factor,)j(the)f(w)n(orking)2010 2342 y(set)c(size)f(of)h(the)g(program)e(gro)n(ws)g(larger.)54 b(W)-7 b(e)34 b(measure)2010 2441 y(a)28 b(sharp)g(increase)f(of)h(the) h(running)g(time)g(with)g(sw)n(ap)e(en-)2010 2541 y(cryption)e(for)h(a) f(magni\014cation)g(factor)g(of)h(2)p Ff(:)p Fm(5.)35 b(Ho)n(w)n(ev)n(er,)2010 2641 y(for)21 b(the)h(other)f(magni\014cation) g(factors)f(the)i(program)e(run-)2010 2740 y(time)30 b(is)f(not)g(a\013ected)h(that)f(m)n(uc)n(h,)h(ev)n(en)f(though)g (nearly)2010 2840 y(half)24 b(of)g(the)g(program's)e(memory)h(w)n(as)g (on)h(bac)n(king)f(store.)2010 2940 y(Th)n(us,)37 b(w)n(e)e(b)r(eliev)n (e)h(that)f(the)h(o)n(v)n(erhead)d(caused)i(b)n(y)g(en-)2010 3039 y(cryption)27 b(is)g(tolerable.)2010 3451 y Fn(6)112 b(Conclusion)2010 3747 y Fm(Con\014den)n(tial)27 b(data)g(can)g(remain) f(on)h(bac)n(king)f(store)h(long)2010 3847 y(after)37 b(the)h(pro)r(cess)f(to)g(whic)n(h)h(the)g(data)f(originally)f(b)r(e-) 2010 3946 y(longed)28 b(has)g(terminated.)41 b(This)28 b(is)h(con)n(trary)e(to)i(a)f(user's)2010 4046 y(exp)r(ectations)45 b(that)h(all)g(con\014den)n(tial)f(data)g(is)h(deleted)2010 4145 y(with)41 b(the)h(termination)e(of)h(the)g(pro)r(cess.)76 b(An)41 b(in)n(v)n(esti-)2010 4245 y(gation)23 b(of)h(secondary)e (storage)h(of)h(mac)n(hines)f(at)h(the)g(Cen-)2010 4345 y(ter)h(for)f(Information)g(T)-7 b(ec)n(hnology)23 b(In)n(tegration)h (rev)n(ealed)2010 4444 y(v)n(ery)31 b(con\014den)n(tial)i(information,) g(suc)n(h)f(as)g(the)h(author's)2010 4544 y(PGP)27 b(pass)g(phrase.) 2010 4743 y(W)-7 b(e)32 b(in)n(v)n(estigate)e(sev)n(eral)g(alternativ)n (e)g(solutions)h(to)h(pre-)2010 4843 y(v)n(en)n(t)38 b(con\014den)n(tial)h(data)f(from)h(remaining)f(on)g(bac)n(king)2010 4942 y(store,)26 b Fl(e.g.)38 b Fm(erasing)26 b(data)g(ph)n(ysically)g (from)h(the)g(bac)n(king)2010 5042 y(store)j(after)g(pages)g(on)h(it)g (b)r(ecome)g(unreferenced.)46 b(Ho)n(w-)2010 5142 y(ev)n(er,)23 b(w)n(e)g(\014nd)h(that)f(encryption)g(of)g(data)g(on)g(the)g(bac)n (king)2010 5241 y(store)30 b(with)i(v)n(olatile)f(random)f(k)n(eys)g (has)h(sev)n(eral)f(adv)-5 b(an-)2010 5341 y(tages)27 b(o)n(v)n(er)e(other)i(approac)n(hes:)2093 5600 y Fg(\017)41 b Fm(The)32 b(con)n(ten)n(t)f(of)g(a)g(page)g(disapp)r(ears)f(when)i (its)g(re-)2176 5700 y(sp)r(ectiv)n(e)h(encryption)f(k)n(ey)g(is)h (deleted,)i(a)d(v)n(ery)g(fast)p eop %%Page: 9 9 9 8 bop 166 383 a Fm(op)r(eration.)83 567 y Fg(\017)41 b Fm(Encryption)35 b(pro)n(vides)f(protection)h(against)g(ph)n(ysi-)166 667 y(cal)f(attac)n(ks,)h Fl(e.g.)58 b Fm(an)34 b(attac)n(k)n(er)e (stealing)i(the)g(disk)166 766 y(that)28 b(con)n(tains)f(the)h(sw)n(ap) e(partition)0 1041 y(Encryption)32 b(enables)g(us)g(to)h(mak)n(e)f(the) h(guaran)n(tee)e(that)0 1141 y(unreferenced)22 b(pages)f(on)h(the)h (bac)n(king)e(store)g(b)r(ecome)h(un-)0 1240 y(readable)e(after)h(a)g (suitable)g(time)h(p)r(erio)r(d)f(upp)r(er)h(b)r(ounded)0 1340 y(b)n(y)27 b(system)h(uptime)g(has)f(passed.)0 1539 y(W)-7 b(e)27 b(ha)n(v)n(e)e(demonstrated)g(that)i(the)f(p)r (erformance)g(of)g(our)0 1639 y(encryption)d(system)h(is)g(acceptable,) g(and)g(it)g(pro)n(v)n(es)e(to)i(b)r(e)0 1738 y(a)j(viable)g(solution.) 0 1938 y(The)55 b(soft)n(w)n(are)f(is)h(freely)g(a)n(v)-5 b(ailable)53 b(as)i(part)g(of)g(the)0 2037 y(Op)r(enBSD)20 b(op)r(erating)f(sytem)h(and)g(can)g(also)f(b)r(e)h(obtained)0 2137 y(b)n(y)27 b(con)n(tacting)g(the)h(author.)0 2561 y Fn(7)112 b(Ac)m(kno)m(wledgmen)m(ts)0 2869 y Fm(I)45 b(thank)f(P)n(atric)n(k)f(McDaniel)h(and)h(m)n(y)f(advisor)f(P)n(eter)0 2969 y(Honeyman)20 b(for)f(careful)h(reviews)f(and)h(helpful)h(commen)n (ts)0 3068 y(on)44 b(the)h(organization)e(of)h(this)h(pap)r(er.)88 b(I)45 b(also)e(thank)0 3168 y(Ch)n(uc)n(k)32 b(Lev)n(er)f(for)h (getting)h(me)g(in)n(terested)f(in)h(sw)n(ap)e(en-)0 3268 y(cryption,)43 b(Artur)e(Grab)r(o)n(wski)e(for)h(impro)n(ving)g(m) n(y)g(un-)0 3367 y(derstanding)27 b(of)h(UVM)g(and)g(Da)n(vid)f(W)-7 b(agner)27 b(for)g(helpful)0 3467 y(feedbac)n(k)g(on)g(cipher)h (selection.)0 3891 y Fn(References)38 4112 y Fb([1])43 b(R.)34 b(Anderson,)j(R.)e(Needham,)g(and)g(A.)f(Shamir.)61 b(The)161 4203 y(Steganographic)29 b(File)f(System.)39 b(In)27 b Fd(Pr)l(o)l(c)l(e)l(e)l(dings)32 b(of)d(the)161 4295 y(Information)e(Hiding)h(Workshop)p Fb(,)f(April)e(1998.)38 4428 y([2])43 b(A.)21 b(App)r(el)f(and)g(K.)h(Li.)26 b(Virtual)21 b(Memory)f(Primitiv)n(es)h(for)161 4520 y(User)27 b(Programs.)40 b(In)27 b Fd(Pr)l(o)l(c)l(e)l(e)l(dings)k(of)e (the)h(4th)f(Interna-)161 4611 y(tional)22 b(Confer)l(enc)l(e)h(on)g(A) n(r)l(chite)l(ctur)l(al)h(Supp)l(ort)g(for)e(Pr)l(o-)161 4702 y(gr)l(amming)i(L)l(anguages)i(and)e(Op)l(er)l(ating)i(Systems)p Fb(,)e(April)161 4794 y(1991.)38 4927 y([3])43 b(Alex)27 b(Biryuk)n(o)n(v)g(and)g(Ey)n(al)h(Kushilevitz.)40 b(F)-6 b(rom)26 b(Di\013er-)161 5018 y(en)n(tial)39 b(Cryptanalysis)h(to)f (Ciphertext-Only)e(A)n(ttac)n(ks.)161 5110 y(In)h Fd(Pr)l(o)l(c)l(e)l (e)l(dings)k(of)d(the)h(A)l(dvanc)l(es)h(in)e(Cryptolo)l(gy)j(|)161 5201 y(CR)-6 b(YPTO)36 b('98)p Fb(,)i(pages)e(72{88.)i(Springer-V)-6 b(erlag,)38 b(Au-)161 5292 y(gust)26 b(1998.)38 5426 y([4])43 b(Matt)25 b(Blaze.)33 b(A)24 b(Cryptographic)h(Filesystem)f (for)i(Unix.)161 5517 y(In)40 b Fd(Pr)l(o)l(c)l(e)l(e)l(dings)k(of)d (the)i(First)f(A)n(CM)g(Confer)l(enc)l(e)h(on)161 5609 y(Computer)29 b(and)f(Communic)l(ations)h(Se)l(curity)p Fb(,)e(pages)g(9{)161 5700 y(16,)g(No)n(v)n(em)n(b)r(er)d(1993.)2048 383 y([5])43 b(Matt)36 b(Blaze.)66 b(Key)35 b(Managemen)n(t)g(in)h(an)f (Encrypting)2171 474 y(File)d(System.)49 b(In)30 b Fd(Pr)l(o)l(c)l(e)l (e)l(dings)35 b(of)d(the)h(1994)g(USENIX)2171 566 y(Summer)g(T)-6 b(e)l(chnic)l(al)34 b(Confer)l(enc)l(e)p Fb(,)g(pages)f(27{35,)i(June) 2171 657 y(1994.)2048 785 y([6])43 b(G.)62 b(Cattaneo)h(and)e(G.)h(P)n (ersiano.)143 b(Design)62 b(and)2171 876 y(Implemen)n(tation)43 b(of)i(a)h(T)-6 b(ransparen)n(t)44 b(Cryptographic)2171 968 y(Filesystem)37 b(for)h(Unix.)67 b(Unpublished)35 b(T)-6 b(ec)n(hnical)38 b(Re-)2171 1059 y(p)r(ort,)52 b(July)47 b(1997.)99 b Fa(ftp://edu-gw.dia.unisa.it/)2171 1150 y(pub/tcfs/docs/tcfs.ps.gz)p Fb(.)2048 1278 y([7])43 b(Charles)g(D.)g(Cranor)g(and)f(Gurudatta)g(M.)g(P)n(arulk)l(ar.)2171 1370 y(The)24 b(UVM)e(Virtual)i(Memory)f(System.)29 b(In)23 b Fd(Pr)l(o)l(c)l(e)l(e)l(dings)2171 1461 y(of)g(the)h(1999)g(USENIX)g (A)n(nnual)f(T)-6 b(e)l(chnic)l(al)24 b(Confer)l(enc)l(e)p Fb(,)2171 1552 y(pages)i(117{130,)j(June)d(1999.)2048 1680 y([8])43 b(Joaen)20 b(Daemen)e(and)h(Vincen)n(t)f(Rijmen.)23 b(AES)c(Prop)r(osal:)2171 1772 y(Rijndael.)69 b(AES)37 b(submission,)j(June)d(1998.)70 b Fa(http://)2171 1863 y(www.esat.kuleuven.ac.be/~rijm)q(en/ri)q(jnda)q(el/)p Fb(.)2048 1991 y([9])43 b(Whit\014eld)62 b(Di\016e,)72 b(P)n(aul)63 b(C.)g(v)l(an)f(Oorsc)n(hot,)72 b(and)2171 2082 y(Mic)n(hael)34 b(J.)f(Wiener.)54 b(Authen)n(tication)32 b(and)g(authen)n(ti-)2171 2174 y(cated)26 b(k)n(ey)e(exc)n(hanges.)34 b Fd(Designs,)28 b(Co)l(des)g(and)g(Crypto)l(g-)2171 2265 y(r)l(aphy)p Fb(,)f(2\(2\):107{125,)j(June)25 b(1992.)2010 2393 y([10])43 b(F)-6 b(red)26 b(Douglis.)36 b(The)26 b(Compression)h(Cac)n(he:)36 b(Using)26 b(On-)2171 2484 y(Line)31 b(Compression)g(to)f(Extend)g(Ph)n(ysial)h(Memory.)49 b(In)2171 2576 y Fd(Pr)l(o)l(c)l(e)l(e)l(dings)37 b(of)e(1993)g(Winter) h(USENIX)e(Confer)l(enc)l(e)p Fb(,)2171 2667 y(pages)26 b(519{529,)j(1993.)2010 2795 y([11])43 b(Berk)n(e)29 b(Durak.)43 b(Hidden)28 b(Data)h(T)-6 b(ransmission)30 b(b)n(y)e(Con-)2171 2886 y(trolling)40 b(Electromagnetic)f(Emanations)g (of)g(Comput-)2171 2978 y(ers.)c(W)-6 b(ebpage.)2171 3069 y Fa(http://altern.org/berke/tempe)q(st/)p Fb(.)2010 3197 y([12])43 b(Niels)j(F)-6 b(erguson,)51 b(John)45 b(Kelsey)-6 b(,)51 b(Mik)n(e)45 b(Sta)n(y)-6 b(,)50 b(Da)n(vid)2171 3288 y(W)-6 b(agner,)24 b(and)e(Bruce)h(Sc)n(hneier.)29 b(Impro)n(v)n(ed)21 b(Cryptanal-)2171 3379 y(ysis)d(of)h(Rijndael.)j (In)17 b Fd(F)-6 b(ast)22 b(Softwar)l(e)f(Encryption)h(Work-)2171 3471 y(shop)28 b(2000)p Fb(,)f(April)f(2000.)2010 3599 y([13])43 b(Brian)30 b(Gladman.)43 b(AES)29 b(Algorithm)f(E\016ciency) -6 b(.)44 b(W)-6 b(eb-)2171 3690 y(page.)2171 3781 y Fa(http://www.btinternet.com/~br)q(ian.g)q(ladm)q(an/)2171 3873 y(cryptography)p 2644 3873 24 4 v 31 w(technology/aes/index.html)p Fb(.)2010 4001 y([14])43 b(Oded)i(Goldreic)n(h.)96 b Fd(Mo)l(dern)47 b(Crypto)l(gr)l(aphy,)53 b(Pr)l(ob)l(a-)2171 4092 y(bilistic)34 b(Pr)l(o)l(ofs)i(and)f(Pseudo-r)l(andomness)p Fb(.)62 b(Springer-)2171 4183 y(V)-6 b(erlag,)26 b(1999.)2010 4311 y([15])43 b(Jo)n(v)l(an)23 b(Dj.)g(Goli)n(\023)-36 b(c.)30 b(Linear)24 b(Statistical)g(W)-6 b(eakness)22 b(of)h(Al-)2171 4403 y(leged)g(R)n(C4)g(Keystream)f(Generator.)30 b(In)22 b Fd(Pr)l(o)l(c)l(e)l(e)l(dings)27 b(of)2171 4494 y(the)c(A)l(dvanc)l(es)i(in)d(Cryptolo)l(gy)j(|)d(Eur)l(o)l(crypt) j('97)p Fb(,)d(pages)2171 4585 y(226{238.)29 b(Springer-V)-6 b(erlag,)26 b(Ma)n(y)f(1997.)2010 4713 y([16])43 b(P)n(eter)18 b(Gutmann.)h(Secure)e(Deletion)h(of)g(Data)g(from)f(Mag-)2171 4805 y(netic)i(and)f(Solid-State)g(Memory)-6 b(.)22 b(In)c Fd(Pr)l(o)l(c)l(e)l(e)l(dings)23 b(of)e(the)2171 4896 y(Sixth)35 b(USENIX)f(Se)l(curity)j(Symp)l(osium)p Fb(,)e(pages)g (77{89,)2171 4987 y(July)26 b(1996.)2010 5115 y([17])43 b(P)n(eter)25 b(Gutmann.)30 b(Soft)n(w)n(are)c(Generation)f(of)g (Practially)2171 5207 y(Strong)37 b(Random)f(Num)n(b)r(ers.)67 b(In)37 b Fd(Pr)l(o)l(c)l(e)l(e)l(dings)j(of)e(the)2171 5298 y(Seventh)31 b(USENIX)d(Se)l(curity)j(Symp)l(osium)p Fb(,)d(pages)g(243{)2171 5389 y(255,)f(June)f(1998.)2010 5517 y([18])43 b(J.)26 b(Hastad,)g(R.)f(Impagliazzo,)i(L.)e(Levin,)g (and)g(M.)h(Lub)n(y)-6 b(.)2171 5609 y(Construction)19 b(of)g(Pseudorandom)f(Generator)h(from)g(an)n(y)2171 5700 y(One-W)-6 b(a)n(y)24 b(F)-6 b(unction,)25 b(1993.)p eop %%Page: 10 10 10 9 bop 0 383 a Fb([19])43 b(J.)23 b(Heidemann)d(and)i(G.)h(P)n(op)r (ek.)29 b(File-System)21 b(Dev)n(elop-)161 474 y(men)n(t)f(with)h(Stac) n(k)l(able)g(La)n(y)n(ers.)28 b Fd(A)n(CM)23 b(T)-6 b(r)l(ansactions)26 b(on)161 566 y(Computer)j(Systems)p Fb(,)e(12\(1\):58{89,)i(F)-6 b(ebruary)25 b(1994.)0 690 y([20])43 b(Maurice)26 b(P)-6 b(.)25 b(Herlih)n(y)f(and)g(J.)i(D.)e(T)n(ygar.)34 b(Ho)n(w)25 b(to)g(Mak)n(e)161 782 y(Replicated)i(Data)g(Secure.)38 b(In)26 b Fd(Pr)l(o)l(c)l(e)l(e)l(dings)31 b(of)e(the)g(A)l(d-)161 873 y(vanc)l(es)37 b(in)d(Cryptolo)l(gy)j(-)f(CR)-6 b(YPTO)34 b('87)p Fb(,)j(pages)d(379{)161 964 y(391.)27 b(Springer-V)-6 b(erlag,)26 b(1988.)0 1089 y([21])43 b(Theo)21 b(de)f(Raadt,)h(Niklas)g (Hallqvist,)h(Artur)d(Grab)r(o)n(wski,)161 1180 y(Angelos)38 b(D.)g(Kerom)n(ytis,)h(and)e(Niels)i(Pro)n(v)n(os.)70 b(Cryp-)161 1271 y(tograph)n(y)30 b(in)f(Op)r(enBSD:)h(An)f(Ov)n (erview.)46 b(In)30 b Fd(Pr)l(o)l(c)l(e)l(e)l(d-)161 1363 y(ings)d(of)g(the)h(USENIX)e(A)n(nnual)h(T)-6 b(e)l(chnic)l(al)28 b(Confer)l(enc)l(e,)161 1454 y(FREENIX)f(T)-6 b(r)l(ack)p Fb(,)27 b(June)f(1999.)0 1579 y([22])43 b(R.)23 b(L.)g(Riv)n(est.)29 b(The)23 b(MD5)h(Message)h(Digest)e(Algorithm.)161 1670 y(RF)n(C)j(1321,)h(April)f(1992.)0 1794 y([23])43 b(Bruce)c(Sc)n (hneier.)74 b(Description)40 b(of)f(a)h(New)f(V)-6 b(ariable-)161 1886 y(Length)37 b(Key)-6 b(,)39 b(64-Bit)f(Blo)r(c)n(k)g(Cipher)f (\(Blo)n(w\014sh\).)70 b(In)161 1977 y Fd(F)-6 b(ast)62 b(Softwar)l(e)g(Encryption,)71 b(Cambridge)61 b(Se)l(curity)161 2068 y(Workshop)46 b(Pr)l(o)l(c)l(e)l(e)l(dings)p Fb(,)51 b(pages)45 b(191{204.)i(Springer-)161 2160 y(V)-6 b(erlag,)26 b(Decem)n(b)r(er)f(1993.)0 2284 y([24])43 b(Bruce)38 b(Sc)n(hneier)e(and)h(John)h(Kelsey)-6 b(.)68 b(Cryptographic)161 2376 y(Supp)r(ort)19 b(for)h(Secure)f(Logs)i(on)e(Un)n(trusted)f(Mac)n (hines.)26 b(In)161 2467 y Fd(Pr)l(o)l(c)l(e)l(e)l(dings)j(of)e(the)h (Seventh)g(USENIX)f(Se)l(curity)h(Sym-)161 2558 y(p)l(osium)p Fb(,)e(pages)h(53{62,)h(Jan)n(uary)d(1998.)0 2683 y([25])43 b(RSA)36 b(Data)h(Securit)n(y)-6 b(.)67 b(The)37 b(R)n(C4)g(Encryption) g(Algo-)161 2774 y(rithm,)25 b(Marc)n(h)h(1992.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF