The book is an introduction to cryptography for programmers.

આ પુસ્તક પ્રોગ્રામરો માટે ક્રિપ્ટોગ્રાફીનો પરિચય છે.


This book starts with simple primitives and gradually introduces new ones.

આ પુસ્તક સરળ પ્રિમિટિવ્સથી શરૂ થાય છે અને ધીમે ધીમે નવા પ્રિમિટિવ્સનો પરિચય કરાવે છે.


The goal is to understand how cryptosystems work and how to apply them.

ધ્યેય એ છે કે ક્રિપ્ટોસિસ્ટમ કેવી રીતે કાર્ય કરે છે અને તેનો ઉપયોગ કેવી રીતે કરવો તે સમજવું.


Exercises focus on teaching cryptography by breaking inferior systems.

કસરતો હલકી ગુણવત્તાવાળી સિસ્ટમોને તોડીને ક્રિપ્ટોગ્રાફી શીખવવા પર ધ્યાન કેન્દ્રિત કરે છે.


You will understand why these primitives are necessary for complete cryptosystems.

તમે સમજી શકશો કે સંપૂર્ણ ક્રિપ્ટોસિસ્ટમ માટે આ પ્રિમિટિવ્સ શા માટે જરૂરી છે.


Cryptography has been deemed the exclusive realm of experts.

ક્રિપ્ટોગ્રાફીને નિષ્ણાતોનું વિશિષ્ટ ક્ષેત્ર માનવામાં આવે છે.


We must join them into one world where all programmers are educated.

આપણે તેમને એક દુનિયામાં જોડાવું જોઈએ જ્યાં બધા પ્રોગ્રામરોને શિક્ષિત કરવામાં આવે.


This book hopes to be a bridge to teach everyday programmers.

આ પુસ્તક રોજિંદા પ્રોગ્રામરોને શીખવવા માટે એક પુલ બનવાની આશા રાખે છે.


Exclusive or, often called XOR, is a Boolean operator.

એક્સક્લુઝિવ ઓર, જેને ઘણીવાર XOR કહેવામાં આવે છે, તે એક બુલિયન ઓપરેટર છે.


XOR is true when either the first input or the second input, but not both, are true.

XOR સાચું છે જ્યારે પ્રથમ ઇનપુટ અથવા બીજું ઇનપુટ, પરંતુ બંને નહીં, સાચા હોય.


XOR can be thought of as a programmable inverter.

XOR ને પ્રોગ્રામેબલ ઇન્વર્ટર તરીકે વિચારી શકાય છે.


In mathematics, exclusive or is generally represented by a cross in a circle.

ગણિતમાં, એક્સક્લુઝિવ ઓર સામાન્ય રીતે વર્તુળમાં ક્રોસ દ્વારા રજૂ થાય છે.


We will be dealing with XOR extensively during this book.

આ પુસ્તક દરમિયાન આપણે XOR સાથે વ્યાપકપણે કામ કરીશું.


The output of XOR is 1 when one input or the other (but not both) is 1.

જ્યારે એક ઇનપુટ અથવા બીજું (પરંતુ બંને નહીં) 1 હોય ત્યારે XOR નું આઉટપુટ 1 છે.


You can apply XOR in any order: a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c

તમે કોઈપણ ક્રમમાં XOR લાગુ કરી શકો છો: a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c


કોઈપણ બીટ XOR પોતે 0 છે: a ⊕ a = 0.


Any bit XOR 0 is that bit again: a ⊕ 0 = a.

કોઈપણ બીટ XOR 0 એ તે બીટ ફરીથી છે: a ⊕ 0 = a.


XOR, as we've just defined it, operates only on single bits.

XOR, જેમ આપણે હમણાં જ વ્યાખ્યાયિત કર્યું છે, તે ફક્ત સિંગલ બીટ્સ પર જ કાર્ય કરે છે.


Most programming languages provide a bitwise XOR operator.

મોટાભાગની પ્રોગ્રામિંગ ભાષાઓ બિટવાઇઝ XOR ઓપરેટર પ્રદાન કરે છે.


The security of the one-time pad scheme depends on using the pad only once.

વન-ટાઇમ પેડ યોજનાની સુરક્ષા પેડનો માત્ર એક જ વાર ઉપયોગ કરવા પર આધાર રાખે છે.


ચાવીના બીટ્સ 0 અથવા 1 હતા.


Since all of the key bits are truly random, both options are equally probable.

બધા કી બીટ્સ ખરેખર રેન્ડમ હોવાથી, બંને વિકલ્પો સમાન રીતે સંભવિત છે.


The attacker learns that the message exists.

આક્રમણખોરને ખબર પડે છે કે સંદેશ અસ્તિત્વમાં છે.


There are secure cryptosystems to hide the existence and the length of a message.

સંદેશના અસ્તિત્વ અને લંબાઈને છુપાવવા માટે સુરક્ષિત ક્રિપ્ટોસિસ્ટમ્સ છે.


The one-time pad has to consist of truly random data.

વન-ટાઇમ પેડમાં ખરેખર રેન્ડમ ડેટા હોવો જોઈએ.


વન-ટાઇમ પેડનો ઉપયોગ ફક્ત એક જ વાર થઈ શકે છે.


Most commercial products that claim to be one-time pads are snake oil.

એક-વાર પેડ હોવાનો દાવો કરતા મોટાભાગના વ્યાપારી ઉત્પાદનો સાપનું તેલ છે.


They use various deterministic constructs to produce the one-time pad.

તેઓ વન-ટાઇમ પેડ બનાવવા માટે વિવિધ નિશ્ચિત રચનાઓનો ઉપયોગ કરે છે.


This invalidates the unbreakable security property of one-time pads.

આ વન-ટાઇમ પેડની અભેદ્ય સુરક્ષા મિલકતને અમાન્ય કરે છે.


The end user would be better served by a more honest cryptosystem.

અંતિમ વપરાશકર્તા વધુ પ્રમાણિક ક્રિપ્ટોસિસ્ટમ દ્વારા વધુ સારી રીતે સેવા આપશે.


Reusing the one-time pad is a serious issue.

વન-ટાઇમ પેડનો ફરીથી ઉપયોગ કરવો એ ગંભીર સમસ્યા છે.


Suppose an attacker gets two ciphertexts with the same one-time pad.

ધારો કે કોઈ હુમલાખોરને સમાન વન-ટાઇમ પેડ સાથે બે સાઇફરટેક્સ્ટ મળે છે.


The result of the XOR operation on two plaintexts contains information about the plaintexts.

બે પ્લેનટેક્સ્ટ પર XOR ઓપરેશનનું પરિણામ પ્લેનટેક્સ્ટ વિશે માહિતી ધરાવે છે.


A classical approach to breaking multi-time pad systems involves crib-dragging.

મલ્ટિ-ટાઇમ પેડ સિસ્ટમ્સને તોડવાનો એક શાસ્ત્રીય અભિગમ ક્રીબ-ડ્રેગિંગનો સમાવેશ કરે છે.


Those matches form the sites of the start, or crib, of further decryption.

તે મેચો આગળના ડિક્રિપ્શનના પ્રારંભિક બિંદુઓ અથવા ક્રીબ બનાવે છે.


If we could correctly guess the plaintext for one of the messages, we’d know K.

જો આપણે સંદેશાઓમાંથી એક માટે પ્લેનટેક્સ્ટનો યોગ્ય રીતે અનુમાન લગાવી શકીએ, તો આપણે K જાણીશું.


Guessing parts of the plaintext is a lot easier than guessing the entire plaintext.

પ્લેનટેક્સ્ટના ભાગોનો અનુમાન લગાવવો એ આખા પ્લેનટેક્સ્ટનો અનુમાન લગાવવા કરતાં ઘણું સરળ છે.


If our guess is correct, we know all the other plaintexts at that position as well.

જો આપણું અનુમાન સાચું છે, તો આપણે તે સ્થાન પરના અન્ય તમામ પ્લેનટેક્સ્ટ પણ જાણીએ છીએ.


These small, highly probable sequences are called cribs.

આ નાના, અત્યંત સંભવિત ક્રમ્સને ક્રીબ્સ કહેવામાં આવે છે.


Real one-time pads, implemented properly, have an extremely strong security guarantee.

વાસ્તવિક વન-ટાઇમ પેડ, યોગ્ય રીતે અમલમાં મૂકાયેલ, અત્યંત મજબૂત સુરક્ષા ગેરંટી ધરાવે છે.


આપણે તેમને ફિટ કરવા માટે કોઈ યોજનાની જરૂર છે.


તે પ્રક્રિયાને પેડિંગ કહેવામાં આવે છે.


One way to pad would be to simply append a particular byte value until the plaintext is of the appropriate length.

પેડિંગ કરવાની એક રીત એ છે કે જ્યાં સુધી સાદો લખાણ યોગ્ય લંબાઈનું ન થાય ત્યાં સુધી ચોક્કસ બાઈટ મૂલ્ય ઉમેરવું.


To undo the padding, you just remove those bytes.

પેડિંગને પૂર્વવત્ કરવા માટે, તમે ફક્ત તે બાઇટ્સને દૂર કરો.


