From 70e4807997b1fcf3e8d14647dc0355e188a2a7c9 Mon Sep 17 00:00:00 2001 From: wieerwill Date: Wed, 1 Dec 2021 11:17:11 +0100 Subject: [PATCH] asymetric cryptography --- ...orkSecurity-cipher-block-chaining-mode.png | Bin 0 -> 29362 bytes Assets/NetworkSecurity-ecc-1.png | Bin 0 -> 15181 bytes Assets/NetworkSecurity-ecc-2.png | Bin 0 -> 10415 bytes Assets/NetworkSecurity-ecc-3.png | Bin 0 -> 24788 bytes Assets/NetworkSecurity-ecc-4.png | Bin 0 -> 20995 bytes Assets/NetworkSecurity-ecc-5.png | Bin 0 -> 47061 bytes Network Security.md | 554 +++++++++++++++++- 7 files changed, 544 insertions(+), 10 deletions(-) create mode 100644 Assets/NetworkSecurity-cipher-block-chaining-mode.png create mode 100644 Assets/NetworkSecurity-ecc-1.png create mode 100644 Assets/NetworkSecurity-ecc-2.png create mode 100644 Assets/NetworkSecurity-ecc-3.png create mode 100644 Assets/NetworkSecurity-ecc-4.png create mode 100644 Assets/NetworkSecurity-ecc-5.png diff --git a/Assets/NetworkSecurity-cipher-block-chaining-mode.png b/Assets/NetworkSecurity-cipher-block-chaining-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..c63ad073303e5589cb7236848fb7e30f266f7507 GIT binary patch literal 29362 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 literal 0 HcmV?d00001 diff --git a/Assets/NetworkSecurity-ecc-1.png b/Assets/NetworkSecurity-ecc-1.png new file mode 100644 index 0000000000000000000000000000000000000000..300c16042b7457114cb26bb011537f7ac5b063a1 GIT binary patch literal 15181 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 literal 0 HcmV?d00001 diff --git a/Assets/NetworkSecurity-ecc-2.png b/Assets/NetworkSecurity-ecc-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ce5f5da1ec150d1012d1008bc6bd498339e1f4a2 GIT binary patch literal 10415 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 IZ1&;*01fdYGXMYp literal 0 HcmV?d00001 diff --git a/Assets/NetworkSecurity-ecc-3.png b/Assets/NetworkSecurity-ecc-3.png new file mode 100644 index 0000000000000000000000000000000000000000..f812eaeabc5d3c870526ab77d1e8ed83e2edcf4e GIT binary patch literal 24788 zcmXtg1yojR(>97yiXx?wA`Q}^v>+1F(hVZr-Jl3acc+Aabax|NA|Tz;-6inPbKd`R zEl%i@d(S;{)#xuPEsBXjfPsXBgefj2{2mGERvP^1p`pO3W+PA!7n$o zkACp~Pwn2S*vVTO*g5Lj=pz|gSeolI*y`En>s#0wS=#L)H}NAOJwp-~7F2Lb+M026 zQqVtX-rr5`&UE}uPv(Owbnnh{sYhX2cOAFWKh@S%+ACYxGYDwvzSUH)6U4QC^l0n7 z0-6-}oky8I*lJ?8DLx;4jEJ8jMUE6U>5{ZCu;CwEI_ztxv0cTAOuDQ*q!Y;)^1~8B zOS>IBc?*rq+o*;D9i7ZuHkg8p%o{5=oPxp|ONb-F8~&Li5)lTE92LXHhQ||#3$+>$ z@j8XI2R_at_O13U?J=o%gT*Nv-k#fv|0G!C;&gYgsOh?Aw!wA(^i-LL!usiD$ST{# zcgvazc?!>Z$`lguG?T9s30%hL=!wjR14O@vhq+u&UdRYsl}|4C(Z{7W#=djM?5!kO zXxMekB@QXR72z#h7MqyZ%QncX$AA4dQs!(uJ5?b_Ohek(CuNtDn3HtQS;8w|2u+<# zT#Vh-^SoD^=EaMAM~lUu{!vj;Ik@4~NtT>MndL$cKjl5JYgeTcr7-(UK{k}npjjKm z)OfZSao8C`y!1U*>pj_XYs!0LTQ8e-p5*`P=~Qnw@-7IYphzf4Pk&D0akfD3aaB+? z`<$FS1DzaOxpYaE#5H6Y`5VnIT9r3bmF9{e@5XP73#Csa@H(?n%cRsVj+vU6JQ48V zb!lis&%lm7oXDM2k|iYd`8&=$Ju{;iBsPu#k5}ckUc6IgILJxL!_BRAa$KlcceasN zl)%m@r!A+72UmlI)Dgq??92&|9J^9DBFreJwXMzhcvM*q_wK`o4=+x(O|RA9OZW!| z-~Hx!a~<@QO{9SN?q2&~e3WuLeoifqP$!xrJO}X!F;FXzu@-HPT=>Gn!-EK4KG4?I zcG#Zu5z%uo=;`j(h3l5DQsQO3)M33d&Gql!KZTI$<%{|OZ|?yz4D@|-Io!AHe%=gF zCJB^KNP&U(t}ahen{}9rb=y#oojr!^39u>zSLIn?g{z zzIw4s>bZRoQ+Xg}=jf;+ym>)*Oqfw6;_0ufo&}`u^}n2p8zc-C!N$ghH}7m~d()1l zUfH^c;W6zn;x)yZ_wY}jh-VwE}b`;K>Y&k_{B9>WbOt5QhhQWw}=Zi z0o`4Rw{7s*u+m%Zi;&+_+U6j2yzg~Z$x0^3o&?83_)Ee0@tsbY$H?DCU$4qCSX*1u ziBg({|My4zm&T#z_FkkE?G+vE?TCw15CLb&C@iC9b)uMh%59obfr`S9kXl>}ZRpvd z(pHO=?wb{zhd!BTq+VaXAnpyFxR8+FrjkXAcNr-GNWp5ZTGW2m$B6Z+sr^x#41wCwb&|6Zz8SB5j5dUM48 zUIYW7@KQH<5Y}R?TWPw3nnO~mkd4_LEiEnlnKo z(Q&A-@bL8aRlJYIv9UQ@oOC(ypXD7WTG2ImEAoUUhSqu0P*72+Etd_X@JVQC&Dv|a z&NttJL+!j-P!-2zOSRM)TJ=t{)dkUE3fDd9Pv7e?^P!#9(U#w<@<^`s^FuQjNOGPi zT0eFvEh|%PbmQucVaP~N_Y#k!3J(i=t)`ZsxP%=;iTI9+c#5Mh)Lfh0lCW?4`=cva zhPya9G25;E%F{Yr6}XA#vRz@;ZM~D5mxnkSs-++O|L>`CGRDTVn|}(Hnm;2eC@IE^Iv$OTs3BLFK@kR7Kq%i0{Hw{O( zZ3R-k76pblX;Ty7kyF1jdF7sUhdNY=;*>=C!@sK)2F`>)IHHx7bJB0$-aS7*FP*8w zL^M;K?a7KDV!nuvmOjo`x7X%(HFh`kT?88WH2OR}5;_ChQO{Q{zaKl)DNZ%IXAx`J za}%eeq|k|y6A1l5M;~f6pD6WdLAG34cqKZ!yW}W-`?l4n@tI!zV+m2;$THV^Z77(T zSy>`JMobk(L(f@RS&^!jW7IdyKhY!zK%X7*ijIn6b{G*OF<$MSK_AmPTv|-3tvk)yF|n##QgAkjM&rJtH}$MoGWfUe*E~J zh@CqT5mDSrOOj-6``bD@(>3)M8+lSBUyJX<(JPnL)z!s~ijvQLIsNNW23HwpLL?b; zJ1HqirP?Zu3mxW8pxJb_T(pYt5>y#yngyP@?$d>Z1!3!u4i zh1wb#Ni}yBNvlmG3mh zHupP8sW~|CK0$Mqs7k_wPGsh_Mg7qk3iIDyTPP7-zRr%N&)8Mt`-ac4RmrRCO#&G% z{zSndZK$MfI zfU1y7Vly*DGXB5}N7%)Dd#Y-+$n%O`C$|)F9Pj%Q60TxP$pDaG=-Zj8TOZAP93LOQ zV#|+SwP(`dOrq+ZaCJ8}ByZ$N&PR+dPoa+eDZqn_GDDZaX!kO!N z%2e>#t-)9OpvTI=cJ=$%++x~Sl2Vh{wSi$Vg?3O zhJz{kCtDM-8uFTY^A$eoeVru*&;H1`iqjjd^u<59j{+}HKvHE?lSxVO^RD4Q5*ZWI zZt2bP%8JduGwYMxxxt=jdgt};v3{YUtHCd4WqHiXf`ab<{{6czP*&h<9(mU7uwSC^ z^5e2r$loN?*BQ+P=IrIBV-Fl1PhG|;;6DJ=@WbOaQJK_U7^7F{)ZG2PC7{~uKip0v zpeZb9eYbsCF-ln}!}izwMkaalRP>q-Q~DdXHLUH>z>Et4)<0U=*iWB!pdu}g}_g)yM1r!Os%6!mIjj*jd^LP@0L+95fgV(B7^DFJmSBV|x5+0enQ8iiem)hz_kGj?E zW2F|&4DRH!u^XtT00iRP?bSVOB+BwE2_9hi98^u~`{-r+{Q8Db%{TLAXoXMN4DJU$ zW}>2}4@~B9{9U5gNfinm^C|D~i2N~zL&y^ruR;FHtq4sSsD4f5dY&tlfyjr22o0CTpaAcSr5UEcNa(eYS z13#(!+e;b+!l0zQPybkbrr*;PZzW>ec zY=dgO6N^p))~_h>E+ckU=Yx;eSG%5LJOUp7oDBLC?8U8zfUjJiccUCyo09rC+`^ct zb8Px>y3%kuD`9WX0cbep1{KX3xB-v6l4}1~fvv?a`gOFlP3-4)YUzJo2xUIJQ}-pZ ztvzdK`5J39h3&R8B|#}h@D>j;S9^t2F1$K^{%oh$=%tv%ecj(-500cClx+#*KmBcF zvU<#J|90JR);U}2_Iq5PSS=U-)l|>x(y^xFWrxzi7^L}cpIb^WSXhP-H+!GWqTyKS z;P5b>&G5lP{qJS%TD=^Efr za23a%iTve##;?TYd4U-p^@Lc;k z`N;9S>XX<06sXJl(Er2}$1X+wj_0D4&=k((IgtNyWoakp7aKPB9oknT@j<(P{|f8q zJOiX(ZZe9&#KZ&`lZgk(ocRe29o^#AMA=6}L)(oJ+Mb>sqvhM~YV=0|-tLAv>XqSJ z+^*?Y4o5FM@eQcz15ScF&aqXa=SVnL(0s|j5{qgrV9xPaXVj*y-&dI zXPD|91LsZaq!ubWC8gny#?zKTyxOm{fRnUX4Jf<`D9|UWzfAb>UYxvpu$sh{YWwT8 zTD8!r)!oi}&h0}(;cII~YE>3eva+%bg_(InM(j?mu1nk7Qj(JQk!osci1^*&pxe>W z(~D!sieboh(fVR`Vt!2Fu%Ej{)Xz7#v|I3D;9y3wkvzKmCzizZVZrm4FJo{1tqQ~@ z73JnGj{K0%*J?=6taG@P6|Wbo9yp9!Utd2C3`#LOzv);X1+`2{-O&{H$)pk)JB43$ zb+zg2O-Uz7Mt*+&?4O51DhU*1gq3ESkFNO*iS_X+zBc|8_4l20u*GCl$Dja z9d{(n%(m>STnOIfjbh{Ayn$;ApH6o$g^!5K##@O|#J5s$4ev+sNlrMF?Mlp0f+n>} z)g{H!MfvisW9H)a%E#z&f;Uj{o9Y7MbOBzGkvIT9flCgR8OrQ5UhYT~nljSm=AK`o zn*ONS!=2wnaZktPwp)`e;-4NxkYp+i@M8p| zL$?xp_pV3(@iVo+rY3=xb8c+3w6t3QHou@gTwK;@+jH`1><9nE%THU44vwIk(!iZ z3xb|`CqPkRWjsP0A(@RnJCkJ$Pq9Dq+xLMC9PP{`HaEW>{cyCm_YJ15-OhA8+>0{D zU9Ha~4Mb#+)mLQl2z5{zb1IoxzN9k&4A&m{y&8@$(Mv$1XSo^IWV+7{W1t&FJ* zqwQ~V5Q`UMXOyP6o zTyqy<_l64JPc35Iz+@G5qMe@5YI$q8!M`!rBp@x_Z|T-PIvP#F=fZ35h=na^D;IzHeZ(Z4-Q&8J5fbDV-zFA*%`!zIOhXX*_6a2Dwa?&yLNQ8>!Uy1wG-SWUd zdvIv$PeuY45gH?=f9wQ7BG*+mOvtHM5ty!}MILW>!ctRZZmzFXE6w81liW*Rv1=`$D(CCMNFh2qxrmKA?buhJ72iaZa1Zdg1THhn=fa)}1vR z8AT~`iRQ^mbdK+}JZV~gx3~MN<~&?yHbV~rd(MY>=zlcI;94)^xvE2k^~odyC&zUZ2sOlWPSR7^Q!Tv}FLais%?V z$bV(_T3g;V_>XK0Pv}E^oiUox#qvxquiFS5niXm-INy;D<(hpU5!z$a}1#c^DC2x){!N*WmeYS}YO_D5UL!gyJw;t?P1Mf%@hNZpU*zF`0QjB}Uw zcy9Fg4>D$mJQ_NBn(gWUzQ07}DZZ3oge=7bfSxv^MCE)XN6=DYR!|QgL z-@mhb?82&VXxO*@{HvAYujSSKH}>DpYbn)3m~{?5#F%l}MAuEEvaR+y?e&w=HZc3l zC}vx^MxZb~d}&d$j2|d9jZk*IpuGM@;<;`d?>_V&o?lvdJ=f@-=(akr@{E}|ESy|4 zA}J|IM2?2LIALp7TUg$1+D!_`LukL`>cUg{SMG(9?M6kCMPu?>S{C81(aMT!3k9jK zqAe4Ia^!UE(!GijW7I7h@C*$N1Kl1pM^H+rlzh1BetA+c&gXN+Coa_gGd$_=pX(6k zp|#C7A$5VZp$ySLt<|(q6LBf2?^21JND8rkm*URxzAQz#eE0O|dDUYs--u{PMOM`I z8XDf*4qGa@d4$RlT{`RsW2&a(_J4!Ur@yKAh*<(>Ynz*EDp~kbW->~rRHz|tQD{%) zg$9y(!rhEVDOYQTwlnMxsh?nFU=b3U&WaU&w*}zXq=Y-Hv>aJ$MY!j5mv-8&tF2--BOpKP7MXD@j6oPWkYpWS*zDE9V z`B_|v!Dz4ccGDsC<9wMmvw%C3N&gkE&0jQ_c82g$E4C7`jLRV9ytHdNZJO&wwXfVY z+C;4?mqWwAc+S93Ftm@6hA%EeM^96zv(Z|xvXqJB!^!`v&T-d3HLRTL*Sg((QvM`h z{~1F@Mx>d{C3!;ip4*??z)bKQm}(}ysqhB5Hj%w?&f_u|d<@&YdBMY)`FS0sA}uM9 z5DDFyWR$m;j@v6VE7DRh$gu$#Iu8|T3&g*AW(KG%`f9VRA2%j0>nRV<>l>rtEITqX zGCI*e^~UT3-1Zwk{T`9;9UivL$mvR^x5iOmTG$8hTk?gq&962tHtaei^iHY_Z;a-x zPn1zlOjK~}f}}lO?|g`9PIEew^`@TL^2_=7T)#s7pSIEXTgWIX$AbDWxB-uz)zUfL zv(BJE|6$bG!rM42ds#kR73}+3`xL)~BqyzqJ!WxpvlkHN+H3>Qg9i_OUbg&X#OVH9 zQIH;xYl7f?WP|Q+J6d@2+Ru*1wAq~YbOut3%$@Bw{{+L&jBNb(<*8C9mlL%^{GHhW zD??XIi^nFYE-o%=FHU;HS;&TP;k|!C6&_?K_UYm4ra&P`l_e$Es9U&x8!`eU_2F+< z_#G6K#auSU2WM|eQ3km&eE@_9xi0fuvz!_Z#42f>``QD)h3@!svcj~xtLs}%&RXeM z!{tuhw8!PPg2D)63NfeI6PSywgM&paH(5+$h6m$)cD9@SZRk52-&)$l7giE2sb0OR zZaFo}L3HnlGDF+5J>5Ld7=+RF<8R(EYQMZWo@CiVx>{9bU~8rcO#BaBVPq>xa^*$F zhxH@OcY`}dSXl`c%0@5O1)N#tENc%)$J)L=Jj@oQTG-u``ryXv7(yU2H_NxTf0AWb zRro@sxViq2wz<-LYJ*td=+_&BpmS_+tXU+Zw6(BHn*Y5+$3@86)?0vz-iasC1Xbki zglNrkG9bcq@92*twKY7YWW9@|4Y*W4rPEMQQnI)l83_pq{W6wXGCOtj)(M?ttSwvZ zb^dpyIDNURPt?bl?-&}t+bB_&DIAjR*`jWo^3TQ*H%}C$WIF`yw`FK%_CAg0<*=~J z+(@!~wq#(Sz{MK5NYIm8&0wUp0plX9Zyq=DMgXP9H&sK^LML`!t~@4tj`Be12tmdQ zKHEVX`d41Bf7ag&03}}ebhA9`MH!9kq0*l@FGHOhiP4LQszf*ihD&+f_I?IA26Q zk1+dutury&RGy;C{lT(le4$kvl-x%+eA8d=5i0}ec7t7VcOu|{g<=pfhgU)Z!SwXB z1x-qh*?f8W9}C z7NIZWN3jaH7oAs&-YI|ZFuWU0iUJTJOp@UWQ{{3s208vcSp-JM@SUD{MbPsUXR6qE zu#g+`w4>%=$8*-~*CpLCM?J46&cnuigI{Zp!Gwtgb-4%u0PMc#mG;_v6D1LjQ8aDeOX;3Kl_xEd7j_b+>_D;DrUsLU7XL1U*x}5My=OO?&|BS z-+1%ZS&@USv1h)G)H5SX`q&ri;gk4pEuD9P!LE-Lk%Hb@o2K%j`~8&6|G-=q$UIrO z7a!=+xKT_MH#Z+w0G&X`#9SVIoYK~wX5BEXoVy_la*$!(DU0cPQ4*i_`w#=f(&LnlJ%VL4rGU4PUnz@@b% z?k(EZ;d@=xbZ50oK{B$EX;2Y0`3qjH5B)3cvx2~o5GokY6BZNJ)-Tmn^Xc-%Bf_Gu ziWvggR!#HBGri*s4E+hSX)se;92i(wSb`d^98$Eaylaq!s%OP*2xX#6XtSdPc=^K! zsC{hlWaTni1oeK(>HX|Q|DZ%&^=pmF>Kq^(n91RPqE*;oxU2TM)4$YQy5@fI;0W z!L(~)4Gj&%wIw4ty=i`9 zm~^I)a?!F*PjQ#!3c*)-Q*qh)>_}lomk~hmlI3ylXELC&TT3RG;-@YAz zUv+;#bNcm57HZEwAi(6LJG-z|NM2XDL957yqBUh=z|tG@!VN_KO@MU)7}aSF`ohEh zfq{CKD`Y7y|5!vkE*X;F@UCyV$JU}BMpX~ModKR@W;z{ZZ7 z7*w)X+}xarPc4PmMI*fPg|*Ff)?>(5mIhh~0J%dXL8B-v3=5y}+6#wTy4Y#|L#3I@ zV8|BEllvmr?<3<`KGMJ-Y}#7+Qdn5%Acv_bhkJ3niK?>`gVPGCnrgSqQ&HL%EZe2) zf04G^G>v9zD{2M(QP3e1@FP3LD?8;qPZU-5kP+ZupGjRm{MQ%g`G0#;O(l*f&gm)I zI|2E^XZZ93yBS=CuE9ZNo+yKYtSpqbEDV`f*O$Aa4@AdVpd4jY-nR_8miBjUf5H8r zrw7kLQczU19^^Y^2IUv!A&I21@sCL|^r1yiCcRQCNjV+-K|ZS`q7 z&V2u%(4Ux26GY5||N0#UdR_#@N8MEk`ibh(sPk7WvhgxJ40z;}Q!1~@{|sy3~;aH+>9XQ=y%^xW{$)7A3u-UU|LEWbnO#?q<$ z=KQfyQ9t3v_=konv#?IdRvmol+ra%pA>QQ`B%*S;X?il_(!=i0vhklxBO?L z&48_9HeUR>xR@D_yo?yKH}c^W9|hy7@4d2}Eq|?;@mkFdDiGy!l89;_MR1VrO{T<~dJu2jVv+le@xGVP zvR=@^f%Eg{&wX($Z#JqpezjBF!6G2YwP9~ffgAR%;L_Bv{jC%2!5w2kdv&3)HyK04 zIxV*obJb>&Kt=h_>4liV`czfXe@!;@D}I!9aU~@#@%)QRlpm7VVOagC6lC|hndnv( z1Z&Q#P1RNBslBnro{M)0oe(oIH=Wq{#&zl7Wt4cTs;UMNaYcA}d6{azAn5Dv_WvQD z&1%1)ke-q8U%9Op6^Au+4kT!!Rtvs<{V8B*yec9B+vRxUEqn)%0;%};h@tsZw3X7U z6~shE;Ue+!@+yRgjI$Y|t9BK(*&B2?n*e!LWFfc&gveQ1CZ*U@Wj4`jJII%9BYct# zrxPgEaFeH}!_M>%hgYp3a1FxxA}eNuUa4*q2AWOida#7H4}4`Dzsy0s;bf&#{G6yr8C=;}7)})}-D_;N4w( z{*kxqeUJz_Q^OH9L~RNjui;d!g0CEAJg&3|C7!QZhLrgyrI_vCf54iS}r{8D85 zSgQ$~r`Lkw(dYKxLhInwvY=aPXk^}gaO(CN{kFcDaK7?28)E zSwHZ_z}iDSI5-%2@OFf3$~7?Sxp+?ayPmw9{K6S4hMzK(VT~jr8R6ZL)Q3NDWUPQs z`aU3jCob+ksq23aGD-hEejur6=1rF%@~y^Fku^2QW}QykJ_NqYmfG9ZHGjF=q|8Dm z7Yn)x!i0pl0|2}nNXO~1QjLf?`&7v6?t}ycnQOd(oQqy(h(72@E4EOJ;2#}8y~wq9 z32VY_fT+cjPasp(*Jt`L<-duLB~Rv-uM_F&AMz_J%g3pOGjJO|Tu+u%V&5u672*Uu z`9Yt93*tXVPfN>Er63wi@D`N0{|{`!2XOHdwOwDC4jE;BJ+uiS;p>5f4VTsYr}L!H z(1$>w85&%U-?OliA;fKt-!&1FEMzaK&mFV|ESs)6;IaLLL$~grq9W7;(B;2<_$Y){ z(XHJt!mX`VCp+4&+L#<$rrYKVQZx%oIH|{(V69U^37FsyNcr!-HZscT8A5ZVau*F& z&`^TM&$P?6izO66b|}7Teg}9A6nONVkv{n9h3?V1+0HWaH%7yGgVC$u`4nhk0RT=2ZX#bf4?FRk?yU#ckdqU&ZQ!h7S9`x zind1%l8C2NIsJ%r?ahm^0!9m7dl$G|NKcq`kU*Jeo0?Kz?h@96fKw?C~Hlh6a6cWTS1{k`TIj`t&JMRBWvFk_nkb(!XUR@81XS4o!n^b0@n~ry+73 zd3ZDdt@oJfn|XHY$^{En2Zc^F2Yk(Wz(9Zp|u52&upT;xUkH=me@U`aoR8 zUphMjA;!JpuAF{5-g*JW?A2K7;8OV|OMisz5{?+c9}$<9R^q|ceOsVj#c8?x%$sB4 zG@~wBal@3FsyvM7&NK9!yRSgXYHVygySRAQen(gFH@1m)EdyCWrfpuXdZ%Qrk-D~& zRIu}qwUkspMSIpn4_F2+ECafh(DVK1L1c%@3%i5y(fuAxZlS%IKQ~q8bvE_Wn&V5 z>CX{EktULp%VydoXsRxrlbPwwqSvuEEF%yv`i&B^ih42<)EFKB-gPBB0kI z?LqpN)%C;-q2Wf8m+^5<`j7CgncGPM{Er2_ZcO5}g@uJ1F#d>7cXSehm_Z-y2qC7| z6N=r3W6lgS>u?`V%^HxwQ2q-V0N`{Y2Cf9t*kDK|ML9LiA5FL&n!c%+rOL(JJa$1G zGGNmEs}M$w12-NW9sT$k6UeHQlT!}X@^?CV)6FADFHXD~>;b9`S5{CC7kI=)dU$=uPj@>weMB#Dbp z=VFyKZ;)QEm)w^wO8jmkEabQHVeMC1{mu2Iw~x;c;&)|KGuFXrBUdLJG_m){wx&T? z2EO?ivRz}1)pt#;{`)cdU_gG$89>;jR-ds`mSd5HG?bMP9_W?2#NfwP?IOcX%Rh|ywqJ^Utjs3nw;Dt z(?9uXSy{gDni8Ylb3>cQxVX5?p4VHMH<>gTjfGLHc1un}VI9|p;b0&2; z)Miq-AjUXZWmyCmXi$eaPP?udU_Su=hvS)wwoUyt3AVmMAon{(Y2VgCgyJfhf%)EyWKXp7+Kw zQ9pk!6dmWi4Gn`C5f+y$Fnfwq%e(Gk%DbLzd`B}`%G*TY2~GmQjV~yexv`%RX(kYW zDQ}^ZnSn(kVl`siUzAu&X}2}bLgKb3c;wP>KAj_%q0->O0ihBpf

xX&P~%;Cb0> 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 literal 0 HcmV?d00001 diff --git a/Assets/NetworkSecurity-ecc-4.png b/Assets/NetworkSecurity-ecc-4.png new file mode 100644 index 0000000000000000000000000000000000000000..157e805a8cdc668c37b82eae6ea4c4685e098780 GIT binary patch literal 20995 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 = 99, A = 10, B = 11, ..., Z = 35. So ,,HELLO'' would be encoded as 1714212124. If necessary, break M into blocks of smaller messages: 17142 12124 +- To encrypt, compute: $E = M^e\ MOD\ n$ + - This can be done efficiently using the square-and-multiply algorithm +- To decrypt, compute: $M’=E^d\ MOD\ n$ + - As $d\times e\equiv 1\ mod\ \phi(n)\Rightarrow\exists k\in\mathbb{Z}:(d\times e)-1=k\times\phi(n)\Leftrightarrow(d\times e)=k\times\phi(n)+1$ + - we have: $M’\equiv E^d\equiv M^{e\times d}\equiv M^{k\times\phi(n)+1}\equiv 1^k\times M\equiv M\ mod\ n$ +- As $(d\times e)=(e\times d)$ the operation also works in the opposite direction, that means you can encrypt with d and decrypt with e + - This property allows to use the same keys d and e for: + - Receiving messages that have been encrypted with one’s public key + - Sending messages that have been signed with one’s private key +- To set up a key pair for RSA: + - Randomly choose two primes $p$ and $q$ (of 100 to 200 digits each) + - Compute $n=p\times q,\phi(n)=(p-1)\times (q-1)$ (Lemma 2) + - Randomly choose $e$, so that $gcd(e,\phi(n))=1$ + - With the extended euclidean algorithm compute d and c, such that: $e\times d+\phi(n)\times c = 1$, note that this implies, that $e\times d\equiv 1\ mod\ \phi(n)$ + - The public key is the pair $(e, n)$ + - The private key is the pair $(d, n)$ +- The security of the scheme lies in the difficulty of factoring $n=p\times q$ as it is easy to compute $\phi(n)$ and then $d$, when $p$ and $q$ are known +- This class will not teach why it is difficult to factor large n’s, as this would require to dive deep into mathematics + - If p and q fulfill certain properties, the best known algorithms are exponential in the number of digits of n + - Please be aware that if you choose p and q in an ,,unfortunate'' way, there might be algorithms that can factor more efficiently and your RSA encryption is not at all secure: + - Therefore, p and q should be about the same bitlength and sufficiently large + - $(p-q)$ should not be too small + - If you want to choose a small encryption exponent, e.g. 3, there might be additional constraints, e.g. $gcd(p-1, 3) = 1$ and $gcd(q-1,3)=1$ + - The security of RSA also depends on the primes generated being truly random (like every key creation method for any algorithm) + - Moral: If you are to implement RSA by yourself, ask a mathematician or better a cryptographer to check your design + +## Some More Mathematical Background +- Definition: finite groups + - A group ( S , \oplus) is a set S together with a binary operation \oplus for which the + following properties hold: + - Closure: For all a, b \in S , we have a \oplus b \in S + - Identity: There is an element e \in S , such that e \oplus a = a \oplus e = a for all + a \in S + - Associativity: For all a, b, c \in S , we have ( a \oplus b ) \oplus c = a \oplus ( b \oplus c ) + - Inverses: For each a \in S , there exists a unique element b \in S , such + that a \oplus b = b \oplus a = e + - If a group ( S , \oplus) satisfies the commutative law \forall a, b \in S : a \oplus b = b \oplus a + then it is called an Abelian group + - If a group ( S , \oplus) has only a finite set of elements, i.e. |S| < \infty, then it is + called a finite group +- Examples: + - $(\mathbb{Z}_n , +_n)$ + - with $\mathbb{Z}_n:=\{[0]_n,[1]_n,...,[n-1]_n\}$ + - where $[a]_n:=\{b \in \mathbb{Z} | b \equiv a mod n\}$ and + - $+_n$ is defined such that $[a]_n+_n[b]_n=[a+b]_n$ + - is a finite abelian group. For the proof see the table showing the properties of modular arithmetic + - $(\mathbb{Z}^*_n , \times_n)$ + - with $\mathbb{Z}^*_n :=\{[a]_n\in \mathbb{Z}_n | gcd(a,n)=1\}$, and + - $\times_n$ is defined such that $[a]_n\times_n [b]_n=[a\times b]_n$ + - is a finite Abelian group. Please note that $\mathbb{Z}^*_n$ just contains those elements of $\mathbb{Z}_n$ that have a multiplicative inverse modulo n. For the proof see the properties of modular arithmetic + - Example: $\mathbb{Z}^*_{15}=\{[1]_{15},[2]_{15},[4]_{15},[7]_{15},[8]_{15},[11]_{15},[13]_{15},[14]_{15}\}$, as $1\times 1\equiv 1 mod 15$, $2 \times 8 \equiv 1 mod 15$, $4 \times 4 \equiv 1 mod 15$, $7 \times 13 \equiv 1 mod 15$, $11 \times 11 \equiv 1 mod 15$, $14 \times 14 \equiv 1 mod 15$ +- If it is clear that we are talking about $(\mathbb{Z}_n, +_n)$ or $(\mathbb{Z}^*_n, \times_n)$ we often represent equivalence classes $[a]_n$ by their representative elements a and denote $+_n$ and $\times_n$ by $+$ and $\times$, respectively. + - Definition: finite fields + - A field $(S,\oplus, \otimes)$ is a set S together with two operations $\oplus$, $\otimes$ such that + - $(S,\oplus)$ and $(S\backslash\{e_{\oplus}\},\otimes)$ are commutative groups, i.e. only the identity element concerning the operation $\oplus$ does not need to have an inverse regarding the operation $\otimes$ + - For all $a,b,c\in S$, we have a $\otimes(b\oplus c)=(a\otimes b)\oplus(a\otimes c)$ + - If $|S|<\infty$ then $(S,\oplus,\otimes)$ is called a finite field +- Example: $(\mathbb{Z}_p, +_p, \times_p)$ is a finite field for each prime p +- Definition: primitive root, generator + - Let $(S,\circ)$ be a group, $g\in S$ and $g^a:=g\circ g\circ...\circ g$ (a times with $a\in\mathbb{Z}^+$) + - Then g is called a primitive root or generator of $(S,\circ):\Leftrightarrow\{g^a|1\leq a\leq |S|\}=S$ + - Examples: + - 1 is a primitive root of $(\mathbb{Z}_n, +_n)$ + - 3 is a primitive root of $(\mathbb{Z}^*_7, \times_7)$ + - Not all groups do have primitive roots and those who have are called cyclic groups +- Theorem 5: + - $(\mathbb{Z}^*_n, \times_n)$ does have a primitive root $\Leftrightarrow n\in\{2,4,p,2\times p^e\}$ where p is an odd prime and $e\in\mathbb{Z}^+$ +- Theorem 6: + - If $(S,\circ)$ is a group and $b\in S$ then $(S’,\circ)$ with $S’=\{b^a|a\in\mathbb{Z}^+\}$ is also a group. + - As $S’\subseteq S,(S’,\circ)$ is called a subgroup of $(S,\circ)$ + - If b is a primitive root of $(S,\circ)$ then $S’=S$ +- Definition: order of a group and of an element + - Let $(S,\circ)$ be a group, $e\in S$ its identity element and $b\in S$ any element of $S$: + - Then $|S|$ is called the order of $(S,\circ)$ + - Let $c\in\mathbb{Z}^+$ be the smallest element so that $b^c=e$ (if such a c exists, if not set $c=\infty$). Then c is called the order of b. +- Theorem 7 (Lagrange): + - If G is a finite group and H is a subgroup of G , then $|H|$ divides $|G|$. + - Hence, if $b\in G$ then the order of b divides $|G|$. +- Theorem 8: + - If G is a cyclic finite group of order n and d divides n then G has exactly $\phi(d)$ elements of order $d$. In particular, G has $\phi(n)$ elements of order n. +- Theorems 5, 7, and 8 are the basis of the following algorithm that finds a cyclic group $\mathbb{Z}^*_p$ and a primitive root g of it: + - Choose a large prime q such that $p=2q+1$ is prime. + - As $p$ is prime, Theorem 5 states that $\mathbb{Z}^*_p$ is cyclic. + - The order of $\mathbb{Z}^*_p$ is $2\times q$ and $\phi(2\times q)=\phi(2)\times\phi(q)=q-1$ as $q$ is prime. + - So, the odds of randomly choosing a primitive root are $(q-1)/2q \approx 1/2$ + - In order to efficiently test, if a randomly chosen g is a primitive root, we just have to test if $g^2\equiv 1 mod p$ or $g^q\equiv 1 mod p$. If not, then its order has to be $|\mathbb{Z}^*_p|$, as Theorem 7 states that the order of g has to divide $|\mathbb{Z}^*_p|$ +- Definition: discrete logarithm + - Let p be prime, g be a primitive root of $(\mathbb{Z}^*_p,\times_p)$ and c be any element of $\mathbb{Z}^*_p$. Then there exists z such that: $g^z\equiv c mod p$ + - z is called the discrete logarithm of c modulo p to the base g + - Example 6 is the discrete logarithm of 1 modulo 7 to the base 3 as $3^6\equiv 1 mod 7$ + - The calculation of the discrete logarithm z when given g, c, and p is a computationally difficult problem and the asymptotical runtime of the best known algorithms for this problem is exponential in the bitlength of p + +## Diffie-Hellman Key Exchange +- The Diffie-Hellman key exchange was first published in the landmark paper [DH76], which also introduced the fundamental idea of asymmetric cryptography +- The DH exchange in its basic form enables two parties A and B to agree upon a shared secret using a public channel: + - Public channel means, that a potential attacker E (E stands for eavesdropper) can read all messages exchanged between A and B + - It is important, that A and B can be sure, that the attacker is not able to alter messages, as in this case he might launch a man-in-the-middle attack + - The mathematical basis for the DH exchange is the problem of finding discrete logarithms in finite fields + - The DH exchange is not an asymmetric encryption algorithm, but is nevertheless introduced here as it goes well with the mathematical flavor of this lecture... +- If Alice (A) and Bob (B) want to agree on a shared secret s and their only means of communication is a public channel, they can proceed as follows: + - A chooses a prime p, a primitive root g of $\mathbb{Z}^*_p$, and a random number q: + - A and B can agree upon the values p and g prior to any communication, or A can choose p and g and send them with his first message + - A computes $v=g^q\ MOD\ p$ and sends to $B:\{p,g,v\}$ + - B chooses a random number r: + - B computes $w=g^r\ MOD\ p$ and sends to $A:\{p,g,w\}$ (or just $\{w\}$) + - Both sides compute the common secret: + - A computes $s=w^q\ MOD\ p$ + - B computes $s’=v^r\ MOD\ p$ + - As $g^{q\times r}\ MOD\ p = g^{r \times q}\ MOD\ p$ it holds: $s=s’$ + - An attacker Eve who is listening to the public channel can only compute the secret s, if she is able to compute either q or r which are the discrete logarithms of v, w modulo p to the base g +- If the attacker Eve is able to alter messages on the public channel, she can launch a man-in-the-middle attack: + - Eve generates to random numbers $q’$ and $r’$: Eve computes $v’=g^{q’}\ MOD\ p$ and $w’=g^{r’}\ MOD\ p$ + - When A sends $\{p,g,v\}$ she intercepts the message and sends to $B:\{p,g,v’\}$ + - When B sends $\{p,g,w\}$ she intercepts the message and sends to $A:\{p,g,w’\}$ + - When the supposed ,,shared secret'' is computed we get: + - A computes $s_1=w’^q\ MOD\ p = v^{r’}\ MOD\ p$ the latter computed by E + - B computes $s_2=v’^r\ MOD\ p = w^{q’}\ MOD\ p$ the latter computed by E + - So, in fact A and E have agreed upon a shared secret $s_1$ as well as E and B have agreed upon a shared secret $s_2$ + - If the ,,shared secret'' is now used by A and B to encrypt messages to be exchanged over the public channel, E can intercept all the messages and decrypt/re-encrypt them before forwarding them between A and B. +- Two countermeasures against the man-in-the-middle attack: + - The shared secret is ,,authenticated'' after it has been agreed upon + - We will treat this in the section on key management + - A and B use a so-called interlock protocol after agreeing on a shared secret: + - For this they have to exchange messages that E has to relay before she can decrypt / re-encrypt them + - The content of these messages has to be checkable by A and B + - This forces E to invent messages and she can be detected + - One technique to prevent E from decrypting the messages is to split them into two parts and to send the second part before the first one. + - If the encryption algorithm used inhibits certain characteristics E can not encrypt the second part before she receives the first one. + - As A will only send the first part after he received an answer (the second part of it) from B, E is forced to invent two messages, before she can get the first parts. +- Remark: In practice the number g does not necessarily need to be a primitive root of p, it is sufficient if it generates a large subgroup of $\mathbb{Z}^*_p$ + +## The ElGamal Algorithm +- The ElGamal algorithm can be used for both, encryption and digital signatures (see also [ElG85a] ) +- Like the DH exchange it is based on the difficulty of computing discrete logarithms in finite fields +- In order to set up a key pair: + - Choose a large prime p, a generator g of the multiplicative group $\mathbb{Z}^*_p$ and a random number v such that $1\leq v\leq p - 2$. Calculate: $y=g^v mod p$ + - The public key is $( y, g, p )$ + - The private key is v +- To sign a message m : + - Choose a random number k such that k is relatively prime to $p-1$. + - Compute $r=g^k mod p$ + - With the Extended Euclidean Algorithm compute $k^{-1}$, the inverse of $k mod (p - 1)$ + - Compute $s=k^{-1} \times ( m - v \times r) mod ( p - 1)$ + - The signature over the message is $( r, s )$ +- To verify a signature $( r , s )$ over a message m: + - Confirm that $y^r \times r^s\ MOD\ p = g^m\ MOD\ p$ + - Proof: We need the following + - Lemma 3: Let p be prime and g be a generator of $\mathbb{Z}^*_p$. Then $i \equiv j mod ( p -1) \Rightarrow g i \equiv g j mod p$ + - Proof: $i\equiv j mod (p-1) \Rightarrow$ there exists $k\in \mathbb{Z}^+$ such that $(i-j)=(p-1)\times k$ + - So, $g^{(i-j)}=g^{(p-1)\times k} \equiv 1^k\equiv 1 mod p$, because of Theorem 3 (Euler) $\Rightarrow g^i \equiv g^j mod p$ + - So as $s\equiv k^{-1}\times(m-v\times r) mod (p-1)$ + - $\Leftrightarrow k \times s\equiv m-v\times r mod (p-1)$ + - $\Leftrightarrow m \equiv v\times r+k\times s mod (p-1)$ + - $\Rightarrow g^m \equiv g^{(v\times r+ k\times s)} mod p$ with Lemma 3 + - $\Leftrightarrow g^m \equiv g^{(v\times r)}\times g^{(k\times s)} mod p$ + - $\Leftrightarrow g^m \equiv y^r\times r^s mod p$ +- Security of ElGamal signatures: + - As the private key v is needed to be able to compute s, an attacker would have to compute the discrete logarithm of y modulo p to the basis g in order to forge signatures + - It is crucial to the security, that a new random number k is chosen for every message, because an attacker can compute the secret v if he gets two messages together with their signatures based on the same k (see [Men97a], Note 11.66.ii) + - In order to prevent an attacker to be able to create a message M with a matching signature, it is necessary not to sign directly the message M as explained before, but to sign a cryptographic hash value $m=h(M)$ of it (these will be treated soon, see also [Men97a], Note 11.66.iii) +- To encrypt a message m using the public key $(y,g,p)$: + - Choose a random $k\in\mathbb{Z}^+$ with $k 512 | +- The security also heavily depends on the implementation! + - The different cases (e.g. with O) in ECC calculation may be observable, i.e., power consumption and timing differences + - Attackers might deduct side-channel attacks, as in OpenSSL 0.9.8o [BT11] + - Attacker may deduce the bit length of a value k in $kP$ by measuring the time required for the square and multiply algorithm + - Algorithm was aborted early in OpenSSL when no further bits where set to ,,1'' + - Attackers might try to generate invalid points to derive facts about the used key as in OpenSSL 0.9.8g, leading to a recovery of a full 256-bit ECC key after only 633 queries [BBP12] +- Lesson learned: Do not do it on your own, unless you have to and know what you are doing! + +### Foundations of ECC - Further remarks +- As mentioned earlier it is possible to construct cryptographic elliptic curves over $G(2^n)$, which may be faster in hardware implementations + - We refrained from details as this would not have brought many different insights! +- Elliptic curves and similar algebraic groups are an active field of research and allow other advanced applications e.g.: + - So-called Edwards Curves are currently discussed, as they seem more robust against side-channel attacks (e.g. [BLR08]) + - Bilinear pairings allow + - Programs to verify that they belong to the same group, without revealing their identity (Secret handshakes, e.g. [SM09]) + - Public keys to be structured, e.g. use ,,Alice'' as public key for Alice (Identity based encryption, foundations in [BF03]) +- Before deploying elliptic curve cryptography in a product, make sure to not violate patents, as there are still many valid ones in this field! + +## Conclusion +- Asymmetric cryptography allows to use two different keys for: + - Encryption / Decryption + - Signing / Verifying +- The most practical algorithms that are still considered to be secure are: + - RSA, based on the difficulty of factoring and solving discrete logarithms + - Diffie-Hellman (not an asymmetric algorithm, but a key agreement protocol) + - ElGamal, like DH based on the difficulty of computing discrete logarithms +- As their security is entirely based on the difficulty of certain mathematical problems, algorithmic advances constitute their biggest threat +- Practical considerations: + - Asymmetric cryptographic operations are about magnitudes slower than symmetric ones + - Therefore, they are often not used for encrypting / signing bulk data + - Symmetric techniques are used to encrypt / compute a cryptographic hash value and asymmetric cryptography is just used to encrypt a key / hash value + + # Modifikationsprüfwerte # Zufallszahlengenerierung # Kryptographische Protokolle @@ -744,4 +1258,24 @@ Standardisierte AES-Konfigurationen - [SR14] G. Schäfer, M. Rossberg - Netzsicherheit - [Sch96] B. Schneier - Applied Cryptography Second Edition: Protocols, Algorithms and Source Code in C - [Sta13] W. Stallings - Cryptography and Network Security: Principles and Practice -- [Sti05] D. R. Stinson - Cryptography: Theory and Practice (Discrete Mathematics and Its Applications) \ No newline at end of file +- [Sti05] D. R. Stinson - Cryptography: Theory and Practice (Discrete Mathematics and Its Applications) +- [Bre88a] D. M. Bressoud. - Factorization and Primality Testing +- [Cor90a] T. H. Cormen, C. E. Leiserson, R. L. Rivest. _Introduction to Algorithms. +- [DH76] W. Diffie, M. E. Hellman - New Directions in Cryptography +- [ElG85a] T. ElGamal - A Public Key Cryptosystem and a Signature Scheme based on Discrete Logarithms. +- [Kob87a] N. Koblitz - A Course in Number Theory and Cryptography +- [Men93a] A. J. Menezes - Elliptic Curve Public Key Cryptosystems. +- [Niv80a] I. Niven, H. Zuckerman - An Introduction to the Theory of Numbers +- [RSA78] R. Rivest, A. Shamir und L. Adleman - A Method for Obtaining Digital Signatures and Public Key Cryptosystems +- [KAFL10] T. Kleinjung, K. Aoki, J. Franke, A. Lenstra, E. Thomé, J. Bos, P. Gaudry, A. Kruppa, P. Montgomery, D. Osvik, H. Te Riele, A.Timofeev, P. Zimmermann - Factorization of a 768-bit RSA modulus +- [LM10] M. Lochter, J. Merkle - Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation_ +- [NIST99] NIST - Recommended Elliptic Curves for Federal Government Use +- [NIST12] NIST - Recommendation for Key Management: Part 1: General (Revision 3) +- [Ko87] N. Koblitz - Elliptic Curve Cryptosystems +- [BBP12] B.B. Brumley, M. Barbosa, D. Page, F. Vercauteren - Practical realisation and elimination of an ECC-related software bug attack +- [BT11] B.B. Brumley, N. Tuveri - Remote timing attacks are still practical +- [BLR08] D. Bernstein, T. Lange, R. Rezaeian Farashahi - Binary Edwards Curves +- [NIST09] NIST - Digital Signature Standard (DSS) +- [SM09] A. Sorniotti, R. Molva - A provably secure secret handshake with dynamic controlled matching +- [BF03] D. Boneh, M. Franklin - Identity-Based Encryption from the Weil Pairing +- [Sch85] R. Schoof - Elliptic Curves over Finite Fields and the Computation of Square Roots mod p \ No newline at end of file