FWS# x _    %C   ?G    UtY)KXgggꆆ  _  ,'+îjÖ	' 4Y@pA  ?O    Vp&wx           5.04HO ]ut?05ȷL@31#L  ?L    VpXb~  +++ +P
 ~k cZ_߅8d[  ?    Nh]*     }{      Nh]*  J,6u ?A    Vp&        5.04HO ]ut?05ȷL@31#L  E                 "@                iHE                 "@                 u% E   	              "@               	 'ID?  
  Arial 0 2 M i  QNjy1"J 5/utݺn#P=nˠ 5"7vȀ7P< sF ny0  5jۄr^5xi82dv+
U'a-}k3	r}pSI/f/@	>c" 5g2Ӛ睲{;;4JG80+JUbpκٹm#}An[9iz+*ۀ5df^ .qbh" \RL C(t$n]u󯧻帎)kjIt/%LK]Obnԟ)3e(
7˳||sKZnc]p RJX  <Dnj3p$PՖ 5cBPm@&a @G~F   "8h%iOe;rHϺ S'+%^6 * ؖ%y 5F雀V`yP'jU iΑrwu/͆a44Xݼ8E̍l3T%C*|Ѯ\ `) 5hƑVf\j`& } _' ^HX@&Y AJ7 U&w%by+ ؖ%5K4ۗ
%q" q/x,դgpDȤꇂ(@	P-RތMʛQ61E@`M6ej 5cZP,%b9)S(rRg"#7ܹ V|uI6g%@e#.B=MD n\i4 5cZPӖ#XJfr 5cZVӖ# 5jzvAT(` Orhc.UI%.b]D ܹ۳ YX&f#.b]PB n\one&dZ 	YLVTL+U:Qp  5c.SFi xeNDIQ@=R.|7^o=IfQ-KT3z,7.q 5dx MO58`4& ߚ{m 
I."@ޘu8 7	RT&1.[zڭ$@[U6Px 5c&S3afyUje$
p~J&Z.P˧-#AFdTـf! {b[ h&( N 5cS%E(MoDV ۨ-8@I.OM˧-A 5d.m 5$ԌQ}1&ӄ7,I`#&33a,ńs $͆i4:ѾD8ZSeY $K (6^ݭf Fc}   5d\6(7Z  5 %1Ya =$<w ݌l`ll lFW{  5hPf\j`%khZnP^q jBP9%H 
 ݐn#@5Keb"MJryy%nR? 5h4u]Fۀ>|䵼+cʜKqמ#  :=CPabcdehilmnoprstuxy	,    o 0
 h         (  Introduction   $H	4    wG0
 h         (  Classic Cryptography   )	7    w	U0
 h         (  Public-key cryptography   />h    l@      3  f       0*!FD fd)p.Ky J@JdQ$f@/Jp$@'FZ2D fd)p.Ky J@DUo$I nFKҜ	'뤾'	ѺDd	Eb~&FD fd)p.Ky J@nkHdI/	tn+F@EX_dI nFKҜ	'뤾'	ѺDd	Eb~$f@/Jp$@'F$dQF@EHdI/	tn+ V>HdI/	tn+F@EXޟ$dQ$f@/Jp$@'FjNdI nFKҜ	'뤾'	ѺDd	Ej I nFKҜ	'뤾'	ѺDd	Ej?dQ$f@/Jp$@'Fjq?dQ$f@/Jp$@'Fjտ$I nFKҜ	'뤾'	ѺDd	Ek#`Y(I/	tn+ VF@EHdI/	tn+ VD fqO NYT8NI}O t^2(Ȓ@3 ܈g2$7#%Nu_x"W L$2 zS$]t:7H# "W\$2 zS$]t:7H# "d$2 zS$]t:7H# "G,2$7#%Nu_x"W 42$7#%Nu_x"W r2(Ȓ@3 ܌8NI}O t^TȒ@3 ܌8NI}O t^2(U"I ̀3r2^I8]%<N%{ H+)3$2$7#%Nu_x"W Ĳ2(Ȓ@3 ܌8NI}O t^WH@3 ܌8NI}O t^2(%L$2 zS$]t:7H# "UH@3 ܌8NI}O t^2(2$7#%Nu_x"W Y"I ̀3r2^I8]%<N%{ H*l]["I ̀3r2^I8]%<N%{ H   t(	<    wp0
  f       (  Introduction to Cryptography   'P=@  6절  Y  '-7` I )  /1 Ͱ( 7x=@  6k   AX '* I ) /%@ H( G=@  63@ @K & Ip S{ /P 4( V=@  6Z` @ &Ј IC  S{  / x( d=@  5- ? & I S{  /؈ ( rx=@  5 ?u Mk` I절 S{^ _S  ( =@  5ـ ?L MC` I@ S{6` _S T(   @  5R@ ?k% M  I S{ _S  ( 1 @  52  ?K ` L} Ix Sz _Sm@ ( H @  5
i ?"  LZ IU Sz _SJ  D( ^ @  4H@ ? L9  I4` Sz _S( ` s @  4( >  L I Sz  _S	` ` c@  4  >~ Lj  7  Szi` _R 搢` 4@  i >b LJ@ 7m SzM _R ` X@  hV >I  L2ƀ 7  Sz3` _R ` x@  h  >r1  L 6  Sz  _R Ȣ` /`@  h  >Z  L 6J Sz _R  8` g`@  hVN >B  Kꄀ 5   _Rr` X` 8=@  h6  |gӀ Kr` 5  t _R_ (` =@  h  |G Kb  5h  0 _RN ` @  g  |'Y KS 5*   _R?  Т` :@  gZ  |' KG` 4   _R1 ` ~@  g0  { K< 4   _R&  8` @  g {  K4@ 4 g  _R  x` 뽀@  g  { K- 4~  F _R  `` O`@  g  {ƭ K( 4e  - _R  ` `@  gԀ {Ƣ  K&  4S   _R	@ H` `@  gЀ {ƞ  K%  4H   _R @` O`@     ?    P     B           "@                      gȀ P     B           "@                      {  P     B           "@                     K#   4D   _R `	<    wp0
  f       (  Introduction to Cryptography   `?    ArialI     6Uv}+@i#	2	F	t			J

Ldb#]#>crv9j4|7ZL 5,Lebcfka)\~Ivả05d1/ =}f{@ 5g nE<tRns͕y-63,0H _ZMg0fTř*Ώ 0ƙ%L`\ 
E֡|"3-h.@Kl0"JrJ^sV7s[s˙(Xf  8 5B$O3"u$ 5D J60&͂ ^f 'za~)7/r\k 5/le >`
.Ix[3/>L 8? 5b H12Vtyp7D\{7mVcEfP$ 5eZY}M'bvo8٬dn6@5,,ePv#b*#D7fka 5"'fZ 5,Lebgfka 5gf@ m O,,i`;I@p7jVc]U 	]XbUtAk??D Z Z
ǒx*8 N ֋[h 5eyW7-Ö~Nseq8G@ 5he rw+mb-1Z6U!RSИA7gyyUG6P\ո@& 'dmS'Sd L zw1 5g :ys'^dC	 `C
Tj y1vzL JE*TMJʓj _{د"Xpetv)Wb
P``%H}xL#Lu1r 25+3FJih@ 5J]᭸jVj;5Ta'cS؝WSnx,  5g-,ZI 0 !!̄ 02L+0N `MG{`Rb9S#lds+ ӛWRZ.=6z~eX 5g^ܳ(@`1-SMw*JC0-  !L~ 0/丝?6a 5u
	a;?2-c3t
&, G(yRNW ҘH`M}IlT  5`ji'ݞH9W>[v( :c[.
d 5bf1 NUJ 5f( _JZ  
AYN#JxsaWMT6NVE>nS Pe?	J`*QHѺ\蛖@& R`	+ɐo&H ;' 5,<ebkfka6> 5hwx!͚ePܣlp<* 5h RJoεs&iľmS,%!qWC9@KfZ" 8)&$LG0lLǹL5 Lv 
kebkfka 5F|fݤě~
V-23HyŻ#W"@5fvn[w[O4(K%N. P2fB$/P-R%bͱAG-#DT 3cJUڅ*EHG(.Ro~@m 5hfܶ lrIQ f ]Fmc40	@tf837D[hMmK6 ŕsU(L3pYg̻h 5g" ܳr ^Rc<0(lxrڅ+X+GUcه  SA\*ባvp^q婀5ix$-5n-nKHʸ 5EgSv'i߲9nn
 5ff LHeć  b"B	d	_yWݼnJ6j
!5͠փ J TiMQS6@Qi̩2x$	m%тi  5EOVv'i
[{<wb5cV-#a 5!j>@#w0 .uKSh߀M>6nH 5*u?HxV+e)f%<Tsv:5hWvU#nZGʡ 5l"V-.O>Yd9S-#Isinx%| 5jBV<p9R-#d`R-] 5hR۷ d}  #fGLl r>rnmV.tj 7MZ]5qm  WkTͭT?8bb&2)̢`V 5gv}nQ8Pmn`Jk+E6TK ^A@ 7()V-#EvJS@ 5fjw#=Ƅ`RO1 (	͵^ 
]7C̥>ɀM59"T3>6m޹ٮW݉b(1  5gBfܫ `[ -fwhRdO P48'f pk=iq|JrFȴ>+
ʯ\r/l.Էw&f\\@HABS(e _Db04`|]j5eyT6-z܇l$]}p 5jFZfA)Xiɯy/f 6xZye"aU|f	żۆYa 5j;rR=b
'xOc^0 5g:yD];ϟR=>#ü>!q"^#J8=o8qN>nv([oZ 5fNT@Jh*RBD|,TKHT hM{($JKݒړ)|;if E[n.1j Ȁb Cن%hNTi'fQ@Eտ6xv))+D0C 5bvPin@%baIU:S3  "7R@& ˲Bج{@ _+$W`͘4j`	|kNX*T 5djW 7,ܰ=CmHta.Mxc6Le&3! J<oYslC:	/g@*o;}  5gVf` e.8Sq`WLb70ƻ@ A|-2, f1 iUl T&) O[6Za  5DEJ&ޛW2X@+*T/Dt2nRٱi & y _ ^im&j DIH !4X&W,/V@ 5bQ&x\݊nbfa?VD%
(ۨuʃSUvkZ7y5X5g\9%IG & ՛T
jlT%*#.J,2b M$c6%ߚi2f*ـJL%T	_ UBb 	's>	b mc   5bzPy %vYV&a"Cb\xe eSIx "ئ{@ 5bzP7-Zal-llS 5)wuMHZ-YFîlHo 5brV7-#Z 5k*, [[6)k)@JM))%i@SMnP5bV)%Ipo"`Ob(lfʭ&3*cLF2xY` 5bVS&:o PDJh*
M^Olk,K}],Ā)7-Q 5Cb$0	sf, wS:m<	@4̦3 fC92.+#$ ?L w.Q͊At48R܀5bZQe;a&Rhd@B9Ɛ&@ LG
n$9d"Z`.8P=nZC
[`bTvWΘ4V`	lkNX*6L 5gV7.KhPQ ^Zϻ / X`Jr[`
{7;
 f g+3[7%rU	s'& ˖%)̀@5bRTe?Mn@U©-I%%)lX slSr݅ 5e^HKm@d.=3 KRLH%!gN}QT?)cJneQ<4VZ5V|QzWgp߶i}lۂ]YB,v@ 5d"Q)Sy@&
.2-gZCSK<^2K_gl_ll!nvenv5gPņ͔KRctl.̾,K05
O00(̢Q+) J=r>ۀ7 5gt'Yϛ^݅#}iڼ\ 5kr'EǗ8>{vx.."jf36 5bJZV`7\LdgbG}_ؓa] 5gd97qa+.@ko^b56"|l0MrZ/Z 5K4g6'ٷl^qX_]fߊ> 5dS#,& 8Kݶ;D˙a0x^'IB" :RX ~~n~%^yuboi)7e{FsfTf %(Z3dc"XƷ 5`ҋJYSR4>:
`)D"2RSR%S)6KWCRhqm	6ls+@wL#}0.$)6.sti Jʀh8  !"&'()*+,-.012345679:=?ABCDEFGHIJKLMNOPRSTUVWabcdefghiklmnopqrstuvwxyz{}	]    w
0          (  Created by Jeffrey W. Humphries and Martin C. Carlisle, 2002.   ;c@@         

   intro - 1     d-      f  3      0eD fd)p.Ky J@DUdI nFKҜ	'뤾'	ѺDd	E[ F@EHdI/	tn+ Uo$I nFKҜ	'뤾'	ѺDd	Eb~%FD fd)p.Ky J@h Hj 
)p.Ky J@FD fEe~$f@/Jp$@'F$dQaF@EHdI/	tn+ V['dI nFKҜ	'뤾'	ѺDdY)dQ$f@/Jp$@'FTHdI/	tn+F@EWj$f@/Jp$@'F$dQs3YdI nFKҜ	'뤾'	ѺDdW>"FD fd)p.Ky J@1.$f@/Jp$@'F$dQF@EHdI/	tn+ U%ޭ$f@/Jp$@'F$dQZD fd)p.Ky J@D   X+	,    oG 0
  f       (  Introduction   I@  t+ [a@  + m1@  + @  + !@  l+ E@  P+ iD@  0+ H@     aH@    H@  ɨ  PH@  h  7H@  (  PH@    ƐH@   b	,    oG 0
  f       (  Introduction      4 6   J8T4Q\E 5gRifP Q`UL60ޘͨN5:@_>^ Lg31LY-@;$L~ݾ{[ 5j\2ܻLsrL=ƿ0, 5fze)ir @eYU	&7"":`4Yd[j 	92&ސL(11	:@<Ԡ0e7o^{{<Ϫ̺l 0"xo@qy}˿nL   5ejf 1)5gĎ| P)ܺɼC.u\`_ jͫy0O>3zkB@)v[ 58w}0{` $^T Q%P7|fJ e$@5e:^ďԯ9 &28 l#nMl*VZh 8*sor{ RJRB !*ţV8Ҁ,YM  5e^ 81C}/˧]p}.ǠJysR2 *oF]0ƜiL9q % $#RdE`  5jux2<R#-@MZ6n8)3$L L l9w (%:P	SET9Jɔepݮliр@5Fpge.9sbZ.pjy,28EZm"yI& F`	3ʹxfɎO e Ӳ
c5 5g8/^aoSNܸqem
J:3R8n&B I 5i-^%[ܖ7r%\F`1f {i \$HUnLh^gk 왳@% "bc 	ZXrU2)EH7 ZO(Jm )9'>`@`> 5heJɀ<ǈbm	oL0	n fZu0oQp&?Ү Ġ 5d'pn@*GAn\7 5-y?q&iC`o]7[l#q߷V 5eFup&< 5hBe@dJNXgV[  T8 oxn\8۹ <9P
f(gx\8uˉ ,)':Iεvobkr7>$%x	 5heL;ӸIfÈi	pL0	p n[&,Mpn#o,-*ͬ@L LJ 5I=f9 xņ	hv[67cp O^ Q=B3H Ӏ:57d.9   5  5dro*ˉJ* dt 81j24UWܸ4q
]Q@>>SȔ9CIKD6Pq&
%o] + 5gvk[`-K.fSn\9۸2\j$ 5Je|vVJ:3l	@0uދJIaR$@"\`k/^8O~|ϲ 9 L jK10r^McpmZ`6N@PكB 5bURgw
z*7|dɐ\ZzMh-@&L%O[+غ-+ 5i'zq5B{Rڶ5Ccq!ǾN#H"(6dO֎Zl;Emw`{ 5i'	^n+h;В 5KކY-{]ʇ߻=q]
E 5i넏]'o@%?ه s!"rƛy) #    Arial CMSabcdefghiklmnoprstuvxy   x dM   
  Fh4Nx22#  \dB- ECBȊZ?- ̆FC#!ѐ df2.2F!q ddd12 F d252 F! 2;2@   9jd6FCC  Ptd3)b" Pvd:2 Gó!X dvd@X d 27$Ȃd?-&C f2 "Ch$d   1jd6GfC)h djd.2FCaBhtd  @#"	,dd>L\d9KFC f2 fC! 2   t42>"FCC   dvd FC  Ptd3)b" Pvd:2 FFCȀ2 fC ȸbdB-!Pdd?-@   	h#£pQLd7L h( 26H#S! d~Z@ Lِd 2@"! d 2.2L#сhPdd:2#! d  2bd22C!hd &@	l(:2 G)c#" vd12H#  vd:2C@ ,dd?-C#!h,d 2 @  \3Tn52FF@XȀ252Ltd42 Fc#ِ, 2?-
RǆCA d2;2"FFDBq,xd8@ Qᑐ,dhd   7~Z22FD dd0-LFC xl(:2@  252
CB)h d252̇#" P`Z.2
 ECA|<6 L)c ȃ  !252@#ᑐPZ D"ѰPZ #q djd22#aAh2    h    @ 	 hA @ 	 h"$ @ 	 h34 @ 	 hDD @ 	 hUET @ 	 hfd @ 	 hwt @ 	 h"H @ 	 h& @ 	 h*ʴ @ 	 h/ @ 	 h3L @ 	 h7 @ 	 h; @ ?    	 	+    g00         (  Intro 1 of 7    .@ F ?O    Vo]&wx           5-04HO ]ut?05ȷL@31#L  K     =                            =    ;      5h
;Bx-* /*L} υ@dJAm)CyCt7v]iJaj%HN\H	k!~xd-wj].hhTqRf?(`{ǆP=s     Times New RomanH    Pƈ'  	  m       Pƈ'  	   3 m     ! Pƈ'  	 333 m  R   "  D                   !              " ~; @     @ 

   intro - 2 	   #  0 h        (  In a basic communication scenario, using cryptography 
is relatively simple.Imagine two people wanting to communicate secretly.  
Alice wants to send a message to Bob that nobody else 
can read.  # oh    @ 	 hD @ 	 h'	t @ 	 h;ô @ 	 hO @ 	 hb$ @ 	 hvd @ 	 h" @ 	 h' @ 	 h,K @ 	 h1LT @ 	 h6M @ 	 h; @ ?    	 	+   $ g00         (  Intro 2 of 7  $  .@ F K   %  =                            L   % J ?   & Ml}]*     5{     ' Mȩ]*  7.{     ( Mȫ]*  
6u I   )  ;          &   '      (              ) + J ! " C J @     ! @ 

   intro - 3     * ]>  f OGV]S|  * o	"   + _i_` 0
 h       (  Bob  + ,h0 * @vӀ 	$   , _` 0
 h       (  Alice  ,  @   9@
\7č  9@
Y 4 @v+ f @   n@Z@7č  n@WF4 @v   @   @X7č  @U4 @v[ Ə @   @'V7č  @'S4 @v3  v @   @/Up7č  @/Rv4 @v  @  !@7OT7č !@7OQ4 @v
S   @  E@>OR7č E@>OO4 @v@ V@  f@DOQ7č f@DON4 @vs  @  @JP7č @JM4 @vÄ   @  @OO7č @OL4 @v@ &@  @SOO7č @SOL4 @vۄ "ƕ @  @VN\7č @VK^4 @v" (V @  @YM7č @YJ4 @v$ ,֕@  @\Mh7č @\Jj4 @v& 0f@  @]M7č @]J4 @v'  2 @  @^L7č @^I4 @v(  4v @  @_L7č @_I4 @v(  4  (   - d  %mw\EC',djP  - W$	/   . g:80 h        (  meet me 
at noon  . շK   /  =                            ~   / ] I   0  ;          &   '      (           =   0 + ] " "  ] @  W$ ի@  5ǉ 5h@  ؍5爌 ؍5ef@  ,$5牌 ,$5b@  <p85牌 <p85_Ƅ@  L^5牌 L^5]v@  ]5牌 ]5ZFi@  mT5爌 mT5WZ@  }5牌 }5TN@  ō5牌 ō5Q@@  Ş85ǉ Ş85O3@  ŮB5牌 ŮB5LF%@  žh5爌 žh5I@  5爌 5F	@  h5ǉ h5C@  5ǉ 5A@    1   
  Fh10x8
FF@Y~Z@ GfCvdCA G!ѐf2;2R#S!x 29KG!2 A 2     h	$nBQA`*<  h%2 ̀$Ȁ2 "!dd>R \d:2@#ᑐbd 
Ac   1 %Th     Ā 2 	+   2 g00         (  Intro 3 of 7  2  .@ F @ 	 h$ @ 	 h%	BT @ 	 h7t @ 	 hID @ 	 h[Ŵ @ 	 hn @ 	 h  @ 	 h$$ @ 	 h)JT @ 	 h-t @ 	 h2L @ 	 h6ʹ @ 	 h; @ ?    	 @       " @ 

   intro - 4  * I h    	&   3 g!00
         (  Encrypt  3 Ih    K   4  =                               4 ~ I   5  ;          &   '      (           L   5 + ~ ! "  ~ @ 	 h 	 h @ 	 h 	 h @ 	 h+
´ 	 h+
´ @ 	 h9C 	 h9C @ 	 hGt 	 hGt @ 	 hUET 	 hUET @ 	 hdD 	 hdD @ 	 hr$ 	 hr$ @ 	 h  	 h  @ 	 h# 	 h# @ 	 h'	 	 h'	 @ 	 h*ʴ 	 h*ʴ @ 	 h.K 	 h.K @ 	 h1t 	 h1t @ 	 h5MT 	 h5MT @ 	 h9D 	 h9D @ 	 h<$ 	 h<$ @  Y   6 e0} P    Y@U     !5/s4Axۈ.ݜəR=Aݫv*CU@  6 ӧ h    	 	   7 M`  
  Fh40x8
FF@	dd?- F@`Z>"#aAِ 2.2
fCᰡ djd9K Gf@ x\d:2GfCX djd22 @   xd8FD2 qdd 
#  Ȉ h
d	A20 0d  h2  F!|<@H  2.2   8@?-CyPdd12 Fc#!, 2;2FC#! dvd>
!qP 29KG! 2@ xd22LB)h S  t)xd>FFC"  2.2 EC"h|<?-xvd9K D"ёbd>CaAѐ2   7 %"  h    	/   8 oAȀ0        (  meet me at noon  8 h    @ 	 hA 	 h	@ 	 @ 	 h"$ 	 hA @ 	 h34 	 h @ 	 hDD 	 h"$ @ 	 hUET 	 h+
´ @ 	 hfd 	 h34 @ 	 hwt 	 h< @ 	 h"H 	 hDD @ 	 h& 	 hMD @ 	 h*ʴ 	 hUET @ 	 h/ 	 h^ @ 	 h3L 	 hfd @ 	 h7 	 ho @ 	 h; 	 hwt @  	 	 h  	/   9 oAȀ0        (  meet me at noon  9 	+   : g00         (  Intro 4 of 7  :  .@ F @ 	 h"H @ 	 h$I @ 	 h& @ 	 h($ @ 	 h*ʴ @ 	 h,4 @ 	 h/ @ 	 h1D @ 	 h3L @ 	 h5MT @ 	 h7 @ 	 h9d @ 	 h; @ 	 h=t @ ?    	 @      ! 	/   ; oAȀ0        (  meet me at noon  ; @ 

   intro - 5  6 h    	 6 5Õ+	!   < W00
          (  key 
 < <B  = x d ^  
  Fh6@2:2 ̇!x 2@ FFC!hxZ<2 E@X~Z?-F@  djd22 FCxd@
̇F@Ȃd@
F@   2/2q 26&D ȼvd@ H#S! dxd8FD2 @$ 2;2CaAѐp(    r22ECC!$d 2<2
Lq d hd2  h! 2@  p(8H#S! d\d8̇aB r ̈h   2   t)@?-CyPdd  FC#  p(.2
##"!i d 26Gf@hPxd52##"!i d2   = % h    K   >  =                               > ሰ I   ?  ;          &   '      (           ~   ? +    "   @ 	 h 	 -[:lrY 
 D%1	 h @ 	 h 	 ={k~H\T 
 _U}p~rE_ 	 h @ 	 h+
´ 	 JʕUP+xT
 /lo|A'T(	 h+
´ @ 	 h9C 	 Tr^
w+xS
 [o 'R8	 h9C @ 	 hGt 	 ZZޔؑ
  1 3Z)U	 hGt @ 	 hUET 	 \*[ޔ
 ?E?G,5ѓ|	 hUET @ 	 hdD 	 Y;ߔ
 (͒	 hdD @ 	 hr$ 	 RbѬܧr 
 ʒP	 hr$ @ 	 h  	 FjTWr 
 ԁH\rsDl	 h  @ 	 h# 	 5zjRr 
 %i	 h# @ 	 h'	 	 ?ٚr
 G:4al	 h'	 @ 	 h*ʴ 	 	;'Gr
 g̳_U̉	 h*ʴ @ 	 h.K 	 W%ozaAƑ
 ŇÁmQ*	 h.K @ 	 h1t 	  0Aݾ#r 
 ŤrA2	 h1t @ 	 h5MT 	 ,ĳ0Fr$ထ
 ſ(z7Љ	 h5MT @ 	 h9D 	 'Md
 j5(5	 h9D @ 	 h<$ 	 +G+M 
 gܥh 	 h<$ @ ?    	 	/   @ oAȀ0         (  phhw ph dw qrrq  @ ͙m`	 @~"
 x@	 	+   A g00         (  Intro 5 of 7 % A  .@ F @      % @ 

   intro - 6 	  B ݀0 h        (  There is just one problem.  The message has been 
encrypted to prevent adversaries from eavesdropping, 
but now Bob can't read the message.  What we need is 
a way to retrieve the original plaintext message from 
the ciphertext.  B # h    K   C  =                               C  I   D  ;          &   '      (              D +    "  @ 	 h @ 	 h @ 	 h+
´ @ 	 h9C @ 	 hGt @ 	 hUET @ 	 hdD @ 	 hr$ @ 	 h  @ 	 h# @ 	 h'	 @ 	 h*ʴ @ 	 h.K @ 	 h1t @ 	 h5MT @ 	 h9D @ 	 h<$ @   ?    	/   E oAȀ0         (  phhw ph dw qrrq  E ͙m`	 	/   F oAȀ0        (  meet me at noon  F 	+   G g00         (  Intro 6 of 7 % G  .@ F @       % 	 @~"
 p@ I  I e@ 

   intro - 7  @ v	 @~ʠ"
 p@  @ hۃ I  I	  H ݀0 h        (  Both Alice and Bob use the same algorithm to encrypt 
and decrypt.  They both use a key, that must be kept 
secret, to transform their communications.  If anyone 
else discovers the key, their communications would be 
compromised.  H !Zh     E >  I   I  ;          &   '      (              I +    "  @  5@ u@	 @~"
 h@ ?@ gダ I  I	 h	@  %@  @ s	 @~_"
 `@ _@ f냀 I  I	 h$  @  j@ r	 @~?"
 `@ @ e󃀈 I  I	 h  孀@  @ qt	 @~"
 X@ @ d I  I	 h%	BT  Ŭ@  @ p4	 @~"
 P@ ܿ@ d I  I	 h.  @  9@ n	 @~"
 P@ @ c I  I	 h7t  @  @ m	 @~ɽ"
 H@ @ b I  I	 h@  e@  m@ ll	 @~ɝ"
 @@ @ a I  I	 hID  ~E@  @ k(	 @~}"
 @@ >@ `# I  I	 hR$  |%@  ڢ@ i	 @~\"
 8@ ȿ^@ _+ I  I	 h[Ŵ  z@  <@ h	 @~<"
 0@ ȹ~@ ^3 I  I	 heFT  w奀@  @ g`	 @~"
 0@ ȳ@ ]; I  I	 hn  uŤ@  q@ f	 @~"
 (@ ȭ@ \C I  I	 hwt  s@  @ d	 @~"
  @ ȧ@ [C I  I	 h   q@  ɦ@ c	 @~Ȼ"
  @ ȡ@ ZK I   	 h"H  oe@  @@ bT	 @~Ț"
 @ Ȝ@ YS I   	 h$$  mE@  @ a	 @~z"
 @ Ȗ=@ X[ I   	 h&ɴ  k%@  ȿu@ _	 @~Z"
 #  Ȑ]@ Wc I   	 h)JT  i@  ȼ@ ^	 @~9"
   Ȋ}@ Vk I  얻 	 h+  f址@  ȸ@ ]H	 @~"
   Ȅ@ Us I  薻 	 h-t  dŜ@  ȵD@ \	 @~L
   ~@ T{ I  䖻 	 h0  b@  6 @~h     < `h     *  h    	&   J g 00
         (  Decrypt  J Ӂh     ȱ@ Z	 @~L
   x@ S   	 h2L  `@ 	 h+
´ 	 h+
´  h+
´  Ӂ h+
´  Ȯx@ Y	 @~pL
   r@ R  ܖ 	 h4$  ^e@ 	 hUET 	 hUET   hUET  ӁhUET  ȫ@ X<	 @~0L
   m@ Q  ؖ 	 h6ʹ  \E@ 	 h  	 h   `h   Ӂ h   ȧ@ V	 @~L
   g<@ P  Ԗ 	 h9NT  Z%@ 	 h*ʴ 	 h*ʴ  h*ʴ  Ӂ`h*ʴ  ȤH@ U	 @~L
   a\@ O  Ж 	 h;  X@ 	 h5MT 	 h5MT  @h5MT  Ӂh5MT  Ƞ@ Tt	 @~nL
   [{@ N  ̖ 	 h=t  U啀@    ?     6 U@ Bf8@	/   K oAȀ0        (  meet me at noon  K c`	 	  Ġ Ӂ@ ȱH@ T	/   L oAȀ0         (  phhw ph dw qrrq  L Yc`	 @~-L
 ճ  U@ M  Ȗ 	 	,   M oG 0
  f       (  Introduction  M 	/   N oAȀ0        (  meet me at noon  N SŔK   O  =                               O  	+   P g00         (  Intro 7 of 7 % P  .@ F @         	 
                % 
   cc - 1   X+  I@  t+ `1@  + v@  + $@  + H@  l+ u@  P+ FH@  0+ PH@     H@    VH@  ɨ  PH@  h  @  (  d@    @   b	4   Q wp0
  f       (  Classic Cryptography  Q @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @   6 U@ Bf8@ 6 @~	 < `
 * Ġ J Ӂ@ 6 ȱH@ T 6 @~-L < ճ  6 U@ M *  3 Ȗ   R x   
  Fh:TZ;2 B	2>FF@Ȇ  EB!hP`Z " hd>CaAh d~ZE-FFC vd>A# )hȂd     86
 "! dl(:2 fC"	dd12 Gf@hr22 FPdd ChP`Z " hd>CaAh d  #\d8̇aB r?-@q 23
 P~Z A 2.2  h(d7G10d$n7ǀ h2 ̇)c#" Pr22@  t;`Z.2
FC  ȸ 2A! d`Z6LFC ȼdd0-L#  P2 
@#qPbd  LD i\d22	dd12    .9252
@$jd:2
L&C#   dvd ̇)c	l(0-FF@h`Z>GR l(@ FCaAh dhd22! 2   	l(:2 FC#  dl(22
Lc   R h    	   S W^0 h        (    S Nh     * @_L7ď + @_I4 * @v(  , 4 	/   T o!G 0
  f       (  - Shift Ciphers  T D 	4   U wp0
  f       (  Classic Cryptography  U @ 
   cc - 2 	 h 	 h @ 	 h 	 h @ 	 h-B 	 h-B @ 	 h< 	 h< @ 	 hKĴ 	 hKĴ @ 	 hZ 	 hZ @ 	 hiF 	 hiF @ 	 hx 	 hx @ 	 h" 	 h" @ 	 h%t 	 h%t @ 	 h)d 	 h)d @ 	 h-KT 	 h-KT @ 	 h1D 	 h1D @ 	 h44 	 h44 @ 	 h8$ 	 h8$ @ 	 h<O 	 h<O @  ?    	 	 	4   V wp0
  f       (  Classic Cryptography  V K   W  =                            &  W %  " %	-   X g<0         (  Classic 1 of 7 % X  .@ H @       % 
   cc - 3     Y ]>   OGV]S|  Y i @  	+   Z g g80
            (  Letter +Key  Z ͖u i @  @   [ x d  
  Fhx7G10d$n7@ h) 2.2#Ѱ,xd8@ uQh 222GR d 2.2 RFChhd22FFB!h 2    8p(22 FFC P~Z L1~ bd  F#! _\d6 GFD!Xdd> ̆c h\d>H##! 26 H#S! d  9\d8LB! d2  ƦC#  Ȃd9Kِd 20-!i ddd>H#  jd6@#aAh d^d.2&@ِ 2   t5252 HE!dd @$ 27-Ic  tvd> !Xp(22F1  djd22 !Ȁ222"@   .;r22ECC! dl(?- @"  ȸtd12 FC#  ܴddE- GfC  djd6G)c#!h\d42 F <2  LFC   djd22   	/dd:2" Pvd:2 C!ِxl(@R$4Pp( FC#!Ȁ222 @" A< 24&@" X  [ h    @ 	 h@ @ 	 h @ 	 h(
 @ 	 h6d @ 	 hC4 @ 	 hQE @ 	 h^ @ 	 hl @ 	 hyG @ 	 h!t @ 	 h%	D @ 	 h($ @ 	 h+ @ 	 h/K @ 	 h2 @ 	 h6 @ 	 h9NT @ 	   \ W0 h        (  a  \ a 	   ] W0 h        (  3  ] C; 	   ^ W0 h        (  d  ^ yU	 h<4 @      ?    	   _ W0 h        (  a  _ a 	   ` W0 h        (  3  ` C; 	   a W0 h        (  d  a yU	 	 	 	/   b o!G 0
  f       (  - Shift Ciphers  b D 	4   c wp0
  f       (  Classic Cryptography  c K   d  =                            ;  d :I   e  ;          &   '      (              e + :% "  :	-   f g<0         (  Classic 2 of 7 * f  	@ H @        % * 
   cc - 4 @   g x T `  
  Fhx7G10d$n7@ h) 2CAP252 Cᡐ|< qdd?- ̈|<3)caAѐ 2    >252 FFC!hxZ<2 fC  dd:2F!ѐ dvd:2 ̇FC#  Pdd@ q d 2.2 F,d 2 S  Pdd@   @l(:2 FC#  l(<22 
@$ 2>H&CB  dvd3 FC#  |<6FB! dp(22 FFC p(A2H#S! d  tZ.2
LF@ِd 2@#rё2   g  h    @ 	 h @ 	 h @ 	 h+
´ @ 	 h9C @ 	 hGt @ 	 hUET @ 	 hdD @ 	 hr$ @ 	 h  @ 	 h# @ 	 h'	 @ 	 h*ʴ @ 	 h.K @ 	 h1t @ 	 h5MT @ 	 h9D @ 	 h<$ @   ?    	$   h g 0 h        (  apple  h z9 	   i W0 h        (  3  i E 	$   j g#w0 h        (  dssoh  j N@	 	/   k o!G 0
  f       (  - Shift Ciphers  k D 	4   l wp0
  f       (  Classic Cryptography  l K   m  =                            O  m NI   n  ;          &   '      (           &   n + N% "  N	-   o g<0         (  Classic 3 of 7 * o  	@ H @    
      % * 
   cc - 5 @ 
 Y  i @  	+   p _y?ac0
            (  Letter -Key  p Ӂ@i @    q x w   
  Fh4>;2!F&C! 2<̀#ᑑ d|<6FF@ dd C!\d8 RFChhd22 Gó!X d252 @   5dd:2" bd qdd #ᑐdd6!s   d:n6H  `p(6"!ѐ 2<̀   ;jd.2!$ِ d\d42F@qdd.2 GfC1  dl(9K GfC   djd22 FFDR  djd22"Hh#aAP 2A2c  tvd>   t9~Z52
 hPxd52堑 ȼvd@ H#S! d~Z22LFC ȸtd12 FCёPZ22 G)d!i d 2A2$ 2   .7~Z.2#rё2  ƦC#!ѐ$d 2<̀#Ѱ,xd8"H!h~Z  LF@ ȈZ@ LF@`Z22
FFC ȃ  	\d:2 @
 h	$d7ǂ$`S 9Ln$d  h' 2@$"qPd22 ̆c  dd xvd9K Cѩ dp(22 FFCX  q h    @ 	
 i @ 8	 i @ 8	 h @ 	
 i @ p	 i @ p	 h @ 	
 i @ 	 i @ 	 h+
´ @ 	
 i @ 	 i @ 	 h9C @ 	
 i @	 i @	 hGt @ 	
 i @T	 i @T	 hUET @ 	
 i @	 i @	 hdD @ 	
 i @ȉ	 i @ȉ	 hr$ @ 	
 i @ 	 i @ 	 h  @ 	
 i @8	 i @8	 h# @ 	
 i @p	 i @p	 h'	 @ 	
 i @	 i @	 h*ʴ @ 	
 i @	 i @	 h.K @ 	
 i @	 i @	 h1t @ 	
 i @T	 i @T	 h5MT @ 	
 i @	 i @	 h9D @ 	
 i @ȉ	 i @ȉ	 h<$ @   ?    	$   r g#w0 h        (  dssoh  r \	   s W0 h        (  3  s Ѐ	$   t g 0 h        (  apple  t YZ 	
 	 	 	/   u o!G 0
  f       (  - Shift Ciphers  u D 	4   v wp0
  f       (  Classic Cryptography  v K   w  =                            c  w bI   x  ;          &   '      (           ;   x + b% " Cb	-   y g<0         (  Classic 4 of 7 * y  	@ H @        % * 
   cc - 6 @ 	  z &? 0 h        (  There are a few issues involved with shift ciphers.  First, 
what happens when plaintext letters appear near the end 
of the alphabet and "fall off" the end when their value is 
added to the key?  The solution is to "wrap around" to the 
beginning of the alphabet whenever this occurs.  For 
example, the letter "x" would become a "b" with a key of 4.  z 7 h    @ 	 h @ 	 h @ 	 h+
´ @ 	 h9C @ 	 hGt @ 	 hUET @ 	 hdD @ 	 hr$ @ 	 h  @ 	 h# @ 	 h'	 @ 	 h*ʴ @ 	 h.K @ 	 h1t @ 	 h5MT @ 	 h9D @ 	 h<$ @ ?    	#   { _f` 0 h        (  xray  { / 	   | W0 h        (  4  | ; 	#   } _q` 0 h        (  bvec  } 9N@	 K   ~  =                            w  ~ vI     ;          &   '      (           O    + v% "  v	-    g<0         (  Classic 5 of 7 *   	@ H @        % * 
   cc - 7 @ 	u   &? 0 h        (  Another issue with this type of cipher is how do Alice and 
Bob agree on a key ahead of time?  There is an entire set 
of problems in the field of cryptography devoted to this 
subject -- how keys are exchanged.  For the purposes of 
this simple cipher, just assume that Alice and Bob have 
some mechanism in place to agree on a common key.   :Gh    @ 	 h @ 	 h @ 	 h+
´ @ 	 h9C @ 	 hGt @ 	 hUET @ 	 hdD @ 	 hr$ @ 	 h  @ 	 h# @ 	 h'	 @ 	 h*ʴ @ 	 h.K @ 	 h1t @ 	 h5MT @ 	 h9D @ 	 h<$ @ ?     w    ey(w0    pzY5#5fUS⒗r$D=#Obpߑ,'u:?)F=GvkoZ 	5       @  @:N     @  As@4M    @  B,.   ` @  B@(4   0 @  C #    @  fDYtD    @  MEB]E    @  3EFd   P @  FB/     @   G@t    @  G       @  ?GOAT    @  FB+
´   @ @  EB@    @  DEQUET    @  Dkƴ    @  C    ` @  KCR%IT    @  
B*ʴ    @  A0   0 @  QAT@5MT   p @  @@:δ     @   @     @	 K     =                               ሊI     ;          &   '      (           c    + % "  	-    g<0         (  Classic 6 of 7 *   	@ H @        * 
   cc - 8 ?    	#    g?0 h         ( change   (	#    g?( h  
        ( text   < 	-    _|_ac0
        (  EncryptButton 	&    g!00
         (  Encrypt 	&    g!00
         (  Encrypt 	&    g!00
         (  Encrypt      I *     [ *     l*  @  $q*     l      x text toLowerCase                     R    	$    W{(
 h          ( keyval      N P     Fc=O#vJ]IiY4	e		,
y


 5*ptؼeT R  ~ajbMiܦqn 5c.' YxZ&hgQbc鐣d [65*/nYn&X3wjH+5Ϸd 5+|oS6i` 5if ID*5".|\:d|YR#jC')@Mv[f h)&#OQ0lD Ԭ_) 5+|oS6YpTJJEvL5GyoR&A_~!
Yį3?H9C- 5gg 5yp:`s@&L =Θ<rktO3T  O{ luD	9 L }2A[NPl4fٸ  5k%'IO\9{.15H@ 5FO۫;#a<b"@5dڑu=L=  5dNad(uϳ݊"e98o1w(T[<AL= 5lu?JfАXq݊bj/=妦bxZv5gN(|tGqC2gd5))J-2eLmiJXm_.I.2t#pH%;#LO ( 5i.d*^`I-g-(
L4WU`% 9̰ *}'s IIZNU ` jU@O&КkY4ڗE )Oyc΄	@zx)N2 ?߶#_ 5gJ=C}ȆDSr" 5eNc 9/b0% $$O("R7ST	O5zV.*-l;tWQvh; 	cj[fx.I0Ǻˀ 8佀cfe4a	VUU:UcX:]qm 5dZ(4*=L dq1TRwD1.k.Y`,eMQlXs4al$( @I*l J\3t0ܸ-,MMʝ.`5eJU 21?m84'c.<@K(SlMҌ 0 ,*
oQ/yh&mL#	L, & ț+ r`
*Ɉ5&@S  5iuYBk5	@3f |b͉]xf06!Ű
[3(ʋsiw5 PŠZe4U(	&C %vp  5eB_ 9;oʇ& K"'v@%\n)V3jLݨ7s^ЀK˚dـ TQ\2P *:e	
:8 0䷮J,`T 5cd6wp@6mOg$dtc]H|y7bWQk(s5i
T7z56h ]p )v!($DE2&b:՚k Yq@$ +jWv_  hN*?p̒\93  YG8RSe hf,n`͙nY[0 5dZԬ*KL HG*T` 9ǾNv)u 	gjZsEɱKL= 5c'M7݅V(VYl 5*:mcKMR==ǘH7bw-xm_ 5d>uKL= 5cJ rF5=⃱MF%< 	22y{RaH 5HyLƟIy `ByR&nG@wYњ$bWe!89.76%bH	k T,u`0 Ltx 0|iׅS^Z K˖g 5c%J]ڤɀG3 ʉ7"&T)-ru@MB?Hv)C
U2y@<^QD&N 0 `p[[1,%Γ{Yx4  5huK7&H 7"l܀	'I&&=ؘa V Al',(Kc& O!&V %RUw& {n[ 5c6ʦ|rĤ()mRJ/	h~pƉjUsa@ 5dd 5/и	/m84`.KDbL+'(Z65*@FM<׀R `i	5kP	a$@EX	^ =S `
.n޻)8{<彳~IwrPYSMh  5e&lTqiz .@$	%P5+\46 (`,[	w; 5h'[Rj	av[W@MxFf-UI{ b@IIHTn&xe5YC#[@ 5lr'Evs㹦<MW5eˈu1qU7;P 5hԵ6z䶎]zRSvg?Ozxn*l/5Bٙfgؚ 0    Arial (),.2:ACEHIMNPSTabcdefghiklnopqrstuwy%   x d  
  FhTZ22@$Rّ|<  &C#!/2L! dvd3 FC#  Ȉ hBZ2C hdP<d2
 h 2/2"FFC" |<6"  ȃ   <~Z52 P\d6FFDB  dr22ECC! dl(:2 FC#  jd6 $2 ̈qvdB- Add_@  <td.2c  ptd@"  ܴddE- F@ dd Pdd8@ uQh 2?-$ 222GR dl(;2 @  t/2#!`Z22FAnZ $ 2 
 hd7HAp dn7	ǁp h2  EC  vdA2   .=bd22 Ôdd !LD  djd22 F!|<   l(8
 EC#  dvd> #C!dd:2 !Ȁ222"@   	2\d:2 F#")h\ 2 UhȄZ22Pf.FC"  dr22ECC! 2.2L#rё~Z    :GK     =                               ላI     ;          &   '      (           w    + 	-    g<0         (  Classic 7 of 7 *   	@ H 	    _A` 0 h         ( c1 +  oE @ @ @ @ @ 
   cc - 9 ?   
  change    @ @ @ @ @ + 
   cc - 10 ?(     c1  x      text   charAt R 	    _A` 0 h         ( c1 +  oE 	    _A` 0 h         ( c3 ,  k@ + , 	    _A` 0 h         ( c1 +  oE @ + r$@ + vU. @ + y7@ + }uA @ + J @ + S@ + ] @ 
   cc - 11 + f@ + %p @ + y@ + 5 @ + Ō@ + U @ + ՟ @ + e@ +  @ + u@ + 
   cc - 12 ?   / 
 c1  z keyval charCodeAt x text tempchar c3                  R 0         R     I T       R G z   H        3   	 	    _A` 0 h         ( c3 +  k	    _A` 0 h         ( c1 ,   @ , @ @ @ @ @ @ @ @ @ 
   cc - 13 ?   1 
 temp  x text charCodeAt val c3   change length         R     I       G      G    G P   	NH       @ @ @ @ @ @ @ @ @ @    * ?    	#    g?( h  
        ( text   < 	/    o!G 0
  f       (  - Shift Ciphers   D 	4    wp0
  f       (  Classic Cryptography   @       	 
                 % 
   cc -14 @ + @ @ @ @ @ @ @ @ @ 
   pc - 1   X+	7    wp0
  f       (  Public-Key Cryptography   AhA@  t+ QA@  + aA@  + qA@  + @  l+ $a@  P+ D@  0+ e@     
@    K$@  ɨ  h@  h  h@  (  h@    Ph@   b	7    wp0
  f       (  Public-Key Cryptography   @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @  w   x =  
  Fh<NxA2PܴddE- GR dvd42CS")h dl(?- L1u|<22@#aAѐ d~Z22!! d~Z61\d:2 @   %.2"@#1r ChP`Z )hȀ26#сhdd9KB   ( 2  D#!i ddd.2 GfC1 ȸ 2?-
CA dnZ22""F@$|<22 q d hd2 BFC `Lx h2   t$ 2  Dã! dvd3 FC#  ܴddE-F ܴdd<2 G#!hxdd@ G h$n#̀AQA dd2  h<   ./ 2  FS! dvd@hȊZ 
@#qdd ECaA^d8 H#  ȸtdE-F@( h
$n7A c  4d2  h<    B  h     * @_L7ď + @_I4 * @v(  , 4 	7    wp0
  f       (  Public-Key Cryptography   @ 
   pc - 2 	 h @ 	 h @ 	 h-B @ 	 h< @ 	 hKĴ @ 	 hZ @ 	 hiF @ 	 hx @ 	 h" @ 	 h%t @ 	 h)d @ 	 h-KT @ 	 h1D @ 	 h44 @ 	 h8$ @ 	 h<O @  ?    	 	7    wp0
  f       (  Public-Key Cryptography   K     =                               ! " 	-    g=o0         (  Public 1 of 14 &   	@ H @   ! & 
   pc - 3 *    `!0"  
  Fh a d삼   Uh    *    `!0"  
  Fh a d삼   Gh    .    `$"  
  Fh a `44uȂ   *0 h    .    `$"  
  Fh a `44uȂ   +J h       x t   
  Fh<8x.2L$!h|<   dhd22" ~Z  G!x 2;2F#")h 2@ EC#  ~Z22 Fc#! d252 @   7dd:2" Pvd:2 FC  dd0-KGDtd @#~Z.2報  dDx+A FC!\d@@"  ȃ  xd  h,n  h^d8
@#rё2 
@#aAѐl(0-FFC ȸ 2<2  h&F  h
l(B-FF@hȊL    ch    @ 	 h@ 	 h@ 	 h@ 	 h@ 	 h@ @ 	 h 	 h 	 h 	 h 	 h @ 	 h&	d 	 h&	d 	 h&	d 	 h&	d 	 h'	t @ 	 h34 	 h34 	 h34 	 h34 	 h34 @ 	 h@ 	 h@ 	 h@ 	 h@ 	 h@ @ 	 hMD 	 hMD 	 hMD 	 hMD 	 hMD @ 	 hZ 	 hZ 	 hZ 	 hZ 	 hZ @ 	 hfd 	 hfd 	 hfd 	 hfd 	 hgt @ 	 hs4 	 hs4 	 hs4 	 hs4 	 htD @ 	 h  	 h  	 h  	 h  	 h  @ 	 h#H 	 h#H 	 h#H 	 h#H 	 h#H @ 	 h& 	 h& 	 h& 	 h& 	 h& @ 	 h)d 	 h)d 	 h)d 	 h)d 	 h)t @ 	 h,4 	 h,4 	 h,4 	 h,4 	 h-D @ 	 h0 	 h0 	 h0 	 h0 	 h0 @ 	 h3L 	 h3L 	 h3L 	 h3L 	 h3L @ 	 h6 	 h6 	 h6 	 h6 	 h6 @ 	 h9d 	 h9d 	 h9d 	 h9d 	 h9t @ 	 h<4 	 h<4 	 h<4 	 h<4 	 h<4 @ ?    	 	 	 	 	 K     =                               I     ;          &   '      (            !  + & "  	-    g=o0         (  Public 2 of 14 +   .@ H @   ! & + 
   pc - 4 	    X 0 h        (  All users publish their public keys to a central server so that 
anyone can access them.  This is an essential step because 
people will need an intended recipient's public key in order to 
send them an encrypted message.   BC h    @  G؈ 9A	 h@ @  G G9 	 h @  |H U0	 h(
 @  H( ct(	 h6d @  !  qd  	 hC4 @  !` D	 hQE @  ! $ 	 h^ @  "  	 hl @  "  	 hyG @  y#   	 h!t @  i#` ģ퀉	 h%	D @  Q# ҃ 	 h($ @  A$  c܀	 h+ @  1$ S 	 h/K @  $ 3ˀ	 h2 @  	%` 	 h6 @  % 	 h9NT @  &  젉	 h<4 @ ?    	,    g3
0           (  Public Server   ظ@ L    r6,>[       -ՍVՠSc)ɀΎ;;S Rf; 垓 V͍Z      & ꀄ	 K     =                            !    I     ;          &   '      (            !  +  & "   	-    g=o0         (  Public 3 of 14 +   .@ H @   ! & + 
   pc - 5 	    X 0 h        (  Suppose Alice wants to send an encrypted message to Bob.  
To do so, she obtains his public key, which is available to 
anyone, and uses that key to encrypt her message.   Oh    @ 	 h@ @ 	 h @ 	 h(
 @ 	 h6d @ 	 hC4 @ 	 hQE @ 	 h^ @ 	 hl @ 	 hyG @ 	 h!t @ 	 h%	D @ 	 h($ @ 	 h+ @ 	 h/K @ 	 h2 @ 	 h6 @ 	 h9NT @ 	 h<4 @ ?      &	 K     =                            5   4I     ;          &   '      (            !  + 4& " C4	-    g=o0         (  Public 4 of 14 +   .@ H @  ! & + 
   pc - 6  # @  @   @  @   @  @   @  
@   @   @    @   @   @  ߣ @  ٣ @  ӣ @  ͣ @  ǣ @   @   *  3 ֻ  6 ę 5,	'    g"00
          (  Hi, Bob! 	  { 
 6 ř 9RÆ	&    g#00
          (  #dG;9)m     6 @~SX  	    X 0 h        (  When Bob receives a message, he decrypts it with his 
private key.  No one else can decrypt the message except 
Bob because only he knows the private key!   bW@h    @ 
   pc - 7 	 h@ @ 	 h @ 	 h&	d @ 	 h34 @ 	 h@ @ 	 hMD @ 	 hZ @ 	 hfd @ 	 hs4 @ 	 h  @ 	 h#H @ 	 h& @ 	 h)d @ 	 h,4 @ 	 h0 @ 	 h3L @ 	 h6 @ 	 h9d @ 	 h<4 @ ?    	 K     =                            ]   \I     ;          &   '      (           ! !  + \& "  \	-    g=o0         (  Public 5 of 14 +   .@ H @  ! & + 
   pc - 8   U@  ,S@  <R@  PPh@  dN@  tM @  KH@  I@  G@  @   @   @  `@  @  8@  `@   @  ި@@   ?     * !  J ! 6 ę =`	'    g"00
          (  Hi, Bob!   b 6 @~|	,    g3
0           (  Public Server   ظ@ ۀ	7    wp0
  f       (  Public-Key Cryptography   K     =                            p   oI     ;          &   '      (           I !  + o& "  o	-    g=o0         (  Public 6 of 14 +   .@ H @         	 
                 ! & + 
   pc - 9 	   X΀0 h        (  RSA is one of the most popular public-key algorithms.  
Named after the three researchers (Rivest, Shamir, and 
Adleman) who published the algorithm in the late 1970's, it 
has become widely used in many modern cryptographic 
systems.  The fundamental security of the algorithm is based 
on the difficulty of factoring very large numbers into their 
prime factors.   0EU h    @ 	 h@ @ 	 h @ 	 h&	d @ 	 h34 @ 	 h@ @ 	 hMD @ 	 hZ @ 	 hfd @ 	 hs4 @ 	 h  @ 	 h#H @ 	 h& @ 	 h)d @ 	 h,4 @ 	 h0 @ 	 h3L @ 	 h6 @ 	 h9d @ 	 h<4 @  ?    	 	7    wp0
  f       (  Public-Key Cryptography   K     =                               ሄI     ;          &   '      (           ] !  + & "  	-    g=o0         (  Public 7 of 14 +   .@ H @   ! & + 
   pc - 10 q   x 
H  
  Fh@Tn52 Fc#aA2 FFC  f2  LF@B0n C!P252F  dvd FB"  2@#"	p(6EC! 1   xd>
ED dnZ22"@#1ِx 2.2 L#!Td  t/Ro   d<22"  22 FFC)h dp(.2F@(x\d:2̇)`a |<6堑 Ȉ h<d  h 2.2L  h>d    	h4Tn52 GFD!Xdd>GFC#! 2@ EC#  dd>"G!dd  ̀#qܴdd ِxl(:2 @  <bd6F	P2	 FC   djd22"GFC#! 2@ EC#  x\d:2̇)`h 2.2 EC"h|<?-htd`@  \hdA2G\d@ FC#")h dr6L y2   Ro   d4.2
H&CAq ddd   h8d  h 24 h<d  h 2#  h>d    Dh.Tn52
@#aAh d~Z6R  djd22 ó!`Z@ ̆c  dd  Gf@ёr/2報   Yh    @ 	 h@ @ 	 h @ 	 h(
 @ 	 h6d @ 	 hC4 @ 	 hQE @ 	 h^ @ 	 hl @ 	 hyG @ 	 h!t @ 	 h%	D @ 	 h($ @ 	 h+ @ 	 h/K @ 	 h2 @ 	 h6 @ 	 h9NT @ 	 h<4 @  ?    	 	7    wp0
  f       (  Public-Key Cryptography   K     =                               መI     ;          &   '      (           p !  + & "  	-    g=o0         (  Public 8 of 14 +   .@ H @  ! & + 
   pc - 11    x d	k  
  fFh/Ro   d<22"  22 FFC)h dp(.2F@(x\d:2̇)`a |<6堑 Ȉ h<d  h 2.2L  h>d     hRo   d4.2
H&CAq ddd   h8d  h 24 h<d  h 2#  h>d     thRo   d4.2
H&CAq ddd LQ h8d  h< @@ h<d  h<2G h>d  h<2   	,Tn52
@$"qPd22 ѐdd12L#1ِx 2@#!2  Gf@i ddd<0ߖ@  \Ro!  dRx22
 Ptd@FC Ȉ h*d  h2 LS   djd.2 FCщxxd52
G h8d  h<	  h*d  h<4   %Tn52@#aAh$d 2CA GFC#! 2@ Fc#aAѐ 2.2 ECB	 23  h*d  h	 2@  2  h&F2 22 d`z Ȉ h 2   2;2 Ca@( h8d  h7< FS!xdd F@qPhd;2#S!X 2@ htd ̀$P~Z !R Ȃd6GRdX   VTh    @ 	 h@ @ 	 h @ 	 h(
 @ 	 h6d @ 	 hC4 @ 	 hQE @ 	 h^ @ 	 hl @ 	 hyG @ 	 h!t @ 	 h%	D @ 	 h($ @ 	 h+ @ 	 h/K @ 	 h2 @ 	 h6 @ 	 h9NT @ 	 h<4 @  ?    	 	7    wp0
  f       (  Public-Key Cryptography   K     =                               ሬI     ;          &   '      (            !  + & "  	-    g=o0         (  Public 9 of 14 +   .@ H @  ! & + 
   pc - 12 N   x 4r   
  fFh/Ro   d<22"  22 FFC)h dp(.2F@(x\d:2̇)`a |<6堑 Ȉ h<d  h 2.2L  h>d     hRo   d4.2
H&CAq ddd   h8d  h 24 h<d  h 2#  h>d    hRo   d4.2
H&CAq ddd LQ h8d  h< @@ h<d  h<2G h>d  h<2   tRo!  dRx22
 Ptd@FC Ȉ h*d  h2 LS   djd.2 FCщxxd52
G h8d  h<	  h*d  h<4    	Ro!  d4.2
H&CAq ddd   h(d  h2 !LFCᑐ d h(d  hF  h*d  h,i2 RfC  jd6  h8d  h<   \Z2 FC#! d\d !! dvd3  h(d  h%2 LS   djd.2 Hh#S! 26 F ,d8 CAbd K@  h*d  h 2   :f2>R$ 2<2EaAّ~Z FFC H d252 GCِȂd0- F zdA2 $ِ dd !LFC  dd    '/2$ 2>RCaAѐdd> FC#!ѐ dbd6!&C#! d^dE- Ca@( h8d  h<    Vh    @ 	 h@ @ 	 h @ 	 h(
 @ 	 h6d @ 	 hC4 @ 	 hQE @ 	 h^ @ 	 hl @ 	 hyG @ 	 h!t @ 	 h%	D @ 	 h($ @ 	 h+ @ 	 h/K @ 	 h2 @ 	 h6 @ 	 h9NT @ 	 h<4 @  ?    	 	7    wp0
  f       (  Public-Key Cryptography   K     =                               I     ;          &   '      (            !  + & "  	/    oȀ0         (  Public 10 of 14 +   .@ H @  ! & + 
   pc - 13    x  
  fFh/Ro   d<22"  22 FFC)h dp(.2F@(x\d:2̇)`a |<6堑 Ȉ h<d  h 2.2L  h>d     hRo   d4.2
H&CAq ddd   h8d  h 24 h<d  h 2#  h>d    hRo   d4.2
H&CAq ddd LQ h8d  h< @@ h<d  h<2G h>d  h<2   tRo!  dRx22
 Ptd@FC Ȉ h*d  h2 LS   djd.2 FCщxxd52
G h8d  h<	  h*d  h<4   .Ro!  d4.2
H&CAq ddd   h(d  h2 !LFCᑐ d h(d  hF  h*d  h,i2 RfC  jd6  h8d  h<  & Tn52 GD!yPl(0- FFDRdH dDx+AF x h*d  h2   h8d  h#< Db!h 2@#  \d8 q\d6
CA d2;2 	\	ddB-!ѐ2 Tn52 GCᰡ\d@ F#")2$d 2"< F@#aAh d<  h(d  h2   h8d  h	< DG#! 2  h(d  h 2?-G#" d   E8h    @ 	 h @ 	 h @ 	 h+
´ @ 	 h9C @ 	 hGt @ 	 hUET @ 	 hdD @ 	 hr$ @ 	 h  @ 	 h# @ 	 h'	 @ 	 h*ʴ @ 	 h.K @ 	 h1t @ 	 h5MT @ 	 h9D @ 	 h<$ @  ?    	 	7    wp0
  f       (  Public-Key Cryptography   K     =                               I     ;          &   '      (            !  + & "  	/    oȀ0         (  Public 11 of 14 +   .@ H @  ! & + 
   pc - 14     =  
  Fh:0x8 LfD! 2>B0n 
RǆCA,dd:2 댈#aAِ~Z  FF@h|<E- Cᡐ 2:2 RC#!2     ?f2;2 H#S! dxdA2fCё 2;2H#S! 2@ GfCᰠp(	 FF@Pp(8 Lp(.2 E#! 2?-@ ȃ  ,tdA2̆FCh d~Z;2 FB"  d252 F!d8F!ѐ 2.2##!ql(22@  .8x:2  h<d  h 2.2L  h>d  h, 2?- F@ \d@ FC#")h d\d> GCᰠ,dd &@~Z?- FB!ѐ dd2@   T	    W{0( h          ( p   (@"    _Oa  	  Fh  hH   	    W{0( h          ( q   UJ@"    XOa  	  Fh  hH   A?b    e#_B_   3        5ozs0>([ tR;)>/" N r3r
PuP 7    `	?H 
P 
  Fh
4.2
H&CAq ddd   h8d  ?i    \P            5n?s4 >L .>Xl tVkW5M ("/d9P gHzΔ   ?i    \P            5n?s4 >L .>Xl tVkW5M ("/d9P gHzΔ    H    e#_B    ozg:		a|Q vR|^Dbc:g:UԠ      =      9                   n p q phi                 ( "    XOa  	  Fh  hH 	  	    g'g0 h        ( n 
  2    `*X  	  Fh#b h # hY   ܃0	     g'g0 h        ( phi   <	$    g#W0        (  n=p*q   C	+    g50        (  (p-1) *(q-1)   	    W{0( h          ( e   'ŀ"    XOa  	  Fh  hH   J .    `-(  	  FhXd|xlPfd h d*     =      [:0     b     b       2  a e b phi d x y x2 x1 y2 y1 qx Math floor r gcd     	         I (                               	         
            H          R        	  
      	
 
 I    	    ^     pm 
  Fh	J;2!Fc#aAѐ 2  h*d  h 2?- F@ \d@ FC#  `Z12Ca@( h8d  h<	  h*d  h< @A@   uR    h^   	  Fhё@6(
x hq hI h ȫ  hf   @	     g'g  h        ( gcd   `@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @    
        ?    	    W{0( h          ( p   (@	    W{0( h          ( q   UJ@    =      9                 0 
 p_prime q_prime i p q n phi check p   check q          H 7   ?	         I      P       H 7   ?	         I     P    IL    I 7              7     I       	    ( 	    g'g0 h        ( n 
  	     g'g0 h        ( phi   <	$    g#W0        (  n=p*q   C	+    g50        (  (p-1) *(q-1)   	    W{0( h          ( e   'ŀr    =      [:0     b     b       [  a e b phi d x y x2 x1 y2 y1 qx Math floor r gcd dd _parent forward_button _visible error     	         I (                               	         
            H          R        	  
      	
 
 I    	      I P  	         H    G    N  O      ^ 	     g'g  h        ( gcd   `    p +` 
  Fh
4.2
H&CAq ddd   h(d   h
<A2FCC  pd0-
&@Ah d\d8̇aB r@   52F@ h(d&
  h,i2 RfC  jd6  h8d  h<    7c0"    XOa  	  Fh  hH   K	    g'g0 h        ( dd   D	7    wp0
  f       (  Public-Key Cryptography   D   =                           ;  a e b phi d x y x2 x1 y2 y1 qx Math floor r gcd dd error     	         I (                               	         
            H          R        	  
      	
 
 I    	      I B  	         H    G        I    ;          &   '      (            ! + & "  	/   oȀ0         (  Public 12 of 14 +  .@ H@@       	 
               ! & + 
   pc -15 L      *     [ *     l*  @  $q*     l   6 ę =` 6 @~|	-   _|_ac0
        (  DecryptButton 	&   g 00
         (  Decrypt 	&   g 00
         (  Decrypt 	&   g 00
         (  Decrypt L   	   *    [ *    l*  @ $q*    l  		 6 ę 5,
 6 ř 9RÆ 6 @~SX * @_L7ď + @_I4 * @v(  , 4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @    ?   +  pub { e , n } priv dd cipher  decipher M   G G G G G G G G 	 
	 	   
 I *     [ *     l*  @  $q*     l      M n cr i e cipher Bad M!   	         HL     H \         H &     ? P        
   I *    [ *    l*  @ $q*    l      cr n dcr i dd decipher    	         HL     H \         H &     ? P       	   W{0( h          ( M  n"   X[  
  FhbX h  K	#   g'g0 h        ( cipher  k`	%   g'g0 h        ( decipher  ;"   X[  
  FhbX h  <p  x dS  
  FhTZ;2 FCxd@ !Ȁ222"@  h  h2 ̀$ 23"Ptd42 G h  h 29K H y 28G   252  h8d  h< 
   2  @
 h&A0$*d  @ h 
 hi  h  H A 
 h 2P  h n    thTZ;2 LFCxd@ F!|<@H  h  h 2.2 H#S! d|<22"Ѱhd &AQ  . 2  @
 hxA1IT&<  h 
 hi  h   G
 .h 2P  h n    	hTg"G壳!X 2B-&C#!h df2;2 @ h  h! 2.2̈E#  ȸtd12 #!h 2@##!ѐ|<E-@"!ѐ 2   5bd22"  d^dA2 GfC!h d2;2 FFC#   djd22 FCxd@
̇F@hp(A2@#1ِx 2@   \$nZ22"@#C!dd>FFC  td  LF@xddB-
̈&C \d42@  SԀ"   X!V   
  FhB h  o@	    g<X0
 h        ( pub  <	!   g<O0
 h        ( priv  ؐˀ	7   wp0
  f       (  Public-Key Cryptography  K    =                              I    ;          &   '      (            ! + & "  	/   oȀ0         (  Public 13 of 14 +  .@ H@@     	 
                ! & + 
   pc - 16   x m	G 
  FhTZ;2 H&CX|<6#"I`*2   /Ro   d<22"  22 FFC)h dp(.2F@(x\d:2̇)`a |<6堑 Ȉ h<d  h 2.2L  h>d    thRo   d4.2
H&CAq ddd   h8d  h 24 h<d  h 2#  h>d    .hRo   d4.2
H&CAq ddd LQ h8d  h< @@ h<d  h<2G h>d  h<2   	Ro!  dRx22
 Ptd@FC Ȉ h*d  h2 LS   djd.2 FCщxxd52
G h8d  h<	  h*d  h<4   Ro!  d4.2
H&CAq ddd   h(d  h2 !LFCᑐ d h(d  hF  h*d  h,i2 RfC  jd6  h8d  h<   \ Ro!#  ]Tn52 GD!yPl(0- FFDRdH dDx+AF x h*d  h2   h8d  h<   !Ro!3  ]Tn52 GCᰡ\d@ F#")2$d 2"< F@#aAh d<  h(d  h2   h8d  h	< DG#! 2  h(d  h 2?-G#" d,
 2  @
 h&A0$*d  @ h 
 hi  h  ^ A 
 h 2P  h n  
h 2  @
 hxA1IT&<  h 
 hi  h   G
 h 2P  h n   Qlh    @ 	 h@ @ 	 h @ 	 h(
 @ 	 h6d @ 	 hC4 @ 	 hQE @ 	 h^ @ 	 hl @ 	 hyG @ 	 h!t @ 	 h%	D @ 	 h($ @ 	 h+ @ 	 h/K @ 	 h2 @ 	 h6 @ 	 h9NT @ 	 h<4 @  ?   +  pub { e , n } priv dd cipher  decipher M   G G G G G G G G 	 
	 	 	 	7   wp0
  f       (  Public-Key Cryptography  K    =                              I    ;          &   '      (            ! + & "  	/   oȀ0         (  Public 14 of 14 +  .@ H @  ! & + 
   pc - 17 P  ȅ 
  fj07ͅ{aeټ\o8@F1do:7AQ   @j,Fs"9Rȡd YsҔ$Bȹdk"Y,IHbd)dp(Y D Ȉ @#,L%d YRj(N&EadY,P& .l#QH"didP(Y,    %@*sҔ$Bȹdk"Y,IJ d`*Y,iJ dP ,5PdK"e!dȎL*Y@!K#B $(Y@ @,M(%B~P T;@tY	@    ,@ ɣdxY9BN 3T |\Y8Ead0Y@   A	@/,,(BdLD,ΖG !dd YsҔ$Bȹdk"Y,IJ CȎY0Y DK"d\ ,0EK#) @,VK&%" |5,O&EeqdbY @  
- ,@ 2qe|5,L
EejD~P5,&ed,SE G`P2,'uœ$Y ,,C!Ő   ]@ s,E"Edh ,, dlG2#,@:)@xD,,H%d @,R!l'E"1@Ȳ~P	@0œ vY>ߔ
 $Y ,,LK ȃ   ,@ qd~P@]N&Ed hPs9)W["@,FE"2X   y@!sҔ$Bȹdk"Y,IJ dP ,9ʖH9 h ,5JDeȎYJD  @$,V̈́w;rTEœGtY4,EsUȲtY@[
Edθp#ċ   
 ,@ ad0Y@  <Z@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @  ?    	7   wp0
  f       (  Public-Key Cryptography  K     =                                 $I   ! ;          &   '      (            ! !+ $& "  $@   