This scheme has an obvious flaw: you can’t send messages that end in that particular byte value, or you will be unable to distinguish between padding and the actual message.

આ યોજનામાં એક સ્પષ્ટ ખામી છે: તમે એવા સંદેશા મોકલી શકતા નથી કે જે તે ચોક્કસ બાઈટ મૂલ્યમાં સમાપ્ત થાય, અથવા તમે પેડિંગ અને વાસ્તવિક સંદેશ વચ્ચે તફાવત કરી શકશો નહીં.


A better, and much more popular scheme, is PKCS#5/PKCS#7 padding.

એક વધુ સારી, અને ઘણી વધુ લોકપ્રિય યોજના, PKCS#5/PKCS#7 પેડિંગ છે.


Take the number of bytes you have to pad, and pad them with that many times the byte with that value.

તમારે પેડ કરવાના બાઇટ્સની સંખ્યા લો, અને તે મૂલ્ય સાથેના બાઇટને તેટલી જ વખત પેડ કરો.


For example, if the block size is 8 bytes, and the last block has the three bytes 12 34 45, the block becomes 12 34 45 05 05 05 05 05 after padding.

ઉદાહરણ તરીકે, જો બ્લોકનું કદ 8 બાઇટ્સ છે, અને છેલ્લા બ્લોકમાં ત્રણ બાઇટ્સ 12 34 45 છે, તો પેડિંગ પછી બ્લોક 12 34 45 05 05 05 05 05 બને છે.


If the plaintext happened to be exactly a multiple of the block size, an entire block of padding is used.

જો સાદો લખાણ બ્લોક સાઈઝના બરાબર ગુણાંક હોય, તો પેડિંગનો સંપૂર્ણ બ્લોક વપરાય છે.


Otherwise, the recipient would look at the last byte of the plaintext, treat it as a padding length, and almost certainly conclude the message was improperly padded.

નહિંતર, પ્રાપ્તકર્તા સાદા લખાણના છેલ્લા બાઇટને જોશે, તેને પેડિંગ લંબાઈ તરીકે ગણશે, અને લગભગ ચોક્કસપણે તારણ કાઢશે કે સંદેશને અયોગ્ય રીતે પેડ કરવામાં આવ્યો હતો.


We can refine CBC bit flipping attacks to trick a recipient into decrypting arbitrary messages!

આપણે પ્રાપ્તકર્તાને મનસ્વી સંદેશાઓને ડિક્રિપ્ટ કરવામાં છેતરવા માટે સીબીસી બિટ ફ્લિપિંગ હુમલાઓને સુધારી શકીએ છીએ!


As we’ve just discussed, CBC mode requires padding the message to a multiple of the block size.

જેમ આપણે હમણાં જ ચર્ચા કરી છે, સીબીસી મોડને સંદેશને બ્લોક સાઈઝના ગુણાંકમાં પેડિંગની જરૂર છે.


If the padding is incorrect, the recipient typically rejects the message, saying that the padding was invalid.

જો પેડિંગ ખોટું છે, તો પ્રાપ્તકર્તા સામાન્ય રીતે સંદેશને નકારે છે, એમ કહીને કે પેડિંગ અમાન્ય હતું.


We can use that tiny bit of information about the padding of the plaintext to iteratively decrypt the entire message.

આપણે સાદા લખાણના પેડિંગ વિશેની તે નાની માહિતીનો ઉપયોગ સમગ્ર સંદેશને પુનરાવર્તિત રીતે ડિક્રિપ્ટ કરવા માટે કરી શકીએ છીએ.


The attacker will do this, one ciphertext block at a time, by trying to get an entire plaintext block worth of valid padding.

આ હુમલાખોર આ કરશે, એક સમયે એક સાયફરટેક્સ્ટ બ્લોક, માન્ય પેડિંગના સંપૂર્ણ સાદા લખાણ બ્લોક મેળવવાનો પ્રયાસ કરીને.


To mount this attack, an attacker only needs two things: A target ciphertext to decrypt and a padding oracle.

આ હુમલો કરવા માટે, હુમલાખોરને ફક્ત બે વસ્તુઓની જરૂર છે: ડિક્રિપ્ટ કરવા માટેનું લક્ષ્ય સાયફરટેક્સ્ટ અને પેડિંગ ઓરેકલ.


For a long time, most systems did not even attempt to hide if the padding was valid or not.

લાંબા સમય સુધી, મોટાભાગની સિસ્ટમોએ પેડિંગ માન્ય છે કે નહીં તે છુપાવવાનો પ્રયાસ પણ કર્યો ન હતો.


In this chapter, we’ll assume that PKCS#5/PKCS#7 padding is being used, since that’s the most popular option.

આ પ્રકરણમાં, અમે ધારીશું કે PKCS#5/PKCS#7 પેડિંગનો ઉપયોગ કરવામાં આવી રહ્યો છે, કારણ કે તે સૌથી વધુ લોકપ્રિય વિકલ્પ છે.


The attacker fills a block with arbitrary bytes.

હુમલાખોર મનસ્વી બાઇટ્સથી એક બ્લોક ભરે છે.


They also pick a target block from the ciphertext that they’d like to decrypt.

તેઓ સાયફરટેક્સ્ટમાંથી એક લક્ષ્ય બ્લોક પણ પસંદ કરે છે જેને તેઓ ડિક્રિપ્ટ કરવા માંગે છે.


A scheme where the long-term key and the nonce had been securely combined wouldn’t have had this weakness.

એક યોજના કે જેમાં લાંબા ગાળાની કી અને નોન્સને સુરક્ષિત રીતે જોડવામાં આવ્યા હતા, તેમાં આ નબળાઈ ન હોત.


Many other standards including TLS were therefore not affected.

તેથી TLS સહિતના અન્ય ઘણા ધોરણોને અસર થઈ ન હતી.


ફરીથી, હુમલાઓ વધુ સારા થાય છે.


Andreas Klein showed more extensive correlation between the key and the keystream.

એન્ડ્રિયાસ ક્લીને કી અને કીસ્ટ્રીમ વચ્ચે વધુ વ્યાપક સંબંધ દર્શાવ્યો.


Instead of tens of millions of messages with the Fluhrer, Mantin, Shamir attacks, attackers now only needed several tens of thousands of messages to make the attack practical.

ફ્લુહર, મેન્ટિન, શામિર હુમલાઓ સાથે લાખો સંદેશાઓને બદલે, હુમલાખોરોને હવે હુમલો વ્યવહારુ બનાવવા માટે માત્ર થોડાક દસ હજાર સંદેશાઓની જરૂર હતી.


This was applied against WEP with great effect.

આનો ઉપયોગ WEP સામે ખૂબ જ અસરકારક રીતે કરવામાં આવ્યો હતો.


In 2013, a team of researchers at Royal Holloway in London produced a combination of two independent practical attacks.

2013 માં, લંડનમાં રોયલ હોલોવે ખાતે સંશોધકોની એક ટીમે બે સ્વતંત્ર વ્યવહારુ હુમલાઓનું સંયોજન બનાવ્યું.


These attacks proved to be very damning for RC4: while RC4’s weaknesses had been known for a long time, they finally drove the point home for everyone that it really shouldn’t be used anymore.

આ હુમલાઓ RC4 માટે ખૂબ જ નિંદાજનક સાબિત થયા: જ્યારે RC4 ની નબળાઈઓ લાંબા સમયથી જાણીતી હતી, ત્યારે તેઓએ આખરે દરેકને એ વાત સમજાવી કે તેનો હવે ખરેખર ઉપયોગ ન કરવો જોઈએ.


The first attack is based on single-byte biases in the first 256 bytes of the keystream.

પ્રથમ હુમલો કીસ્ટ્રીમના પ્રથમ 256 બાઇટ્સમાં સિંગલ-બાઇટ પૂર્વગ્રહો પર આધારિત છે.


By performing statistical analysis on the keystreams produced by a large number of keys, they were able to analyze the already well-known biases in the early keystream bytes of RC4 in much greater detail.

મોટા પ્રમાણમાં કી દ્વારા ઉત્પાદિત કીસ્ટ્રીમ્સ પર આંકડાકીય વિશ્લેષણ કરીને, તેઓ RC4 ના પ્રારંભિક કીસ્ટ્રીમ બાઇટ્સમાં પહેલેથી જ જાણીતા પૂર્વગ્રહોનું વધુ વિગતવાર વિશ્લેષણ કરવામાં સક્ષમ હતા.


The second attack is based on double byte biases anywhere in the keystream.

બીજો હુમલો કીસ્ટ્રીમમાં ગમે ત્યાં ડબલ બાઇટ પૂર્વગ્રહો પર આધારિત છે.


It turns out that adjacent bytes of the keystream have an exploitable relation, whereas in an ideal stream cipher you would expect them to be completely independent.

એવું બહાર આવ્યું છે કે કીસ્ટ્રીમના અડીને આવેલા બાઇટ્સમાં શોષણક્ષમ સંબંધ છે, જ્યારે આદર્શ સ્ટ્રીમ સાઇફરમાં તમે અપેક્ષા રાખશો કે તે સંપૂર્ણપણે સ્વતંત્ર હશે.


This table may seem a bit daunting at first.

