Euler’s totient function, ϕ(n), counts the numbers between 1 and n that are coprime to n. Examples: ϕ(p)=p−1 for prime p; for n = pq (p and q prime), ϕ(n)=(p−1)(q−1).</p></li><li><p>Euler’sTheorem:ifgcd(x,n)=1,thenx^{\phi(n)} \equiv 1 \pmod{n}.</p></li><li><p>Corollary:foranyxcoprimetonandanyintegerk,x^k \equiv x^{k \bmod \phi(n)} \pmod{n}.</p></li><li><p>Modularmultiplicationtableandexponentiationpatternsareillustratedbyexamples(Figure8andFigure9inthetext).</p></li><li><p>Primalitytestingandgenerationofprimes:primalitytestsdeterminewhetheranumberisprime(butdonotfactorit);RSAsecurityreliesonthedifficultyoffactoringlargen;randomprimesaretypicallygeneratedbyrepeatedlytestingrandomoddnumbersforprimality.</p></li></ul><h4id="f90a68c6−86d7−4950−843c−b383fb550e89"data−toc−id="f90a68c6−86d7−4950−843c−b383fb550e89"collapsed="false"seolevelmigrated="true">2.2TheRSACryptosystem</h4><ul><li><p>Public−keycryptosystem:publickey(e,n)usedtoencrypt;privatekeydusedtodecrypt;privateprimesp,qandφ(n)arekeptsecret.</p></li><li><p>Setup:</p><ul><li><p>Choosetwolargeprimesp,q;computen=pq.</p></li><li><p>Computeφ(n)=(p−1)(q−1).</p></li><li><p>Chooseesuchthatgcd(e,φ(n))=1.</p></li><li><p>Computed≡e−1(modφ(n));i.e.,ed≡1(modφ(n)).</p></li></ul></li><li><p>Encryption:C \equiv M^e \pmod{n}.</p></li><li><p>Decryption:M \equiv C^d \pmod{n}.</p></li><li><p>Correctnesssketch(forMcoprimeton):C^d = M^{ed} \equiv M^{1 + k\phi(n)} \equiv M \; (\bmod n)forsomeintegerk,usingEuler’stheorem.</p></li><li><p>WhenMisnotcoprimeton,asimilarargumentusesEuler’stheoremwithporqasfactorsofn.</p></li><li><p>Security:basedonthedifficultyoffactoringntoderivep,q,andthusφ(n);recommends2048−bitmodulusasof2010;deterministicencryptionisaside−channelandtimingattackconsideration;ciphertextswiththesameMunderthesamekeyrevealidentity(norandomness).</p></li><li><p>EfficientRSAtasksincludeprimalitytesting,gcd,modularinverse,andmodularexponentiation;thesearetreatedindetailinSection5.2.</p></li></ul><h4id="df9f1a62−3463−427b−aaf8−5e53487108a9"data−toc−id="df9f1a62−3463−427b−aaf8−5e53487108a9"collapsed="false"seolevelmigrated="true">2.3TheElGamalCryptosystem</h4><ul><li><p>Apublic−keycryptosystembasedondiscretelogarithmswithrandomizedencryption;producesdifferentciphertextsforthesameplaintext,thankstorandomization.</p></li><li><p>Setup:pickprimep,generatorgforZp;choosesecretxin[1,p−2],computey=gxmodp.Publickey:(p,g,y);privatekey:x.</p></li><li><p>Encryption:AliceusesBob’spublickey(p,g,y);choosesrandomkin[1,p−2],computes</p><ul><li><p>a=gkmodp,</p></li><li><p>b=Mykmodp.</p></li><li><p>Ciphertext:(a,b).</p></li></ul></li><li><p>Decryption:BobcomputesM=b(ax)−1modp.</p><ul><li><p>Proofofcorrectness:b(ax)−1=Myk(gk)x)−1=M,sincey=gxmodp.</p></li></ul></li><li><p>Security:reliesonhardnessofthediscretelogarithmproblem;tobreak,aneavesdropperwouldhavetocomputexfromy=gxmodp.</p></li><li><p>Randomizationensuresdistinctciphertextsforthesameplaintext,avoidingdeterministicleakage.</p></li></ul><h4id="e5e8ecfd−2580−41cb−a441−02aca21afe6c"data−toc−id="e5e8ecfd−2580−41cb−a441−02aca21afe6c"collapsed="false"seolevelmigrated="true">2.4KeyExchange</h4><ul><li><p>Symmetricencryptionrequiresasharedsecretkey;keyexchangeprotocolsestablishthisoveraninsecurechannel.</p></li><li><p>Diffie–Hellman(DH)protocolreliesonmodularexponentiationandthehardnessofthediscretelogarithmproblem.</p></li><li><p>Setupparameters:aprimepandageneratorgforthemultiplicativegroupmodulop.</p></li><li><p>DHprotocolsteps:<br>1)Alicepicksrandomx∈Z<em>pandcomputesX=gxmodp;sendsXtoBob.2)Bobpicksrandomy∈Z</em>pandcomputesY=gymodp;sendsYtoAlice.<br>3)AlicecomputesK1=Yxmodp.<br>4)BobcomputesK2=Xymodp.</p></li><li><p>BothderivethesamesharedkeyK=gxymodp,i.e.,K1=K2.</p></li><li><p>Securityassumption:itisdifficulttodetermineKfrompublicparametersp,gandtheobservedX,Y(i.e.,solvingdiscretelogarithms).DifficultyextendstotheDiffie–Hellmanproblem:computingKfromp,g,X=gxmodpandY=gymodp.</p></li><li><p>Vulnerability:man−in−the−middleattackispossibleifanattackercanintercept/modifymessages;amaliciouspartycanestablishseparatekeyswithAliceandBob,decryptingandre−encryptingmessagesintransit(Figure11).</p></li></ul><h3id="1af6c5ae−ae17−4606−aeb5−e106b24ffac9"data−toc−id="1af6c5ae−ae17−4606−aeb5−e106b24ffac9"collapsed="false"seolevelmigrated="true">3CryptographicHashFunctions</h3><h4id="9009ab02−565a−4aa0−89b7−64d8599aa763"data−toc−id="9009ab02−565a−4aa0−89b7−64d8599aa763"collapsed="false"seolevelmigrated="true">3.1PropertiesandApplications</h4><ul><li><p>Hashfunctionscompressmessagestoafixed−sizedigest;propertiesincludedeterminism,one−wayness,andcollisionresistance.</p></li><li><p>Desiredproperties:easeofcomputingH(M)foranyM;hardtofindM′=MwithH(M′)=H(M);digestlengthistypicallymuchsmallerthantheinput;e.g.,SHA−256outputs256bits.</p></li><li><p>Collisionresistance:weakvsstrongcollisions:</p><ul><li><p>Weakcollisionresistance:givenM,findM′=MwithH(M′)=H(M).</p></li><li><p>Strongcollisionresistance:findanytwodistinctM1,M2withH(M1)=H(M2).</p></li></ul></li><li><p>Merkle–Damga˚rdconstruction:buildsahashfunctionfromacompressionfunctionC(X,Y)thattakesfixed−lengthinputsX(mbits)andY(nbits)andoutputsnbits.</p><ul><li><p>Process:splitMintoblocksM1,M2,…,Mkoflengthm;padthelastblocktolengthm.</p></li><li><p>InitializewithfixedIVv;setd1=C(M1,v),d2=C(M2,d1),…,dk=C(Mk,dk−1);H(M)=dk.</p></li><li><p>Collisioncaveat:ifthereexistsacollisionH(M1)=H(M2),thenforanyP,H(M1∣∣P)=H(M2∣∣P);hence,compressionfunctionmustbestronglycollisionresistanttoensureoverallhashsecurity.</p></li></ul></li><li><p>Practicalhashfunctions:SHA−256andSHA−512(NISTstandards)basedonMerkle–Damga˚rd;MD5isdeprecatedduetoknownweaknesses;MD5collisionscanbeconstructed;MD5isnolongerrecommendedforcryptographicsecurity.</p></li><li><p>SHA−256usesa512−bitcompressionfunctionwith256−bitoutput;SHA−512usesa1024−bitcompressionfunctionwith512−bitoutput.</p></li></ul><h4id="90330cd0−0874−4319−8a72−a4772e2d343c"data−toc−id="90330cd0−0874−4319−8a72−a4772e2d343c"collapsed="false"seolevelmigrated="true">3.2BirthdayAttacks</h4><ul><li><p>Hashcollisionscanbefoundfasterthantryingall2bhashvaluesduetothebirthdayparadox.</p></li><li><p>Ifahashfunctionhasb−bitoutput,thenumberofpossiblehashvaluesis2b.Abirthdayattacksuggeststhatafterabout2b/2randomhashes,acollisionislikely:</p><ul><li><p>Fora256−bithash,securityisabout128bits(i.e.,collisionsareexpectedafterabout2128trials).</p></li></ul></li><li><p>Thisunderpinsthepracticalsecuritylevelofhashfunctionsagainstcollisionattacks.</p></li></ul><h3id="4d777a94−c067−4106−8b8b−0bece67b4d16"data−toc−id="4d777a94−c067−4106−8b8b−0bece67b4d16"collapsed="false"seolevelmigrated="true">4DigitalSignatures</h3><p>Adigitalsignaturebindsamessagetothesigner’sidentityandenablesverificationofauthenticity.</p><ul><li><p>Signingprocess:AliceusesherprivatekeytoproduceasignatureSAlice(M)onmessageM;verificationusesAlice’spublickeytoverifythesignatureonM.</p></li><li><p>Desiredproperties:</p><ul><li><p>Non−forgeability:forgingasignatureonMshouldbecomputationallyhardwithouttheprivatekey.</p></li><li><p>Non−mutatability:givenSAlice(M),itshouldbehardtotransformitintoavalidsignatureonadifferentmessageN.</p></li><li><p>Non−repudiation:signercannotlaterrepudiatesigningM.</p></li></ul></li><li><p>ThissectionrecallsRSAandElGamaldigitalsignaturesandhowtocombinesignatureswithhashfunctionstoimprovepracticalityandsecurity.</p></li></ul><h4id="b23c1471−341b−4c0a−a20a−05a2a2d33786"data−toc−id="b23c1471−341b−4c0a−a20a−05a2a2d33786"collapsed="false"seolevelmigrated="true">4.1TheRSASignatureScheme</h4><ul><li><p>RSAsignatureiscloselyrelatedtoRSAencryption;thesigningoperationusestheprivatekey:</p><ul><li><p>Signature:S \equiv M^d \pmod{n}.</p></li><li><p>Verification:checkthatM \equiv S^e \pmod{n}(sinceS^e = (M^d)^e = M^{de} \equiv M \pmod{n}whende≡1(modφ(n))).</p></li></ul></li><li><p>Non−forgeabilityfollowsfromthedifficultyofbreakingRSAencryption.</p></li><li><p>Mutable−signaturerisk:usingtwovalidsignaturesforM1,M2couldproduceaforgedsignatureonM1M2ifhashchainingisnotused;inpractice,digitalsignatureshashthemessagefirsttoavoidsuchrisks.</p></li></ul><h4id="20762333−4c66−4a55−ae3b−ae7172e52010"data−toc−id="20762333−4c66−4a55−ae3b−ae7172e52010"collapsed="false"seolevelmigrated="true">4.2TheElGamalSignatureScheme</h4><ul><li><p>ParallelsElGamalencryptionwithasigningvariant:</p><ul><li><p>Givenpublickey(p,g,y)withy=gxmodpandprivatekeyx.</p></li><li><p>TosignM,pickfreshrandomkin[1,p−2]andcompute</p></li><li><p>a=gkmodp,</p></li><li><p>b=k−1(M−xa)mod(p−1).</p></li><li><p>Signatureis(a,b).</p></li><li><p>Verification:checkthaty^a a^b \equiv g^M \pmod{p};thisholdsbecauseyaab=gxagkb=gxgk+k(M−xa)≡gM(modp).</p></li></ul></li><li><p>Securityhingesonthediscretelogarithmproblem;reusingk(asinpoorRNGpractice)revealsthesecretkeyx.</p></li><li><p>Important:neverreusekfortwosignatures;otherwise,attackerscansolveforx.</p></li></ul><h4id="3f4aaad0−775a−4d7c−bc39−52b6d05da201"data−toc−id="3f4aaad0−775a−4d7c−bc39−52b6d05da201"collapsed="false"seolevelmigrated="true">4.3UsingHashFunctionswithDigitalSignatures</h4><ul><li><p>Inpractice,signhashdigests(H(M))ratherthantheentiremessageMtoimproveefficiencyandreducemutabilityrisks.</p></li><li><p>Hashingalsomitigatesbirthday−attacksbycompressinglargemessagesintofixed−sizedigests;butonemustensurethehashfunctionusedhasstrongcollisionresistancetopreventforgeryviacollisions.</p></li><li><p>IfanattackercancausecollisionsH(M1)=H(M2),theycouldtrickthesignerintosigningtwomessageswithonesignature;hence,collision−resistanthashfunctionsareessential.</p></li></ul><h3id="9bafa300−1bf9−4750−a3ca−b14c72800751"data−toc−id="9bafa300−1bf9−4750−a3ca−b14c72800751"collapsed="false"seolevelmigrated="true">5DetailsofAESandRSACryptography</h3><h4id="541fb678−c9ee−4ed4−9b46−4126a99145c1"data−toc−id="541fb678−c9ee−4ed4−9b46−4126a99145c1"collapsed="false"seolevelmigrated="true">5.1DetailsforAES(128−bitversionshown;analogousfor192/256)</h4><ul><li><p>Input/output:AESoperateson128−bitblocks;with128/192/256−bitkeys.</p></li><li><p>Tenroundsfor128−bitkeys;initialAddRoundKey,then9rounds,thenafinal10throundwithoutMixColumns.</p></li><li><p>Matrixrepresentation:the16−byteblockisviewedasa4×4matrix(column−majororder):<br>\begin{pmatrix}
a{0,0} & a{0,1} & a{0,2} & a{0,3} \
a{1,0} & a{1,1} & a{1,2} & a{1,3} \
a{2,0} & a{2,1} & a{2,2} & a{2,3} \
a{3,0} & a{3,1} & a{3,2} & a{3,3}
\end{pmatrix}</p></li><li><p>SubBytes:eachbytereplacedbyitsS−boxsubstitution;S−boxisafixedtablebasedonGF(28)arithmetic(GF(28)withirreduciblepolynomialx8+x4+x3+x+1).</p></li><li><p>ShiftRows:cyclicleftshiftswithinrows:1strowshiftby0,2ndby1,3rdby2,4thby3(inthematrixabove).</p></li><li><p>MixColumns:eachcolumnistransformedbyafixed4×4matrixmultiplicationoverGF(28);GF(28)arithmeticisdefinedviapolynomialoperations:additionisXOR,multiplicationismodulotheirreduciblepolynomialx8+x4+x3+x+1.</p></li><li><p>AddRoundKey:stateXORedwitharoundkeyderivedfromthesecretkey;keyscheduleexpandsthe128−bitkeyinto11roundkeysforAES−128.</p></li><li><p>Keyschedule(brief):</p><ul><li><p>Representthe128−bitkeyasa4×4matrixW[0]..W[3].Firstroundkeyistheinitialkey;foreachroundi,computethefirstcolumnW[4i]=W[4i−4]⊕Ti(W[4i−1]);thenthenextthreecolumnsfollow:</p></li><li><p>W[4i+1]=W[4i−3]⊕W[4i],</p></li><li><p>W[4i+2]=W[4i−2]⊕W[4i+1],</p></li><li><p>W[4i+3]=W[4i−1]⊕W[4i+2].</p></li><li><p>Ti(W[4i−1])=[S(w1)⊕R(i),S(w2),S(w3),S(w0)]TwhereW[4i−1]=[w0,w1,w2,w3]TandSistheS−boxsubstitute;R(i)isthei−throundconstantdefinedbelow.</p></li></ul></li><li><p>Roundconstants:R(i)is8−bit,definedbytherepresentationofxi−1modulo(x8+x4+x3+x+1).</p></li><li><p>Firsttenroundconstants(inhex):01,02,04,08,10,20,40,80,1B,36.</p></li><li><p>Inverseoperationsexistfordecryption;AESissymmetricandusesthesamekeyforencryptionanddecryption.</p></li><li><p>Implementationnotes:commonoptimizationuses8T−tablesof25632−bitentrieseach;aroundisperformedviathreeoperationtypes:XOR,splitting,andtablelookups.<br>−AESinpractice:resistanttoknownpracticalcryptanalyticattacks;timingandside−channelattacksarethemainconcernsinimplementations;constant−timeimplementationsreducethevulnerability.</p></li></ul><h4id="119be143−d0a8−43df−8695−af101d074b3a"data−toc−id="119be143−d0a8−43df−8695−af101d074b3a"collapsed="false"seolevelmigrated="true">5.2DetailsforRSA</h4><ul><li><p>Theoreticalprerequisites:Fermat’slittletheorem,Euler’stheorem,Euclid’salgorithm,modularexponentiation,primalitytesting.</p></li><li><p>Fermat’slittletheorem:forprimepandanyintegergwith1≤g<p,<br>g^{p-1} \equiv 1 \pmod{p}.</p></li><li><p>Euler’stheorem:forxwithgcd(x,n)=1,<br>x^{\phi(n)} \equiv 1 \pmod{n}.</p></li><li><p>Corollary:x^k \equiv x^{k\bmod \phi(n)} \pmod{n}.</p></li><li><p>Euclid’salgorithm(andextendedEuclideanalgorithm)forgcdandmodularinverses.</p></li><li><p>Modularexponentiation:repeatedsquaringalgorithmtocomputeg^n \bmod p efficiently; binary expansion of n yields linear-in-bitlength number of multiplications.