આ કોષ્ટક પ્રથમ નજરમાં થોડું મુશ્કેલ લાગી શકે છે.


Suppose that RC4 was a good stream cipher, and all values occurred with equal probability.

ધારો કે RC4 એક સારી સ્ટ્રીમ સાઇફર હતી, અને બધા મૂલ્યો સમાન સંભાવના સાથે બન્યા.


By writing the probability in the 2 −16 (1 + 2 −k ) form, it’s easier to see how much RC4 deviates from what you’d expect from an ideal stream cipher.

સંભાવનાને 2 −16 (1 + 2 −k ) સ્વરૂપમાં લખીને, તે જોવાનું સરળ છે કે RC4 આદર્શ સ્ટ્રીમ સાઇફરમાંથી તમે જે અપેક્ષા રાખશો તેનાથી કેટલું વિચલિત થાય છે.


So, let’s try to read the first line of the table.

તો, ચાલો કોષ્ટકની પ્રથમ પંક્તિ વાંચવાનો પ્રયત્ન કરીએ.


It says that when the first byte i = 1 of any 256-byte chunk from the cipher is 0, then the byte following it is slightly more likely (1 + 2 −9 times as likely, to be exact) to be 0 than for it to be any other number.

તે કહે છે કે જ્યારે સાઇફરના કોઈપણ 256-બાઇટના ટુકડાનું પ્રથમ બાઇટ i = 1 0 છે, તો પછી તેને અનુસરતું બાઇટ કોઈપણ અન્ય નંબર કરતાં થોડું વધારે સંભવિત (ચોક્કસ થવા માટે 1 + 2 −9 ગણું સંભવિત) 0 હોઈ શકે છે.


We can also see that when one of the keystream bytes is 255, you can make many predictions about the next byte, depending on where it occurs in the keystream.

આપણે એ પણ જોઈ શકીએ છીએ કે જ્યારે કીસ્ટ્રીમ બાઇટ્સમાંથી એક 255 છે, ત્યારે તમે કીસ્ટ્રીમમાં તે ક્યાં થાય છે તેના આધારે, આગામી બાઇટ વિશે ઘણી આગાહીઓ કરી શકો છો.


There’s no way around it: we need to stop using RC4.

તેનો કોઈ રસ્તો નથી: આપણે RC4 નો ઉપયોગ કરવાનું બંધ કરવાની જરૂર છે.


Fortunately, we’ve also developed many secure alternatives.

સદનસીબે, અમે ઘણા સુરક્ષિત વિકલ્પો પણ વિકસાવ્યા છે.


Even though 3DES is significantly worse in terms of performance and slightly worse in terms of security, 3DES is still the workhorse of the financial industry.

જોકે 3DES કામગીરીની દ્રષ્ટિએ નોંધપાત્ર રીતે ખરાબ છે અને સુરક્ષાની દ્રષ્ટિએ થોડું ખરાબ છે, તેમ છતાં 3DES હજી પણ નાણાકીય ઉદ્યોગનું મુખ્ય આધાર છે.


With a plethora of standards already in existence and new ones continuing to be created, it will probably continue to be used for many years to come.

પહેલેથી જ અસ્તિત્વમાં રહેલા ધોરણો અને નવા ધોરણો સતત બનાવવામાં આવી રહ્યા છે, તે કદાચ આવનારા ઘણા વર્ષો સુધી ઉપયોગમાં લેવાતું રહેશે.


For example, we can only send messages of a very limited length: the block length of the block cipher.

ઉદાહરણ તરીકે, અમે ફક્ત ખૂબ જ મર્યાદિત લંબાઈના સંદેશા મોકલી શકીએ છીએ: બ્લોક સિફરની બ્લોક લંબાઈ.


Obviously, we’d like to be able to send much larger messages, or, ideally, streams of indeterminate size.

દેખીતી રીતે, અમે ઘણા મોટા સંદેશા મોકલવા અથવા, આદર્શ રીતે, અનિશ્ચિત કદના સ્ટ્રીમ્સ મોકલવા માંગીએ છીએ.


A stream cipher is asymmetric-key encryption algorithm that encrypts a stream of bits.

સ્ટ્રીમ સિફર એ અસમપ્રમાણ-કી એન્ક્રિપ્શન અલ્ગોરિધમ છે જે બીટ્સના સ્ટ્રીમને એન્ક્રિપ્ટ કરે છે.


This scheme is called ECB mode (Electronic Code Book Mode), and it is one of the many ways that block ciphers can be used to construct stream ciphers.

આ યોજનાને ECB મોડ (ઇલેક્ટ્રોનિક કોડ બુક મોડ) કહેવામાં આવે છે, અને તે ઘણી રીતોમાંની એક છે જેનો ઉપયોગ બ્લોક સિફર સ્ટ્રીમ સિફર બનાવવા માટે કરી શકાય છે.


In ECB mode, identical input blocks will always map to identical output blocks.

ECB મોડમાં, સમાન ઇનપુટ બ્લોક્સ હંમેશા સમાન આઉટપુટ બ્લોક્સ પર મેપ થશે.


By dividing the ciphertext stream up into blocks, an attacker would only be able to see that a ciphertext block, and therefore a plaintext block, was repeated.

સાઇફરટેક્સ્ટ સ્ટ્રીમને બ્લોક્સમાં વિભાજીત કરીને, હુમલાખોર ફક્ત એ જોઈ શકશે કે સાઇફરટેક્સ્ટ બ્લોક અને તેથી પ્લેનટેક્સ્ટ બ્લોકનું પુનરાવર્તન થયું છે.


We’ll now illustrate the many flaws of ECB mode with two attacks.

હવે, અમે બે હુમલાઓ સાથે ECB મોડની ઘણી ખામીઓ દર્શાવીશું.


First, we’ll exploit the fact that repeating plaintext blocks result in repeating ciphertext blocks, by visually inspecting an encrypted image.

પ્રથમ, અમે એ હકીકતનો ઉપયોગ કરીશું કે પુનરાવર્તિત પ્લેનટેક્સ્ટ બ્લોક્સના પરિણામે પુનરાવર્તિત સાઇફરટેક્સ્ટ બ્લોક્સ આવે છે, જે એન્ક્રિપ્ટેડ ઇમેજને દૃષ્ટિની રીતે તપાસીને.


Then, we’ll demonstrate that attackers can often decrypt messages encrypted in ECB mode by communicating with the person performing the encryption.

પછી, અમે દર્શાવીશું કે હુમલાખોરો ઘણીવાર એન્ક્રિપ્શન કરનાર વ્યક્તિ સાથે વાતચીત કરીને ECB મોડમાં એન્ક્રિપ્ટેડ સંદેશાઓને ડિક્રિપ્ટ કરી શકે છે.


Because identical blocks of pixels in the plaintext will map to identical blocks of pixels in the ciphertext, the global structure of the image is largely preserved.

કારણ કે પ્લેનટેક્સ્ટમાં પિક્સેલના સમાન બ્લોક્સ સાઇફરટેક્સ્ટમાં પિક્સેલના સમાન બ્લોક્સ પર મેપ થશે, ઇમેજની વૈશ્વિક રચના મોટાભાગે જળવાઈ રહે છે.


For an uncompressed bitmap with three color channels of 8 bit depth, each pixel takes 24 bits to store.

8 બીટની ઊંડાઈના ત્રણ રંગ ચેનલો સાથેના અનકમ્પ્રેસ્ડ બિટમેપ માટે, દરેક પિક્સેલને સંગ્રહિત કરવા માટે 24 બીટ્સની જરૂર પડે છે.


That’s significantly fewer pixels per block than the larger block sizes in the example.

આ ઉદાહરણમાં મોટા બ્લોક કદ કરતાં પ્રતિ બ્લોક નોંધપાત્ર રીતે ઓછા પિક્સેલ્સ છે.


Keep in mind that ”looking like random noise” doesn’t mean something is properly encrypted: it just means that we can’t inspect it using methods this trivial.

ધ્યાનમાં રાખો કે “રેન્ડમ અવાજ જેવું દેખાવું” નો અર્થ એ નથી કે કંઈક યોગ્ય રીતે એન્ક્રિપ્ટેડ છે: તેનો અર્થ એ છે કે અમે તેને આ નજીવી પદ્ધતિઓનો ઉપયોગ કરીને ચકાસી શકતા નથી.


In this section, we’ll study a different, active attack, where the attacker actively communicates with their target.

આ વિભાગમાં, અમે એક અલગ, સક્રિય હુમલાનો અભ્યાસ કરીશું, જ્યાં હુમલાખોર સક્રિયપણે તેમના લક્ષ્ય સાથે વાતચીત કરે છે.


Given some data A chosen by the attacker, the oracle will encrypt that data, followed by a secret suffix S, in ECB mode.

હુમલાખોર દ્વારા પસંદ કરાયેલ કેટલાક ડેટા A ને જોતાં, ઓરેકલ તે ડેટાને એન્ક્રિપ્ટ કરશે, ત્યારબાદ ECB મોડમાં ગુપ્ત પ્રત્યય S.


હુમલાખોરનો ધ્યેય તેને ડિક્રિપ્ટ કરવાનો છે.


The attacker does this by inspecting the ciphertext C for many carefully chosen values of the attacker-chosen prefix A.

હુમલાખોર આ સાઇફરટેક્સ્ટ C ને હુમલાખોર-પસંદ કરેલ પ્રત્યય A ના ઘણા કાળજીપૂર્વક પસંદ કરેલા મૂલ્યો માટે તપાસીને કરે છે.


It turns out that in practice, a lot of software can be tricked into behaving like one.

એવું બહાર આવ્યું છે કે વ્યવહારમાં, ઘણા બધા સોફ્ટવેરને એકની જેમ વર્તવા માટે છેતરવામાં આવી શકે છે.


The attacker is in between the two peers.

આક્રમણ કરનાર બે સાથીદારોની વચ્ચે છે.


We need tools that help us authenticate Alice to Bob.

આપણે એવા સાધનોની જરૂર છે જે એલિસને બોબને પ્રમાણિત કરવામાં મદદ કરે.


People can encrypt information intended for you by using your public key.

લોકો તમારા જાહેર કીનો ઉપયોગ કરીને તમારા માટે બનાવાયેલ માહિતીને એન્ક્રિપ્ટ કરી શકે છે.


The algorithm they published is still the most common one today.

તેમણે પ્રકાશિત કરેલ અલ્ગોરિધમ આજે પણ સૌથી સામાન્ય છે.


Public-key algorithms aren’t limited to encryption.

જાહેર-કી અલ્ગોરિધમ્સ એન્ક્રિપ્શન સુધી મર્યાદિત નથી.


The bulk of the encryption and authentication work is done by secret-key algorithms.

એન્ક્રિપ્શન અને પ્રમાણીકરણનું મોટાભાગનું કાર્ય ગુપ્ત-કી અલ્ગોરિધમ્સ દ્વારા કરવામાં આવે છે.


RSA is limited to at most its key size, which for 2048-bit means 256 bytes.

RSA વધુમાં વધુ તેની કી સાઈઝ સુધી મર્યાદિત છે, જે 2048-બીટ માટે 256 બાઈટ્સ છે.


Symmetric key algorithms work within an order of magnitude of 10 or so cycles per byte.

સપ્રમાણ કી અલ્ગોરિધમ્સ પ્રતિ બાઇટ લગભગ 10 અથવા તેથી વધુ ચક્રના ક્રમમાં કામ કરે છે.


RSA can’t encrypt anything larger than its modulus.

RSA તેના મોડ્યુલસ કરતાં મોટી કોઈપણ વસ્તુને એન્ક્રિપ્ટ કરી શકતું નથી.


RSA is one of the first practical public-key encryption schemes.

RSA એ પ્રથમ વ્યવહારુ જાહેર-કી એન્ક્રિપ્શન યોજનાઓમાંથી એક છે.


Encryption and decryption relies on modular arithmetic.

એન્ક્રિપ્શન અને ડિક્રિપ્શન મોડ્યુલર અંકગણિત પર આધાર રાખે છે.


In order to generate a key, you pick two large prime numbers p and q.

કી જનરેટ કરવા માટે, તમે બે મોટા અવિભાજ્ય સંખ્યાઓ p અને q પસંદ કરો છો.


The security of RSA relies on that decryption operation being impossible.

RSA ની સુરક્ષા તે ડિક્રિપ્શન ઓપરેશન અશક્ય હોવા પર આધાર રાખે છે.


Breaking RSA Like many cryptosystems, RSA relies on the presumed difficulty of a particular mathematical problem.

RSA ને તોડવું. ઘણા ક્રિપ્ટોસિસ્ટમ્સની જેમ, RSA ચોક્કસ ગાણિતિક સમસ્યાની કથિત મુશ્કેલી પર આધાર રાખે છે.


We will see all sorts of realistic attacks on RSA that rely on flaws in the implementation.

આપણે RSA પરના તમામ પ્રકારના વાસ્તવિક હુમલાઓ જોઈશું જે અમલીકરણમાં ખામીઓ પર આધાર રાખે છે.


Like with most broken cryptosystems, there are plenty of cases where sound components, improperly applied, result in a useless system.

મોટાભાગના તૂટેલા ક્રિપ્ટોસિસ્ટમ્સની જેમ, એવા ઘણા કિસ્સાઓ છે જ્યાં યોગ્ય ઘટકો, અયોગ્ય રીતે લાગુ કરવામાં આવે છે, જેના પરિણામે નકામું સિસ્ટમ બને છે.


Salt used a public exponent (e) of 1, which meant the encryption phase didn’t actually do anything.

સોલ્ટે 1 નો જાહેર ઘાતાંક (e) વાપર્યો, જેનો અર્થ એ થયો કે એન્ક્રિપ્શન તબક્કામાં ખરેખર કંઈ થયું નથી.


OAEP, short for optimal asymmetric encryption padding, is the state of the art in RSA padding.

OAEP, જેનો અર્થ છે શ્રેષ્ઠ અસમપ્રમાણ એન્ક્રિપ્શન પેડિંગ, તે RSA પેડિંગમાં આધુનિક તકનીક છે.


Most public-key encryption schemes can only encrypt small chunks of data at a time.

મોટાભાગની જાહેર-કી એન્ક્રિપ્શન યોજનાઓ એક સમયે માત્ર ડેટાના નાના ટુકડાને એન્ક્રિપ્ટ કરી શકે છે.


That means that we can now communicate with anyone, using only public information, completely secure from eavesdroppers.

એનો અર્થ એ છે કે હવે આપણે કોઈપણ સાથે વાતચીત કરી શકીએ છીએ, ફક્ત જાહેર માહિતીનો ઉપયોગ કરીને, સાંભળનારાઓથી સંપૂર્ણપણે સુરક્ષિત.


By mixing the password with some random value before hashing it, you could produce completely different hash values.

પાસવર્ડને હેશ કરતા પહેલાં કેટલાક રેન્ડમ મૂલ્ય સાથે મિશ્રિત કરીને, તમે સંપૂર્ણપણે અલગ હેશ મૂલ્યો ઉત્પન્ન કરી શકો છો.


The salt value is stored next to the password hash in the database.

મીઠાનું મૂલ્ય ડેટાબેઝમાં પાસવર્ડ હેશની બાજુમાં સંગ્રહિત છે.


If you pick a sufficiently large, cryptographically random salt, you’ve completely defeated ahead-of-time attacks.

જો તમે પૂરતા પ્રમાણમાં મોટું, ક્રિપ્ટોગ્રાફિકલી રેન્ડમ મીઠું પસંદ કરો છો, તો તમે અગાઉથી થતા હુમલાઓને સંપૂર્ણપણે હરાવી દીધા છે.


Computing a single table takes a decent amount of time; computing 2^160 different tables is impossible.

એક જ ટેબલની ગણતરી કરવામાં યોગ્ય સમય લાગે છે; 2^160 જુદા જુદા કોષ્ટકોની ગણતરી કરવી અશક્ય છે.


Many systems used a single salt for all users.

ઘણા સિસ્ટમોએ બધા વપરાશકર્તાઓ માટે એક જ મીઠાનો ઉપયોગ કર્યો.


An attacker would simply compute a single rainbow table for that salt, and compare the results with the hashed passwords from the database.

એક હુમલાખોર ફક્ત તે મીઠા માટે એક જ રેઈન્બો ટેબલની ગણતરી કરશે, અને પરિણામોની તુલના ડેટાબેઝમાંથી હેશ કરેલા પાસવર્ડ સાથે કરશે.


Perhaps the biggest problem with salts is that many programmers were suddenly convinced they were doing the right thing.

કદાચ મીઠા સાથેની સૌથી મોટી સમસ્યા એ છે કે ઘણા પ્રોગ્રામરોને અચાનક ખાતરી થઈ ગઈ કે તેઓ યોગ્ય કામ કરી રહ્યા છે.


Modern attacks on weak password systems To a modern attack, salts quite simply don’t help.

નબળા પાસવર્ડ સિસ્ટમ્સ પર આધુનિક હુમલાઓ આધુનિક હુમલા માટે, મીઠું સરળ રીતે મદદ કરતું નથી.


Modern attacks take advantage of the fact that the hash function being used is easy to compute.

આધુનિક હુમલાઓ એ હકીકતનો લાભ લે છે કે ઉપયોગમાં લેવાતી હેશ ફંક્શનની ગણતરી કરવી સરળ છે.


Salts may make precomputed attacks impossible, but they do very little against an attacker that actually knows the salt.

મીઠું પૂર્વ-ગણતરી કરેલા હુમલાઓને અશક્ય બનાવી શકે છે, પરંતુ તે હુમલાખોર સામે બહુ ઓછું કરે છે જે ખરેખર મીઠું જાણે છે.


In order to protect passwords, you need a (low-entropy) key derivation function.

પાસવર્ડને સુરક્ષિત રાખવા માટે, તમારે (ઓછી એન્ટ્રોપી) કી ડેરિવેશન ફંક્શનની જરૂર છે.


Hash trees are trees where each node is identified by a hash value.

હેશ ટ્રી એ એવા વૃક્ષો છે જ્યાં દરેક નોડને હેશ મૂલ્ય દ્વારા ઓળખવામાં આવે છે.


Examples include distributed version control systems such as Git, digital currencies such as Bitcoin, distributed peer-to-peer networks like Bittorrent, and distributed databases such as Cassandra.

ઉદાહરણોમાં ગિટ જેવા વિતરિત સંસ્કરણ નિયંત્રણ સિસ્ટમ્સ, બિટકોઇન જેવી ડિજિટલ કરન્સી, બિટટોરેન્ટ જેવા વિતરિત પીઅર-ટુ-પીઅર નેટવર્ક્સ અને કેસાન્ડ્રા જેવા વિતરિત ડેટાબેસેસનો સમાવેશ થાય છે.


A Message authentication code (MAC) is a small bit of information that can be used to check the authenticity and the integrity of a message.

સંદેશ પ્રમાણીકરણ કોડ (MAC) એ માહિતીનો એક નાનો ભાગ છે જેનો ઉપયોગ સંદેશની અધિકૃતતા અને અખંડિતતા તપાસવા માટે થઈ શકે છે.


The MAC algorithm also comes with a verification algorithm that takes a message, the key and a tag, and tells you if the tag was valid or not.

MAC અલ્ગોરિધમ એક ચકાસણી અલ્ગોરિધમ સાથે પણ આવે છે જે સંદેશ, કી અને ટૅગ લે છે, અને તમને જણાવે છે કે ટૅગ માન્ય છે કે નહીં.


In this book we’re mostly interested in MACs as a way to achieve authenticated encryption, so the message will always be a ciphertext.

આ પુસ્તકમાં, અમે મોટાભાગે MACs માં પ્રમાણિત એન્ક્રિપ્શન પ્રાપ્ત કરવાના માર્ગ તરીકે રસ ધરાવીએ છીએ, તેથી સંદેશ હંમેશા એક સાઇફરટેક્સ્ટ હશે.


We will be defending against an active attacker.

અમે સક્રિય હુમલાખોર સામે બચાવ કરીશું.


The attacker will be performing a chosen message attack.

હુમલાખોર પસંદ કરેલ સંદેશ હુમલો કરશે.


MAC ગુપ્ત કી કેમ લે છે?


In order to do this securely, you would either apply a signature algorithm to the binaries directly, or by signing the digests.

આને સુરક્ષિત રીતે કરવા માટે, તમે સીધા જ બાઈનરીઝ પર સહી અલ્ગોરિધમ લાગુ કરશો, અથવા ડાયજેસ્ટ પર સહી કરીને.


HKDF is a key derivation function designed for high entropy inputs.

HKDF એ એક કી ડિરાઇવેશન ફંક્શન છે જે ઉચ્ચ એન્ટ્રોપી ઇનપુટ્સ માટે ડિઝાઇન કરવામાં આવ્યું છે.


It is specifically not designed to be secure for low-entropy inputs such as passwords.

તે ખાસ કરીને પાસવર્ડ્સ જેવા ઓછા એન્ટ્રોપી ઇનપુટ્સ માટે સુરક્ષિત થવા માટે ડિઝાઇન કરાયેલ નથી.


HKDF exists to give people an appropriate, off-the-shelf key derivation function.

HKDF લોકોને યોગ્ય, ઓફ-ધ-શેલ્ફ કી ડિરાઇવેશન ફંક્શન આપવા માટે અસ્તિત્વમાં છે.


HKDF HMAC પર આધારિત છે.


The extraction phase is responsible for extracting a small amount of data with a high entropy content.

એક્સટ્રેક્શન તબક્કો ઉચ્ચ એન્ટ્રોપી સામગ્રી સાથે થોડી માત્રામાં ડેટા કાઢવા માટે જવાબદાર છે.


મીઠાનું મૂલ્ય વૈકલ્પિક છે.


Even a fairly low-entropy salt can already contribute significantly to the security of the key derivation function.

એકદમ ઓછી એન્ટ્રોપી મીઠું પણ કી ડિરાઇવેશન ફંક્શનની સુરક્ષામાં નોંધપાત્ર યોગદાન આપી શકે છે.


While the extraction phase is very good at concentrating entropy, it is not capable of amplifying entropy.

જ્યારે એક્સટ્રેક્શન તબક્કો એન્ટ્રોપીને કેન્દ્રિત કરવામાં ખૂબ જ સારો છે, તે એન્ટ્રોપીને વધારવામાં સક્ષમ નથી.


In the expansion phase, the random data extracted from the inputs in the extraction phase is expanded into as much data as is required.

વિસ્તરણ તબક્કામાં, એક્સટ્રેક્શન તબક્કામાં ઇનપુટ્સમાંથી કાઢવામાં આવેલ રેન્ડમ ડેટાને જરૂરી હોય તેટલા ડેટામાં વિસ્તૃત કરવામાં આવે છે.


The expansion step is also quite simple: chunks of data are produced using HMAC.

વિસ્તરણ પગલું પણ એકદમ સરળ છે: HMAC નો ઉપયોગ કરીને ડેટાના ટુકડા ઉત્પન્ન થાય છે.


Like the salt in the extraction phase, the ”info” parameter is entirely optional.

એક્સટ્રેક્શન તબક્કામાં મીઠાની જેમ, “માહિતી” પરિમાણ સંપૂર્ણપણે વૈકલ્પિક છે.


The generation of random numbers is too important to be left to chance.

રેન્ડમ નંબરોનું જનરેશન તક પર છોડવા માટે ખૂબ જ મહત્વપૂર્ણ છે.


Many cryptographic systems require random numbers.

ઘણા ક્રિપ્ટોગ્રાફિક સિસ્ટમ્સને રેન્ડમ નંબરોની જરૂર હોય છે.


Producing random numbers is a fairly intricate process.

રેન્ડમ નંબરોનું ઉત્પાદન એકદમ જટિલ પ્રક્રિયા છે.


True random number generators get their randomness from physical processes.

સાચા રેન્ડમ નંબર જનરેટર તેમની રેન્ડમનેસ ભૌતિક પ્રક્રિયાઓમાંથી મેળવે છે.


We need a source of randomness that isn’t a consequence of deterministic rules.

આપણને રેન્ડમનેસના સ્ત્રોતની જરૂર છે જે નિશ્ચિત નિયમોનું પરિણામ નથી.


Radioactive decay is one example of a quantum physical process used to produce random numbers.

રેડિયોએક્ટિવ ક્ષય એ રેન્ડમ નંબરો ઉત્પન્ન કરવા માટે વપરાતી ક્વોન્ટમ ભૌતિક પ્રક્રિયાનું એક ઉદાહરણ છે.


Shot noise is another quantum physical process used to produce random numbers.

શોટ નોઈઝ એ રેન્ડમ નંબરો ઉત્પન્ન કરવા માટે વપરાતી બીજી ક્વોન્ટમ ભૌતિક પ્રક્રિયા છે.


Nyquist noise is the noise that occurs from charge carriers traveling through a medium with a certain resistance.

Nyquist નોઈઝ એ એવો અવાજ છે જે ચાર્જ કેરિયર્સ ચોક્કસ પ્રતિકાર સાથેના માધ્યમમાંથી પસાર થવાથી થાય છે.


As an application developer, you should never be making a choice between one of them.

એક એપ્લિકેશન ડેવલપર તરીકે, તમારે તેમાંથી કોઈ એક વચ્ચે ક્યારેય પસંદગી કરવી જોઈએ નહીં.


Because they’re prepended, the internal state of the hash function after processing the prefixes can be computed ahead of time, shaving a few cycles off the MAC computation time.

કારણ કે તે પહેલાં ઉમેરવામાં આવે છે, તેથી પ્રિફિક્સની પ્રક્રિયા કર્યા પછી હેશ ફંક્શનની આંતરિક સ્થિતિ અગાઉથી ગણી શકાય છે, જે MAC ગણતરીના સમયમાંથી થોડા ચક્ર બચાવે છે.


So far, we’ve always assumed that MAC functions can be used with a single key to produce secure MACs for a very large number of messages.

અત્યાર સુધી, અમે હંમેશા ધાર્યું છે કે MAC કાર્યોનો ઉપયોગ એક જ કી સાથે ખૂબ મોટી સંખ્યામાં સંદેશાઓ માટે સુરક્ષિત MACs ઉત્પન્ન કરવા માટે થઈ શકે છે.


An algorithm that only works once just seems objectively worse.

એક અલ્ગોરિધમ જે ફક્ત એક જ વાર કામ કરે છે તે ઉદ્દેશ્યપૂર્વક ખરાબ લાગે છે.


They can be incredibly fast to evaluate, even for very large messages.

તેઓ ખૂબ મોટા સંદેશાઓ માટે પણ, મૂલ્યાંકન કરવા માટે અતિ ઝડપી હોઈ શકે છે.


They have a compelling security proof based on the information content of the tag.

તેમની પાસે ટેગની માહિતી સામગ્રીના આધારે એક આકર્ષક સુરક્ષા પુરાવો છે.


A construction exists to turn a one-time MAC into a secure multiple-use MAC, removing the principal problem.

એક બાંધકામ એક-સમયના MAC ને સુરક્ષિત બહુવિધ-ઉપયોગ MAC માં ફેરવવા માટે અસ્તિત્વમાં છે, જે મુખ્ય સમસ્યાને દૂર કરે છે.


A typical simple example of such one-time MACs consists of a simple multiplication and addition modulo some large prime p.

આવા એક-સમયના MAC નું એક લાક્ષણિક સરળ ઉદાહરણ કેટલાક મોટા અવિભાજ્ય p મોડ્યુલોના સરળ ગુણાકાર અને સરવાળાનું બનેલું છે.


This simple example only works for one-block messages m, and some prime p slightly bigger than the biggest m.

આ સરળ ઉદાહરણ ફક્ત એક-બ્લોક સંદેશાઓ m માટે અને કેટલાક અવિભાજ્ય p માટે કામ કરે છે જે સૌથી મોટા m કરતા થોડા મોટા છે.


It can be extended to support bigger messages M consisting of blocks m i by using a message-specific polynomial P:

સંદેશ-વિશિષ્ટ બહુપદી P નો ઉપયોગ કરીને તેને બ્લોક્સ m i ધરાવતા મોટા સંદેશાઓ M ને સપોર્ટ કરવા માટે વિસ્તૃત કરી શકાય છે:


This might look like a lot of computation, but this polynomial can be efficiently evaluated by iteratively factoring out the common factor a (also known as Horner’s rule):

આ ઘણી ગણતરી જેવું લાગી શકે છે, પરંતુ આ બહુપદીને સામાન્ય પરિબળ a ને પુનરાવર્તિત રીતે ફેક્ટર કરીને કાર્યક્ષમ રીતે મૂલ્યાંકન કરી શકાય છે (જેને હોર્નરનો નિયમ પણ કહેવામાં આવે છે):


In many ways, a one-time MAC is to authentication what a one-time pad is to encryption.

ઘણી રીતે, એક-સમયનો MAC પ્રમાણીકરણ માટે તે જ છે જે એક-સમયનો પેડ એ એન્ક્રિપ્શન માટે છે.


The security argument is similar: as long as the key is only used once, an attacker learns no information about the key or the message, because they are being irreversibly mixed.

સુરક્ષા દલીલ સમાન છે: જ્યાં સુધી કીનો ઉપયોગ ફક્ત એક જ વાર કરવામાં આવે છે, ત્યાં સુધી હુમલાખોરને કી અથવા સંદેશ વિશે કોઈ માહિતી મળતી નથી, કારણ કે તેઓ અફર રીતે મિશ્રિત થઈ રહ્યા છે.


This demonstrates that the MAC is secure against attackers trying to produce existential forgeries, even when that attacker has infinite computational power.

આ દર્શાવે છે કે MAC એ હુમલાખોરો સામે સુરક્ષિત છે જેઓ અસ્તિત્વલક્ષી બનાવટી બનાવવાનો પ્રયાસ કરી રહ્યા છે, પછી ભલે તે હુમલાખોર પાસે અનંત ગણતરી શક્તિ હોય.


Also like a one-time pad, the security argument relies on two very important properties about the keys a, b:

એક-સમયના પેડની જેમ, સુરક્ષા દલીલ કી a, b વિશેની બે ખૂબ જ મહત્વપૂર્ણ ગુણધર્મો પર આધાર રાખે છે:


We’ll illustrate that our example MAC is insecure if it is used to authenticate two messages m1, m2 with the same key (a, b):

અમે દર્શાવીશું કે જો તેનો ઉપયોગ સમાન કી (a, b) સાથે બે સંદેશાઓ m1, m2 ને પ્રમાણિત કરવા માટે કરવામાં આવે તો અમારું ઉદાહરણ MAC અસુરક્ષિત છે:


An attacker can reconstruct a, b with some simple modular arithmetic:

એક હુમલાખોર કેટલીક સરળ મોડ્યુલર અંકગણિત સાથે a, b ને ફરીથી બનાવી શકે છે:


As you can see, as with one-time pads, re-using the key even once leads to a complete failure of the cryptosystem to preserve privacy or integrity, as the case may be.

તમે જોઈ શકો છો તેમ, એક-સમયના પેડની જેમ, કીનો ફરીથી ઉપયોગ કરવાથી ગોપનીયતા અથવા અખંડિતતા જાળવવા માટે ક્રિપ્ટોસિસ્ટમ સંપૂર્ણપણે નિષ્ફળ જાય છે, જેમ કે કેસ હોઈ શકે છે.


Fortunately, this weakness can be solved with a construction called a Carter-Wegman MAC, which we’ll see in the next section.

સદનસીબે, આ નબળાઈને કાર્ટર-વેગમેન MAC નામના બાંધકામથી હલ કરી શકાય છે, જે આપણે આગલા વિભાગમાં જોઈશું.


The idea behind a Carter-Wegman MAC is that you can use a one-time MAC O to produce a tag for the bulk of the data, and then encrypt a nonce n with a pseudorandom function F, such as a block cipher, to protect that one-time tag:

કાર્ટર-વેગમેન MAC પાછળનો વિચાર એ છે કે તમે મોટાભાગના ડેટા માટે ટેગ બનાવવા માટે એક-સમયના MAC O નો ઉપયોગ કરી શકો છો, અને પછી તે એક-સમયના ટેગને સુરક્ષિત કરવા માટે સ્યુડોરેન્ડમ ફંક્શન F, જેમ કે બ્લોક સાઇફર સાથે નોન્સ n ને એન્ક્રિપ્ટ કરી શકો છો:


As long as F is a secure pseudorandom function, the nonce’s encryption is totally unpredictable.

જ્યાં સુધી F એ સુરક્ષિત સ્યુડોરેન્ડમ ફંક્શન છે, ત્યાં સુધી નોન્સનું એન્ક્રિપ્શન સંપૂર્ણપણે અણધારી છે.


A state generation function, which produces a new state from the old state.

એક સ્ટેટ જનરેશન ફંક્શન, જે જૂના સ્ટેટમાંથી નવું સ્ટેટ બનાવે છે.


The initialization function creates an instance of Mersenne Twister’s state array, from a small initial random number called aseed.

ઇનિશિયલાઇઝેશન ફંક્શન મર્સેન ટ્વિસ્ટરની સ્ટેટ એરેનું એક ઉદાહરણ બનાવે છે, જે એક નાના પ્રારંભિક રેન્ડમ નંબરથી શરૂ થાય છે જેને સીડ કહેવામાં આવે છે.


The state regeneration function takes the current state and produces a new state.

સ્ટેટ પુનર્જીવન કાર્ય હાલના સ્ટેટને લે છે અને નવું સ્ટેટ બનાવે છે.


The tempering function is applied to the current element of the state before returning it as the produced random number.

ટેમ્પરિંગ ફંક્શનને રેન્ડમ નંબર તરીકે પરત કરતા પહેલા સ્ટેટના વર્તમાન તત્વ પર લાગુ કરવામાં આવે છે.


Remember that for cryptographic security, it has to be impossible to predict future outputs or recover past outputs given present outputs.

યાદ રાખો કે ક્રિપ્ટોગ્રાફિક સુરક્ષા માટે, વર્તમાન આઉટપુટને જોતાં ભાવિ આઉટપુટની આગાહી કરવી અથવા ભૂતકાળના આઉટપુટને પુનઃપ્રાપ્ત કરવું અશક્ય હોવું જોઈએ.


SSL, short for Secure Socket Layer, is a cryptographic protocol originally introduced by Netscape Communications for securing traffic on the Web.

SSL, જેનું ટૂંકું નામ સિક્યોર સોકેટ લેયર છે, તે એક ક્રિપ્ટોગ્રાફિક પ્રોટોકોલ છે જે મૂળરૂપે નેટસ્કેપ કોમ્યુનિકેશન્સ દ્વારા વેબ પર ટ્રાફિકને સુરક્ષિત કરવા માટે રજૂ કરવામાં આવ્યું હતું.


The standard is now superseded by TLS (Transport Layer Security), a standard publicized in RFCs by the IETF.

આ સ્ટાન્ડર્ડ હવે TLS (ટ્રાન્સપોર્ટ લેયર સિક્યોરિટી) દ્વારા બદલવામાં આવ્યું છે, જે IETF દ્વારા RFC માં જાહેર કરાયેલ સ્ટાન્ડર્ડ છે.


Its first and foremost goal is to transport bytes securely, over the Internet or any other insecure medium.

તેનો પ્રથમ અને અગ્રણી ધ્યેય ઇન્ટરનેટ અથવા અન્ય કોઈપણ અસુરક્ષિત માધ્યમ દ્વારા સુરક્ષિત રીતે બાઇટ્સનું પરિવહન કરવાનું છે.


It’s a hybrid cryptosystem: it uses both symmetric and asymmetric algorithms in unison.

તે એક હાઇબ્રિડ ક્રિપ્ટોસિસ્ટમ છે: તે એકસાથે સપ્રમાણ અને અસમપ્રમાણ એલ્ગોરિધમનો ઉપયોગ કરે છે.


TLS is the world’s most common cryptosystem, and hence probably also the most studied.

TLS એ વિશ્વની સૌથી સામાન્ય ક્રિપ્ટોસિસ્ટમ છે, અને તેથી કદાચ સૌથી વધુ અભ્યાસ કરાયેલ પણ છે.


Over the years, many flaws have been discovered in SSL and TLS, despite many of the world’s top cryptographers contributing to and examining the standard.

વર્ષોથી, વિશ્વના ઘણા ટોચના ક્રિપ્ટોગ્રાફર્સે સ્ટાન્ડર્ડમાં યોગદાન આપ્યું હોવા છતાં અને તેની તપાસ કરી હોવા છતાં, SSL અને TLS માં ઘણી ખામીઓ મળી આવી છે.


A downgrade attack is a man-in-the-middle attack where an attacker modifies the handshake messages that negotiate which ciphersuite is being used.

ડાઉનગ્રેડ એટેક એ એક માણસ-વચ્ચે-હમલો છે જ્યાં હુમલાખોર હેન્ડશેક સંદેશાઓમાં ફેરફાર કરે છે જે વાટાઘાટો કરે છે કે કઈ સાઇફરસૂટનો ઉપયોગ કરવામાં આવી રહ્યો છે.


TLS certificates can be used to authenticate peers, but how do we authenticate the certificate?

TLS પ્રમાણપત્રોનો ઉપયોગ સાથીદારોને પ્રમાણિત કરવા માટે થઈ શકે છે, પરંતુ આપણે પ્રમાણપત્રને કેવી રીતે પ્રમાણિત કરીએ?


When someone actually tries to use a certificate to impersonate a bank, real browsers don’t believe them.

જ્યારે કોઈ વ્યક્તિ ખરેખર બેંકનું અનુકરણ કરવા માટે પ્રમાણપત્રનો ઉપયોગ કરવાનો પ્રયાસ કરે છે, ત્યારે વાસ્તવિક બ્રાઉઝર્સ તેમને માનતા નથી.


They notify the user that the certificate is untrusted.

તેઓ વપરાશકર્તાને સૂચિત કરે છે કે પ્રમાણપત્ર અવિશ્વસનીય છે.


TLS clients come with a list of trusted certificate authorities, commonly shipped with your operating system or your browser.

TLS ક્લાયન્ટ્સ વિશ્વસનીય પ્રમાણપત્ર અધિકારીઓની સૂચિ સાથે આવે છે, જે સામાન્ય રીતે તમારા ઓપરેટિંગ સિસ્ટમ અથવા તમારા બ્રાઉઝર સાથે મોકલવામાં આવે છે.


For a fee, these owners will use their certificate authority to sign other certificates.

ચોક્કસ ફી માટે, આ માલિકો અન્ય પ્રમાણપત્રો પર સહી કરવા માટે તેમના પ્રમાણપત્ર અધિકારનો ઉપયોગ કરશે.


When a TLS client connects to a server, that server provides a certificate chain.

જ્યારે TLS ક્લાયન્ટ સર્વર સાથે કનેક્ટ થાય છે, ત્યારે તે સર્વર પ્રમાણપત્ર સાંકળ પ્રદાન કરે છે.


In TLS, certificates are usually only used to identify the server.

TLS માં, પ્રમાણપત્રોનો ઉપયોગ સામાન્ય રીતે ફક્ત સર્વરને ઓળખવા માટે થાય છે.


This satisfies a typical use case: users want to communicate securely with their banks and e-mail providers, and the certificate authenticates the service they’re talking to.

આ એક લાક્ષણિક ઉપયોગના કેસને સંતોષે છે: વપરાશકર્તાઓ તેમની બેંકો અને ઈ-મેલ પ્રદાતાઓ સાથે સુરક્ષિત રીતે વાતચીત કરવા માંગે છે, અને પ્રમાણપત્ર તે સેવાની પ્રમાણિકતા કરે છે જેની સાથે તેઓ વાત કરી રહ્યા છે.


symmetric-key encryption Seesecret-key encryption.

સપ્રમાણ-કી એન્ક્રિપ્શન, ગુપ્ત-કી એન્ક્રિપ્શન જુઓ.


AES એડવાન્સ્ડ એન્ક્રિપ્શન સ્ટાન્ડર્ડ.


AKE પ્રમાણિત કી એક્સચેન્જ.


ARX ઉમેરો, ફેરવો, XOR કરો.


BEAST બ્રાઉઝર એક્સપ્લોઇટ અગેઇન્સ્ટ SSL/TLS.


CBC સાઇફર બ્લોક ચેઇનિંગ.


CDN કન્ટેન્ટ ડિસ્ટ્રિબ્યુશન નેટવર્ક.


CSPRNG cryptographically secure pseudorandom number generator.

CSPRNG ક્રિપ્ટોગ્રાફિકલી સુરક્ષિત સ્યુડોરેન્ડમ નંબર જનરેટર.


CSRF ક્રોસ-સાઇટ રિક્વેસ્ટ ફોર્જરી.


DES ડેટા એન્ક્રિપ્શન સ્ટાન્ડર્ડ.


FIPS Federal Information Processing Standards.

FIPS ફેડરલ ઇન્ફોર્મેશન પ્રોસેસિંગ સ્ટાન્ડર્ડ્સ.


GCM ગેલોઈસ કાઉન્ટર મોડ.


HKDF HMAC-based (Extract-and-Expand) Key Derivation Function.

HKDF HMAC-આધારિત (એક્સટ્રેક્ટ-એન્ડ-એક્સપાન્ડ) કી ડિરાઇવેશન ફંક્શન.


HMAC Hash-based Message Authentication Code.

HMAC હેશ-આધારિત મેસેજ ઓથેન્ટિકેશન કોડ.


HSTS HTTP સ્ટ્રિક્ટ ટ્રાન્સપોર્ટ સિક્યોરિટી.


IV ઇનિશિયલાઇઝેશન વેક્ટર.


KDF કી ડિરાઇવેશન ફંક્શન.


MAC સંદેશ પ્રમાણીકરણ કોડ.


MITM મેન-ઇન-ધ-મિડલ.


OCB ઓફસેટ કોડબુક.


Browsers originally implemented certificate pinning by coming shipped with a list of certificates from large, high-profile websites.

શરૂઆતમાં, બ્રાઉઝર્સે પ્રમાણપત્ર પિનિંગને મોટા, ઉચ્ચ-પ્રોફાઇલ વેબસાઇટ્સના પ્રમાણપત્રોની સૂચિ સાથે મોકલીને અમલમાં મૂક્યું હતું.


For example, Google included whitelisted certificates for all of their services in their Chrome browser.

ઉદાહરણ તરીકે, Google એ તેમના Chrome બ્રાઉઝરમાં તેમની બધી સેવાઓ માટે વ્હાઇટલિસ્ટ કરેલા પ્રમાણપત્રોનો સમાવેશ કર્યો.


Often, the defaults are unsafe, and people are unaware that they should be changed.

ઘણીવાર, ડિફૉલ્ટ અસુરક્ષિત હોય છે, અને લોકોને ખબર નથી હોતી કે તેને બદલવા જોઈએ.


The things that constitute a secure TLS configuration can change rapidly.

સુરક્ષિત TLS રૂપરેખાંકન બનાવતી વસ્તુઓ ઝડપથી બદલાઈ શકે છે.


Good advice necessarily changes over time, and it’s impossible to do so in a persistent medium such as a book.

સારી સલાહ સમય જતાં બદલાય છે, અને પુસ્તક જેવા કાયમી માધ્યમમાં તે કરવું અશક્ય છે.


Instead, you should look at continuously updated third party sources such as Qualys SSL Labs.

તેના બદલે, તમારે સતત અપડેટ થતા તૃતીય પક્ષ સ્ત્રોતો જેમ કે Qualys SSL લેબ્સ જોવું જોઈએ.


They provide tests for both SSL clients and servers, and extensive advice on how to improve configurations.

તેઓ SSL ક્લાયન્ટ્સ અને સર્વર્સ બંને માટે પરીક્ષણો અને રૂપરેખાંકનોને કેવી રીતે સુધારવું તે અંગે વ્યાપક સલાહ પૂરી પાડે છે.


OpenPGP is an open standard that describes a method for encrypting and signing messages.

OpenPGP એ એક ખુલ્લું ધોરણ છે જે સંદેશાઓને એન્ક્રિપ્ટ અને સાઇન કરવાની પદ્ધતિનું વર્ણન કરે છે.


GPG is the most popular implementation of that standard, available under a free software license.

GPG એ તે ધોરણનો સૌથી લોકપ્રિય અમલીકરણ છે, જે મફત સોફ્ટવેર લાઇસન્સ હેઠળ ઉપલબ્ધ છે.


Unlike TLS, which focuses on data in motion, OpenPGP focuses on data at rest.

TLS થી વિપરીત, જે ગતિમાં ડેટા પર ધ્યાન કેન્દ્રિત કરે છે, OpenPGP આરામ પર ડેટા પર ધ્યાન કેન્દ્રિત કરે છે.


A TLS session is active: bytes fly back and forth as the peers set up the secure channel.

TLS સત્ર સક્રિય છે: સુરક્ષિત ચેનલ સેટ કરતી વખતે બાઇટ્સ આગળ અને પાછળ ઉડે છે.


An OpenPGP interaction is, by comparison, static: the sender computes the entire message up front using information shared ahead of time.

સરખામણીમાં, OpenPGP ક્રિયાપ્રતિક્રિયા સ્થિર છે: મોકલનાર અગાઉથી શેર કરેલી માહિતીનો ઉપયોગ કરીને સમગ્ર સંદેશની અગાઉથી ગણતરી કરે છે.


In fact, OpenPGP doesn’t insist that anything is sent at all: for example, it can be used to sign software releases.

હકીકતમાં, OpenPGP એવો આગ્રહ રાખતો નથી કે કંઈપણ મોકલવામાં આવે: ઉદાહરણ તરીકે, તેનો ઉપયોગ સોફ્ટવેર રિલીઝ પર સહી કરવા માટે થઈ શકે છે.


Users have key pairs consisting of a public key and a private key.

વપરાશકર્તાઓની પાસે કી જોડીઓ હોય છે જેમાં જાહેર કી અને ખાનગી કીનો સમાવેશ થાય છે.


Public key algorithms are used both for signing and encryption.

જાહેર કી અલ્ગોરિધમનો ઉપયોગ સહી અને એન્ક્રિપ્શન બંને માટે થાય છે.


Symmetric key algorithms are used to encrypt the message body; the symmetric key itself is protected using public-key encryption.

સપ્રમાણ કી અલ્ગોરિધમનો ઉપયોગ સંદેશના બોડીને એન્ક્રિપ્ટ કરવા માટે થાય છે; સપ્રમાણ કી પોતે જાહેર-કી એન્ક્રિપ્શનનો ઉપયોગ કરીને સુરક્ષિત છે.


Earlier, we saw that TLS typically uses trusted root certificates to establish that a particular peer is who they claim to be.

અગાઉ, આપણે જોયું કે TLS સામાન્ય રીતે એ સ્થાપિત કરવા માટે વિશ્વસનીય રુટ પ્રમાણપત્રોનો ઉપયોગ કરે છે કે કોઈ ચોક્કસ પીઅર તે છે જેનો તેઓ દાવો કરે છે.


OpenPGP does not operate using such trusted roots.

OpenPGP આવા વિશ્વસનીય રુટનો ઉપયોગ કરીને કાર્ય કરતું નથી.


Instead, it relies on a system called the Web of Trust: a friend-of-a-friend honor system that relies on physical meetings where people verify identities.

તેના બદલે, તે વેબ ઓફ ટ્રસ્ટ નામની સિસ્ટમ પર આધાર રાખે છે: મિત્ર-ઓફ-એ-મિત્ર સન્માન સિસ્ટમ કે જે શારીરિક મીટિંગ્સ પર આધાર રાખે છે જ્યાં લોકો ઓળખ ચકાસે છે.


The simplest case is a directly trusted key.

સૌથી સરળ કિસ્સો સીધી રીતે વિશ્વસનીય કી છે.


Keep in mind that this method will still leak timing information, so it’s only suitable for offline computation.

ધ્યાનમાં રાખો કે આ પદ્ધતિ હજુ પણ સમયની માહિતી લીક કરશે, તેથી તે ફક્ત ઑફલાઇન ગણતરી માટે યોગ્ય છે.


Many programming languages provide access to specific modular exponentiation functions.

ઘણી પ્રોગ્રામિંગ ભાષાઓ ચોક્કસ મોડ્યુલર એક્સ્પોનેશન કાર્યોની ઍક્સેસ પ્રદાન કરે છે.


For example, in Python, pow(e, x, m) performs efficient modular exponentiation.

ઉદાહરણ તરીકે, પાયથોનમાં, pow(e, x, m) કાર્યક્ષમ મોડ્યુલર એક્સ્પોનેશન કરે છે.


However, the expression (e ** x) % m will still use the inefficient method.

જો કે, અભિવ્યક્તિ (e ** x) % m હજુ પણ બિનકાર્યક્ષમ પદ્ધતિનો ઉપયોગ કરશે.


The Montgomery ladder is an algorithm that resolves this by guaranteeing the same number of operations irrespective of the particular value of the exponent.

મોન્ટગોમરી સીડી એ એક અલ્ગોરિધમ છે જે એક્સ્પોનન્ટના ચોક્કસ મૂલ્યને ધ્યાનમાં લીધા વિના, કામગીરીની સમાન સંખ્યાની ખાતરી કરીને આને ઉકેલે છે.


It was originally applied for efficient scalar multiplications over elliptic curves, but the mathematics works for many other systems: specifically, for any abelian group.

તે મૂળરૂપે એલિપ્ટિક વળાંકો પર કાર્યક્ષમ સ્કેલર ગુણાકાર માટે લાગુ કરવામાં આવ્યું હતું, પરંતુ ગણિત અન્ય ઘણી સિસ્ટમો માટે કામ કરે છે: ખાસ કરીને, કોઈપણ એબેલિયન જૂથ માટે.


This is an optional, in-depth section. It almost certainly won’t help you write better software, so feel free to skip it.

આ એક વૈકલ્પિક, ઊંડાણપૂર્વકનો વિભાગ છે. તે લગભગ ચોક્કસપણે તમને વધુ સારું સોફ્ટવેર લખવામાં મદદ કરશે નહીં, તેથી તેને છોડવા માટે મફત લાગે.


Like with exponentiation by squaring, we start by looking at the binary expansion of the exponent k.

ચોરસ દ્વારા એક્સ્પોનેશનની જેમ, અમે એક્સ્પોનન્ટ k ના દ્વિસંગી વિસ્તરણને જોઈને શરૂઆત કરીએ છીએ.


Generally, any k can be written as a sum ( ∑ ) of some powers of two (2 i ).

સામાન્ય રીતે, કોઈપણ k ને બેની કેટલીક શક્તિઓ (2 i ) ના સરવાળા ( ∑ ) તરીકે લખી શકાય છે.


That definition might look scary, but all you’re really doing here is defining k i as bit of k at position i.

તે વ્યાખ્યા ડરામણી લાગી શકે છે, પરંતુ તમે અહીં જે ખરેખર કરી રહ્યા છો તે k i ને i સ્થાન પર k ના બીટ તરીકે વ્યાખ્યાયિત કરી રહ્યા છો.


The sum goes over all the bits: if k is t bits long, and we start indexing at 0, the index of the highest bit is t−1, and the index of the lowest bit is 0.

સરવાળો બધા બીટ્સ પર જાય છે: જો k t બીટ્સ લાંબો હોય, અને અમે 0 પર ઇન્ડેક્સિંગ શરૂ કરીએ, તો સૌથી વધુ બીટનો ઇન્ડેક્સ t−1 છે, અને સૌથી નીચો બીટનો ઇન્ડેક્સ 0 છે.


For example, the binary expansion of the number 6 is 0b110.

ઉદાહરણ તરીકે, 6 નંબરનું દ્વિસંગી વિસ્તરણ 0b110 છે.


That number is three bits long, so t = 3.

તે નંબર ત્રણ બીટ્સ લાંબો છે, તેથી t = 3.


The next few steps don’t make a lot of sense until you see them come together at the end, so bear with me and check that the math works out.

આગળના થોડા પગલાં ત્યાં સુધી બહુ અર્થપૂર્ણ નથી લાગતા જ્યાં સુધી તમે તેમને અંતે એકસાથે આવતા ન જુઓ, તેથી મારી સાથે રહો અને તપાસો કે ગણિત કામ કરે છે.


We’ll define a related sum, L j : L j = t−1 ∑ i=j 2 i−j k i

અમે સંબંધિત સરવાળો, L j : L j = t−1 ∑ i=j 2 i−j k i ને વ્યાખ્યાયિત કરીશું


Essentially, L j is just k shifted to the right by j bits.

મૂળભૂત રીતે, L j એ ફક્ત k ને જમણી બાજુએ j બીટ્સ દ્વારા ખસેડવામાં આવે છે.


Shifting to the right by one bit is the same thing as flooring division by two, just like right-shifting by a decimal digit is the same thing as flooring division by 10.

એક બીટ દ્વારા જમણી બાજુએ ખસેડવું એ બે દ્વારા ફ્લોરિંગ વિભાગ જેવું જ છે, જેમ કે દશાંશ અંક દ્વારા જમણી બાજુએ ખસેડવું એ 10 દ્વારા ફ્લોરિંગ વિભાગ જેવું જ છે.


For example: 73, shifted one decimal digit to the right is 7; 0b101 (5) shifted one binary digit (bit) to the right is 0b10 (2).

ઉદાહરણ તરીકે: 73, એક દશાંશ અંક જમણી બાજુએ ખસેડાયેલ 7 છે; 0b101 (5) એક દ્વિસંગી અંક (બીટ) જમણી બાજુએ ખસેડાયેલ 0b10 (2) છે.


Analogously, shifting left is the inverse operation, and is equivalent to multiplying by two.

એ જ રીતે, ડાબી બાજુએ ખસેડવું એ વિપરીત કામગીરી છે, અને તે બે વડે ગુણાકારની સમકક્ષ છે.


Next, we’ll perform a little arithmetical hocus pocus.

આગળ, અમે થોડું અંકગણિત હોકસ પોકસ કરીશું.