The book is an introduction to cryptography for programmers.

പ്രോഗ്രാമർമാർക്കുള്ള ക്രിപ്റ്റോഗ്രഫിയുടെ ഒരു മുഖവുരയാണ് ഈ പുസ്തകം.


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

എക്സ്ക്ലൂസീവ് ഓർ, സാധാരണയായി XOR എന്ന് വിളിക്കപ്പെടുന്നു, ഇതൊരു ബൂളിയൻ ഓപ്പറേറ്ററാണ്.


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

ഈ സ്കീമിന്റെ സുരക്ഷ, പാഡ് ഒരു തവണ മാത്രം ഉപയോഗിക്കുന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു.


If the bits are truly random, the attacker learns nothing.

ബിറ്റുകൾ ശരിക്കും ക്രമരഹിതമാണെങ്കിൽ, ആക്രമണകാരിക്ക് ഒന്നും മനസ്സിലാവില്ല.


This book is intended as a practical guide to cryptography.

ക്രിപ്റ്റോഗ്രഫിയെക്കുറിച്ചുള്ള ഒരു പ്രായോഗിക ഗൈഡായിട്ടാണ് ഈ പുസ്തകം ലക്ഷ്യമിടുന്നത്.


We will take a closer look at some of its properties.

അതിന്റെ ചില സവിശേഷതകൾ നമുക്ക് സൂക്ഷ്മമായി പരിശോധിക്കാം.


ഏത് ക്രമത്തിലും നിങ്ങൾക്ക് XOR പ്രയോഗിക്കാൻ കഴിയും.


ഏത് ബിറ്റും സ്വയം XOR ചെയ്യുമ്പോൾ 0 ആയിരിക്കും.


We'll use this property often when using XOR for encryption.

എൻക്രിപ്ഷനായി XOR ഉപയോഗിക്കുമ്പോൾ, ഈ സ്വഭാവം നമ്മൾ പലപ്പോഴും ഉപയോഗിക്കും.


Python provides the ^ operator that performs bitwise XOR.

ബിറ്റ് വൈസ് XOR നിർവഹിക്കുന്ന ^ ഓപ്പറേറ്റർ പൈത്തൺ നൽകുന്നു.


This scheme has the strongest possible security guarantee.

ഈ സ്കീമിന് ഏറ്റവും ശക്തമായ സുരക്ഷാ ഗ്യാരണ്ടി ഉണ്ട്.


The attacker learns zero information about the plaintext.

ആക്രമണകാരിക്ക്, പ്ലെയിൻടെക്സ്റ്റിനെക്കുറിച്ച് ഒരു വിവരവും ലഭിക്കില്ല.


Let's say Eve sees that a particular ciphertext bit is 1.

ഒരു പ്രത്യേക സൈഫർടെക്സ്റ്റ് ബിറ്റ് 1 ആണെന്ന് ഈവ് കാണുന്നു എന്ന് കരുതുക.


She has no idea if the matching plaintext bit was 0 or 1.

അനുബന്ധ പ്ലെയിൻടെക്സ്റ്റ് ബിറ്റ് 0 ആണോ 1 ആണോ എന്ന് അവൾക്കറിയില്ല.


The goal is to understand how cryptosystems work.

ക്രിപ്റ്റോസിസ്റ്റങ്ങൾ എങ്ങനെ പ്രവർത്തിക്കുമെന്നു മനസ്സിലാക്കുക എന്നതാണ് ലക്ഷ്യം.


The exercises focus on teaching cryptography by breaking systems.

സിസ്റ്റങ്ങൾ തകർക്കുന്നതിലൂടെ ക്രിപ്റ്റോഗ്രഫി പഠിപ്പിക്കുന്നതിൽ ഈ വ്യായാമങ്ങൾ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു.


We can no longer afford to keep the two worlds strictly separate.

രണ്ട് ലോകങ്ങളെയും കർശനമായി വേർതിരിക്കുന്നത് ഇനി നമുക്ക് താങ്ങാനാവില്ല.


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

എല്ലാ പ്രോഗ്രാമർമാരും വിദ്യാഭ്യാസം നേടുന്ന ഒരു ലോകത്തിലേക്ക് നാം അവരെ ഒരുമിപ്പിക്കണം.


ഈ പുസ്തകം ഒരു പാലമാകാൻ ആഗ്രഹിക്കുന്നു.


The goal of this book is to understand how complete cryptosystems work.

എങ്ങനെയാണ് സമ്പൂർണ്ണ ക്രിപ്റ്റോസിസ്റ്റങ്ങൾ പ്രവർത്തിക്കുന്നതെന്ന് മനസിലാക്കുക എന്നതാണ് ഈ പുസ്തകത്തിന്റെ ലക്ഷ്യം.


The attacker does learn that the message exists.

സന്ദേശം നിലവിലുണ്ടെന്ന് ആക്രമണകാരി മനസ്സിലാക്കുന്നു.


ഒരിക്കൽ ഉപയോഗിക്കാവുന്ന പാഡ് ഒരു തവണ മാത്രമേ ഉപയോഗിക്കാൻ കഴിയൂ.


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

വൺ-ടൈം പാഡുകൾ എന്ന് അവകാശപ്പെടുന്ന മിക്ക വാണിജ്യ ഉൽപ്പന്നങ്ങളും വ്യാജമാണ്.


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

വൺ-ടൈം പാഡ് നിർമ്മിക്കാൻ അവർ വിവിധ നിർണ്ണായക ഘടനകൾ ഉപയോഗിക്കുന്നു.


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

കൂടുതൽ സത്യസന്ധമായ ഒരു ക്രിപ്റ്റോസിസ്റ്റം ഉപയോക്താവിന് നല്ലതാണ്.


Reusing the one-time pad is a much more serious issue.

വൺ-ടൈം പാഡ് വീണ്ടും ഉപയോഗിക്കുന്നത് വളരെ ഗൗരവമുള്ള പ്രശ്നമാണ്.


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

ഒരേ വൺ-ടൈം പാഡ് ഉപയോഗിച്ച് രണ്ട് സൈഫർ ടെക്സ്റ്റുകൾ ഒരു അക്രമകാരിക്ക് ലഭിച്ചാൽ എന്തായിരിക്കും സംഭവിക്കുക എന്ന് നോക്കാം.


The problem is that even the result of the XOR operation on two plaintexts contains quite a bit information about the plaintexts themselves.

രണ്ട് പ്ലെയിൻ ടെക്സ്റ്റുകളിലെ XOR പ്രവർത്തനത്തിന്റെ ഫലം പോലും പ്ലെയിൻ ടെക്സ്റ്റുകളെക്കുറിച്ച് ധാരാളം വിവരങ്ങൾ ഉൾക്കൊള്ളുന്നു എന്നതാണ് പ്രശ്നം.


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

മൾട്ടി-ടൈം പാഡ് സിസ്റ്റങ്ങൾ തകർക്കാനുള്ള ഒരു ക്ലാസിക്കൽ സമീപനം ക്രിബ്-ഡ്രാഗിംഗ് ഉൾക്കൊള്ളുന്നു.


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

ആ മത്സരങ്ങൾ കൂടുതൽ ഡീക്രിപ്ഷന്റെ തുടക്കമായി വർത്തിക്കുന്നു.


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

സന്ദേശങ്ങളിലൊന്നിന്റെ പ്ലെയിൻടെക്സ്റ്റ് ശരിയായി ഊഹിക്കാൻ കഴിഞ്ഞാൽ, Cj എന്ന് കരുതുകയാണെങ്കിൽ, നമുക്ക് K അറിയാൻ കഴിയും.


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

പ്ലെയിൻടെക്സ്റ്റിന്റെ ഭാഗങ്ങൾ ഊഹിക്കുന്നത്, മുഴുവൻ പ്ലെയിൻടെക്സ്റ്റും ഊഹിക്കുന്നതിനേക്കാൾ എളുപ്പമാണ്.


If we know more about the plaintext, we can make even better guesses.

പ്ലെയിൻടെക്സ്റ്റിനെക്കുറിച്ച് കൂടുതൽ അറിയാമെങ്കിൽ, നമുക്ക് കൂടുതൽ മികച്ച ഊഹങ്ങൾ നടത്താൻ കഴിയും.


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

നമ്മുടെ ഊഹം ശരിയാണെങ്കിൽ, ആ സ്ഥാനത്തുള്ള മറ്റ് എല്ലാ പ്ലെയിൻടെക്സ്റ്റുകളും നമുക്കറിയാം.


These small, highly probable sequences are called cribs.

ഈ ചെറിയ, ഉയർന്ന സാധ്യതയുള്ള ശ്രേണികളെ ക്രിബ്സ് എന്ന് വിളിക്കുന്നു.


While this technique works as soon as two messages are encrypted with the same key, it’s clear that this becomes even easier with more ciphertexts using the same key.

രണ്ട് സന്ദേശങ്ങൾ ഒരേ കീ ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്താലുടൻ ഈ ടെക്നിക്ക് പ്രവർത്തിക്കും, എന്നാൽ കൂടുതൽ സൈഫർ ടെക്സ്റ്റുകൾ ഒരേ കീ ഉപയോഗിക്കുമ്പോൾ ഇത് കൂടുതൽ എളുപ്പമാകും.


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

ശരിയായ രീതിയിൽ നടപ്പിലാക്കിയ യഥാർത്ഥ വൺ-ടൈം പാഡുകൾക്ക് വളരെ ശക്തമായ സുരക്ഷാ ഗ്യാരണ്ടി ഉണ്ട്.


One-time pads are rarely used, because they are horribly impractical.

വൺ-ടൈം പാഡുകൾ വളരെ കുറഞ്ഞേ ഉപയോഗിക്കാറുള്ളൂ, കാരണം അവ പ്രായോഗികമല്ലാത്തവയാണ്.


We need something with manageable key sizes while maintaining secrecy.

രഹസ്യസ്വഭാവം നിലനിർത്തുന്നതിനൊപ്പം കൈകാര്യം ചെയ്യാവുന്ന കീ വലുപ്പമുള്ള ഒന്ന് നമുക്ക് ആവശ്യമാണ്.


A block cipher is an algorithm that allows us to encrypt blocks of a fixed length.

നിശ്ചിത നീളത്തിലുള്ള ബ്ലോക്കുകൾ എൻക്രിപ്റ്റ് ചെയ്യാൻ അനുവദിക്കുന്ന ഒരു അൽഗോരിതമാണ് ബ്ലോക്ക് സൈഫർ.


We need some scheme to make them fit. That process is called padding.

അവയെല്ലാം ഒതുങ്ങാൻ നമുക്ക് ഒരു പദ്ധതി ആവശ്യമാണ്. ആ പ്രക്രിയയെ പാഡിംഗ് എന്ന് വിളിക്കുന്നു.


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.

നിങ്ങൾ പാഡ് ചെയ്യേണ്ട ബൈറ്റുകളുടെ എണ്ണം എടുക്കുക, കൂടാതെ ആ മൂല്യമുള്ള ബൈറ്റ് എത്ര തവണയുണ്ടോ, അത്രയും തവണ ഉപയോഗിച്ച് പാഡ് ചെയ്യുക.


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

പ്ലെയിൻ ടെക്സ്റ്റ് ബ്ലോക്ക് സൈസിൻ്റെ കൃത്യമായ ഗുണിതമാണെങ്കിൽ, പാഡിംഗിൻ്റെ ഒരു മുഴുവൻ ബ്ലോക്കും ഉപയോഗിക്കുന്നു.


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

സ്വീകരിക്കുന്നവരെ തന്ത്രപരമായി, ഇഷ്ടമുള്ള സന്ദേശങ്ങൾ ഡീക്രിപ്റ്റ് ചെയ്യാൻ CBC ബിറ്റ് ഫ്ലിപ്പിംഗ് ആക്രമണങ്ങൾ നമുക്ക് മെച്ചപ്പെടുത്താം!


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.

പ്ലെയിൻ ടെക്സ്റ്റിൻ്റെ പാഡിംഗിനെക്കുറിച്ചുള്ള ആ ചെറിയ വിവരങ്ങൾ ഉപയോഗിച്ച്, മുഴുവൻ സന്ദേശവും ആവർത്തിച്ച് ഡീക്രിപ്റ്റ് ചെയ്യാൻ കഴിയും.


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.

അവർക്ക് ഡീക്രിപ്റ്റ് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന സൈഫർ ടെക്സ്റ്റിൽ നിന്ന് ഒരു ടാർഗെറ്റ് ബ്ലോക്കും തിരഞ്ഞെടുക്കുന്നു.


The attacker asks the padding oracle if the plaintext has valid padding.

പ്ലെയിൻ ടെക്സ്റ്റിന് സാധുവായ പാഡിംഗ് ഉണ്ടോ എന്ന് ആക്രമണകാരി പാഡിംഗ് ഒറാക്കിളിനോട് ചോദിക്കുന്നു.


Statistically speaking, such a random plaintext probably won’t have valid padding.

സ്ഥിതിവിവരക്കണക്കുകൾ പ്രകാരം, ഇതുപോലെയുള്ള ഒരു ക്രമരഹിതമായ പ്ലെയിൻ ടെക്സ്റ്റിന് സാധുവായ പാഡിംഗ് ഉണ്ടാകാൻ സാധ്യതയില്ല.


Next, the attacker tries to modify the message so that it does have valid padding.

അടുത്തതായി, സാധുവായ പാഡിംഗ് ലഭിക്കുന്നതിന് സന്ദേശം പരിഷ്കരിക്കാൻ അക്രമകാരി ശ്രമിക്കുന്നു.


They can do that by indirectly modifying the last byte of the plaintext.

പ്ലെയിൻ ടെക്സ്റ്റിൻ്റെ അവസാന ബൈറ്റ് നേരിട്ടല്ലാതെ പരിഷ്കരിക്കുന്നതിലൂടെ അവർക്ക് അത് ചെയ്യാൻ കഴിയും.


The attacker tries all possible values for that last byte.

ആക്രമണകാരി ആ അവസാന ബൈറ്റിനായി സാധ്യമായ എല്ലാ മൂല്യങ്ങളും പരീക്ഷിക്കുന്നു.


Eventually, the padding oracle will report that for some ciphertext block, the decrypted plaintext has valid padding.

അവസാനം, ചില സൈഫർ ടെക്സ്റ്റ് ബ്ലോക്കുകൾക്കായി, ഡീക്രിപ്റ്റ് ചെയ്ത പ്ലെയിൻ ടെക്സ്റ്റിന് സാധുവായ പാഡിംഗ് ഉണ്ടെന്ന് പാഡിംഗ് ഒറാക്കിൾ റിപ്പോർട്ട് ചെയ്യും.


WEP, a standard for protecting wireless networks that was popular at the time, was heavily affected by this attack, because it used this simplistic nonce combination scheme.

അക്കാലത്ത് പ്രചാരത്തിലുണ്ടായിരുന്ന വയർലെസ് നെറ്റ്‌വർക്കുകൾ പരിരക്ഷിക്കുന്നതിനുള്ള ഒരു മാനദണ്ഡമായ WEP, ഈ ലളിതമായ നോൺസ് കോമ്പിനേഷൻ സ്കീം ഉപയോഗിച്ചതിനാൽ ഈ ആക്രമണത്തിൽ വളരെയധികം ബാധിക്കപ്പെട്ടു.


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 ആകുമ്പോൾ, കീസ്‌ട്രീമിൽ എവിടെയാണ് സംഭവിക്കുന്നതെന്നതിനെ ആശ്രയിച്ച് അടുത്ത ബൈറ്റിനെക്കുറിച്ച് നിങ്ങൾക്ക് നിരവധി പ്രവചനങ്ങൾ നടത്താൻ കഴിയും.


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 അത്ര മികച്ചതല്ലെങ്കിലും, സാമ്പത്തിക മേഖലയിൽ ഇപ്പോഴും ഇത് വ്യാപകമായി ഉപയോഗിക്കുന്നു.


With a plethora of standards already in existence and new ones continuing to be created, in such an extremely technologically conservative industry where Fortran and Cobol still reign supreme on massive mainframes, 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.

ഉദാഹരണത്തിന്, വളരെ കുറഞ്ഞ ദൈർഘ്യമുള്ള സന്ദേശങ്ങൾ മാത്രമേ നമുക്ക് അയക്കാൻ കഴിയൂ: ബ്ലോക്ക് സൈഫറിന്റെ ബ്ലോക്ക് ലെങ്ത്.


We’ll address this problem with a stream cipher.

സ്ട്രീം സൈഫർ ഉപയോഗിച്ച് ഈ പ്രശ്നം പരിഹരിക്കാം.


Although we have reduced the key size drastically, we still need to address the issue of agreeing on those few key bytes, potentially over an insecure channel.

കീയുടെ വലുപ്പം വളരെയധികം കുറച്ചെങ്കിലും, സുരക്ഷിതമല്ലാത്ത ഒരു ചാനലിലൂടെ പോലും, കുറച്ച് കീ ബൈറ്റുകളിൽ എങ്ങനെ എത്തിച്ചേരാമെന്ന പ്രശ്നം നമ്മൾ ഇപ്പോഴും അഭിമുഖീകരിക്കുന്നു.


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

സ്ട്രീം സൈഫർ എന്നത് ബിറ്റുകളുടെ ഒരു സ്ട്രീമിനെ എൻക്രിപ്റ്റ് ചെയ്യുന്ന ഒരു അസമമിതി കീ എൻക്രിപ്ഷൻ അൽഗോരിതമാണ്.


Let’s try to build a stream cipher using the tools we already have.

നമ്മുടെ കയ്യിലുള്ള ടൂളുകൾ ഉപയോഗിച്ച് ഒരു സ്ട്രീം സൈഫർ ഉണ്ടാക്കാൻ ശ്രമിക്കാം.


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 മോഡ് (ഇലക്ട്രോണിക് കോഡ് ബുക്ക് മോഡ്) എന്ന് വിളിക്കുന്നു, കൂടാതെ ബ്ലോക്ക് സൈഫറുകൾ ഉപയോഗിച്ച് സ്ട്രീം സൈഫറുകൾ നിർമ്മിക്കാനുള്ള നിരവധി വഴികളിൽ ഒന്നാണിത്.


Unfortunately, while being very common in home-grown cryptosystems, it poses very serious security flaws.

bedhathil, veettil undakkunna cryptosystemsil ethu valare sadharana aanenkilum, athu valare gurutaramaya suraksha doshangal undakkunnu.


For example, in ECB mode, identical input blocks will always map to identical output blocks.

ഉദാഹരണത്തിന്, ECB മോഡിൽ, സമാനമായ ഇൻപുട്ട് ബ്ലോക്കുകൾ എപ്പോഴും സമാനമായ ഔട്ട്പുട്ട് ബ്ലോക്കുകളിലേക്ക് മാപ്പ് ചെയ്യും.


Assuming the block cipher is secure, it doesn’t look like an attacker would be able to decrypt anything.

ബ്ലോക്ക് സൈഫർ സുരക്ഷിതമാണെങ്കിൽ, ഒരു അക്രമിയെക്കൊണ്ട് ഒന്നും ഡീക്രിപ്റ്റ് ചെയ്യാൻ കഴിയില്ല.


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 മോഡിൽ എൻക്രിപ്റ്റ് ചെയ്ത സന്ദേശങ്ങൾ അക്രമികൾക്ക് എങ്ങനെ ഡീക്രിപ്റ്റ് ചെയ്യാമെന്ന് നമുക്ക് കാണിച്ചു തരാം.


To demonstrate that this is, in fact, a serious problem, we’ll use a simulated block cipher of various block sizes and apply it to an image.

ഇതൊരു ഗുരുതരമായ പ്രശ്നമാണെന്ന് തെളിയിക്കാൻ, വിവിധ ബ്ലോക്ക് വലുപ്പങ്ങളുള്ള ഒരു സിമുലേറ്റഡ് ബ്ലോക്ക് സൈഫർ ഉപയോഗിച്ച് ഒരു ചിത്രത്തിൽ പ്രയോഗിക്കാം.


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.

പ്ലെയിൻ ടെക്സ്റ്റിലെ സമാനമായ പിക്സൽ ബ്ലോക്കുകൾ സൈഫർ ടെക്സ്റ്റിലെ സമാനമായ പിക്സൽ ബ്ലോക്കുകളിലേക്ക് മാപ്പ് ചെയ്യുന്നതിനാൽ, ചിത്രത്തിന്റെ ഘടന ഏറെക്കുറെ നിലനിർത്താൻ കഴിയും.


As you can see, the situation appears to get slightly better with larger block sizes, but the fundamental problem still remains.

വലിയ ബ്ലോക്ക് വലുപ്പങ്ങൾ ഉപയോഗിക്കുമ്പോൾ സ്ഥിതിഗതികൾ അൽപ്പം മെച്ചപ്പെടുന്നതായി കാണാം, എന്നാൽ അടിസ്ഥാനപരമായ പ്രശ്നം ഇപ്പോഴും നിലനിൽക്കുന്നു.


Furthermore, all but the smallest of these block sizes are unrealistically large.

കൂടാതെ, ഈ ബ്ലോക്ക് വലുപ്പങ്ങളിൽ ഏറ്റവും ചെറുതല്ലാത്തവയെല്ലാം തന്നെ യാഥാർത്ഥ്യമല്ലാത്തത്രയും വലുതാണ്.


In order to protect that information, the server that handles it encrypts it using a strong block cipher in CBC mode with a fixed key.

ആ വിവരങ്ങൾ പരിരക്ഷിക്കുന്നതിന്, അത് കൈകാര്യം ചെയ്യുന്ന സെർവർ ഒരു സ്ഥിരമായ കീ ഉപയോഗിച്ച് CBC മോഡിൽ ശക്തമായ ഒരു ബ്ലോക്ക് സൈഫർ ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്യുന്നു.


There’s no way for him to prove that he’s the legitimate participant.

അദ്ദേഹം നിയമാനുസൃത പങ്കാളിയാണെന്ന് തെളിയിക്കാൻ ഒരു വഴിയുമില്ല.


As far as Alice can tell, Bob just chose a few random numbers.

ആലീസിന് അറിയാവുന്നിടത്തോളം, ബോബ് കുറച്ച് ക്രമരഹിതമായ സംഖ്യകൾ തിരഞ്ഞെടുത്തു.


There’s no way to link any key that Bob has with any key that Alice has.

ബോബിന്റെ കീയുമായി ആലീസിന്റെ കീയെ ബന്ധിപ്പിക്കാൻ ഒരു മാർഗവുമില്ല.


Attacks like these are called man-in-the-middle (MITM) attacks.

ഇത്തരം ആക്രമണങ്ങളെ മാൻ-ഇൻ-ദി-മിഡിൽ (MITM) ആക്രമണങ്ങൾ എന്ന് വിളിക്കുന്നു.


Given that the network infrastructure that we typically use to send messages is run by many different operators, this kind of attack scenario is very realistic.

സന്ദേശങ്ങൾ അയയ്‌ക്കാൻ സാധാരണയായി ഉപയോഗിക്കുന്ന നെറ്റ്‌വർക്ക് ഇൻഫ്രാസ്ട്രക്ചർ വ്യത്യസ്ത ഓപ്പറേറ്റർമാർ പ്രവർത്തിപ്പിക്കുന്നതിനാൽ, ഈ ধরনের ആക്രമണ സാധ്യത വളരെ യാഥാർത്ഥ്യമാണ്.


A secure cryptosystem will have to address them somehow.

സുരക്ഷിതമായ ഒരു ക്രിപ്റ്റോസിസ്റ്റം അവ എങ്ങനെയും അഭിസംബോധന ചെയ്യേണ്ടിവരും.


While the Diffie-Hellman protocol successfully produced a shared secret between two peers, there are clearly some pieces of the puzzle still missing to build those cryptosystems.

Diffie-Hellman പ്രോട്ടോക്കോൾ രണ്ട് സമപ്രായക്കാർക്കിടയിൽ ഒരു പങ്കിട്ട രഹസ്യം വിജയകരമായി ഉൽപ്പാദിപ്പിച്ചെങ്കിലും, ആ ക്രിപ്റ്റോസിസ്റ്റങ്ങൾ നിർമ്മിക്കുന്നതിന് ഇപ്പോഴും ചില ഭാഗങ്ങൾ നഷ്ടപ്പെട്ടിട്ടുണ്ട്.


We need tools that help us authenticate Alice to Bob and vice versa.

ആലീസിനെ ബോബിനും തിരിച്ചും പ്രാമാണീകരിക്കാൻ സഹായിക്കുന്ന ടൂളുകൾ നമുക്ക് ആവശ്യമാണ്.


We need tools that help guarantee message integrity.

സന്ദേശത്തിന്റെ സമഗ്രത ഉറപ്പാക്കാൻ സഹായിക്കുന്ന ടൂളുകൾ നമുക്ക് ആവശ്യമാണ്.


Public-key encryption didn’t involve a single secret key, but instead had a key pair.

പബ്ലിക്-കീ എൻക്രിപ്ഷനിൽ ഒരു രഹസ്യ കീ ഉൾപ്പെട്ടിരുന്നില്ല, എന്നാൽ അതിനുപകരം ഒരു കീ ജോഡിയുണ്ടായിരുന്നു.


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

നിങ്ങൾക്കായി ഉദ്ദേശിച്ച വിവരങ്ങൾ നിങ്ങളുടെ പബ്ലിക് കീ ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്യാൻ കഴിയും.


The information is then impossible to decipher without your private key.

തുടർന്ന് നിങ്ങളുടെ സ്വകാര്യ കീ ഇല്ലാതെ വിവരങ്ങൾ ഡീസിഫർ ചെയ്യാൻ കഴിയില്ല.


ഇതിനെ പബ്ലിക്-കീ എൻക്രിപ്ഷൻ എന്ന് വിളിക്കുന്നു.


For a long time, people thought this was impossible.

ഒരുപാട് കാലം ആളുകൾ ഇത് അസാധ്യമാണെന്ന് കരുതി.


The first publicly available encryption scheme was produced by three cryptographers from MIT.

ആദ്യത്തെ പൊതുവായി ലഭ്യമായ എൻക്രിപ്ഷൻ സ്കീം എംഐടിയിലെ മൂന്ന് ക്രിപ്റ്റോഗ്രാഫർമാർ നിർമ്മിച്ചു.


The algorithm they published is still the most common one today, and carries the first letters of their last names: RSA.

അവർ പ്രസിദ്ധീകരിച്ച അൽഗോരിതം ഇപ്പോഴും ഏറ്റവും സാധാരണമായ ഒന്നാണ്, കൂടാതെ അവരുടെ കുടുംബപ്പേരുകളുടെ ആദ്യ അക്ഷരങ്ങൾ ഉൾക്കൊള്ളുന്നു: RSA.


Public-key algorithms aren’t limited to encryption.

പബ്ലിക്-കീ അൽഗോരിതങ്ങൾ എൻക്രിപ്ഷനിൽ മാത്രം പരിമിതപ്പെടുന്നില്ല.


In fact, you’ve already seen a public-key algorithm in this book that isn’t directly used for encryption.

വാസ്തവത്തിൽ, എൻക്രിപ്ഷനായി നേരിട്ട് ഉപയോഗിക്കാത്ത ഒരു പബ്ലിക്-കീ അൽഗോരിതം നിങ്ങൾ ഇതിനകം ഈ പുസ്തകത്തിൽ കണ്ടുകഴിഞ്ഞു.


We could just use public key encryption for everything, avoiding all the added complexity of having to do key agreement for our symmetric algorithms.

നമ്മുടെ സിമെട്രിക് അൽഗോരിതങ്ങൾക്കായി കീ കരാർ ഉണ്ടാക്കേണ്ടതിന്റെ അധിക സങ്കീർണ്ണത ഒഴിവാക്കിക്കൊണ്ട്, എല്ലാ കാര്യങ്ങൾക്കും പബ്ലിക് കീ എൻക്രിപ്ഷൻ ഉപയോഗിക്കാം.


By far the most important reason for this is performance.

ഇതിനുള്ള ഏറ്റവും പ്രധാനപ്പെട്ട കാരണം പ്രകടനം ആണ്.


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 നിലവിലുള്ളത്.


Previously, key derivation was often something that was done ad hoc for a particular standard.

മുമ്പ്, കീ ഡെറിവേഷൻ പലപ്പോഴും ഒരു പ്രത്യേക മാനദണ്ഡത്തിനായി താൽക്കാലികമായി ചെയ്യുന്ന ഒന്നായിരുന്നു.


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.

കുറഞ്ഞ എൻട്രോപ്പി ഉള്ള സോൾട്ട് പോലും സുരക്ഷയിലേക്ക് കാര്യമായ സംഭാവന നൽകും.


The expansion phase expands the random data extracted from the inputs.

വിപുലീകരണ ഘട്ടം, ഇൻപുട്ടുകളിൽ നിന്ന് വേർതിരിച്ചെടുത്ത ക്രമരഹിതമായ ഡാറ്റ വികസിപ്പിക്കുന്നു.


The "info" parameter is intended to contain some application-specific context.

"വിവരങ്ങൾ" എന്ന പാരാമീറ്റർ ചില ആപ്ലിക്കേഷൻ-നിർദ്ദിഷ്ട സന്ദർഭം ഉൾക്കൊള്ളാൻ ഉദ്ദേശിച്ചുള്ളതാണ്.


Many cryptographic systems require random numbers.

പല ക്രിപ്റ്റോഗ്രാഫിക് സിസ്റ്റങ്ങൾക്കും ക്രമരഹിതമായ സംഖ്യകൾ ആവശ്യമാണ്.


Producing random numbers is a fairly intricate process.

ക്രമരഹിതമായ സംഖ്യകൾ ഉണ്ടാക്കുന്നത് വളരെ സങ്കീർണ്ണമായ ഒരു പ്രക്രിയയാണ്.


True random number generators get their randomness from physical processes.

യഥാർത്ഥ ക്രമരഹിത സംഖ്യാ ജനറേറ്ററുകൾക്ക് ഭൗതിക പ്രക്രിയകളിൽ നിന്നാണ് ക്രമരഹിതത്വം ലഭിക്കുന്നത്.


Systems like dice are still in common use today.

ഡൈസ് പോലുള്ള സംവിധാനങ്ങൾ ഇന്നും സാധാരണയായി ഉപയോഗത്തിലുണ്ട്.


There are several categories of physical processes that are used for hardware random number generation.

ഹാർഡ്‌വെയർ ക്രമരഹിത സംഖ്യകൾ ഉണ്ടാക്കാൻ ഉപയോഗിക്കുന്ന നിരവധി വിഭാഗങ്ങളുണ്ട്.


Radioactive decay is one example of a quantum physical process.

റേഡിയോആക്ടീവ് ശോഷണം ഒരു ക്വാണ്ടം ഭൗതിക പ്രക്രിയയുടെ ഉദാഹരണമാണ്.


Shot noise is another quantum physical process.

ഷോട്ട് നോയിസ് മറ്റൊരു ക്വാണ്ടം ഭൗതിക പ്രക്രിയയാണ്.


Nyquist noise is an example of a thermal process.

താപീയ പ്രക്രിയയുടെ ഒരു ഉദാഹരണമാണ് നൈക്വിസ്റ്റ് നോയിസ്.


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

ഒരു ആപ്ലിക്കേഷൻ ഡെവലപ്പർ എന്ന നിലയിൽ, നിങ്ങൾ അവയിലൊന്നിനും തിരഞ്ഞെടുക്കാൻ പാടില്ല.


Mersenne Twister is a very common pseudorandom number generator.

മെർസെൻ ട്വിസ്റ്റർ വളരെ സാധാരണമായ ഒരു സൂഡോറാൻഡം നമ്പർ ജനറേറ്ററാണ്.


The password, when hashed, would result in the same hash everywhere.

പാസ്‌വേഡ്, ഹാഷ് ചെയ്യുമ്പോൾ എല്ലായിടത്തും ഒരേ ഹാഷ് ആയിരിക്കും ഉണ്ടാക്കുക.


This problem was generally solved by using salts.

സാധാരണയായി, ലവണങ്ങൾ ഉപയോഗിച്ചാണ് ഈ പ്രശ്നം പരിഹരിച്ചത്.


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

പാസ്‌വേഡിനെ ഹാഷ് ചെയ്യുന്നതിന് മുമ്പ്, ചില ക്രമരഹിതമായ മൂല്യങ്ങളുമായി ചേർക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് പൂർണ്ണമായും വ്യത്യസ്തമായ ഹാഷ് മൂല്യങ്ങൾ ഉണ്ടാക്കാൻ കഴിയും.


It effectively turns a hash function into a whole family of related hash functions.

ഇതൊരു ഹാഷ് ഫംഗ്ഷനെ, ബന്ധപ്പെട്ട ഹാഷ് ഫംഗ്ഷനുകളുടെ ഒരു വലിയ കൂട്ടമാക്കി മാറ്റുന്നു.


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

ഡാറ്റാബേസിൽ പാസ്‌വേഡ് ഹാഷിന് അടുത്തായി ലവണ മൂല്യം സംഭരിക്കുന്നു.


When the user authenticates using the password, you just combine the salt with the password, hash it, and compare it against the stored hash.

ഉപയോക്താവ് പാസ്‌വേഡ് ഉപയോഗിച്ച് പ്രാമാണീകരണം നടത്തുമ്പോൾ, നിങ്ങൾ ലവണവും പാസ്‌വേഡും സംയോജിപ്പിച്ച്, ഹാഷ് ചെയ്ത്, സംഭരിച്ച ഹാഷുമായി താരതമ്യം ചെയ്യുക.


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

നിങ്ങൾ മതിയായ വലുപ്പമുള്ള, ക്രിപ്റ്റോഗ്രാഫിക്കായി ക്രമരഹിതമായ ഒരു ലവണം തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് മുൻകൂട്ടിയുള്ള ആക്രമണങ്ങളെ പൂർണ്ണമായും പരാജയപ്പെടുത്താൻ കഴിയും.


In order to successfully mount a rainbow table attack, an attacker would have to have a separate table for each of those salt values.

ഒരു റെയിൻബോ ടേബിൾ ആക്രമണം വിജയകരമായി നടത്താൻ, ഒരു അക്രമകാരിക്ക് ആ ലവണ മൂല്യങ്ങളിൽ ഓരോന്നിനും പ്രത്യേകം പട്ടിക ഉണ്ടായിരിക്കണം.


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.

പല സിസ്റ്റങ്ങളിലും എല്ലാ ഉപയോക്താക്കൾക്കും ഒരൊറ്റ ലവണം ഉപയോഗിച്ചു.


While that prevented an ahead-of-time rainbow table attack, it still allowed attackers to attack all passwords simultaneously.

അത് മുൻകൂട്ടിയുള്ള റെയിൻബോ ടേബിൾ ആക്രമണം തടഞ്ഞെങ്കിലും, അക്രമണകാരികളെ എല്ലാ പാസ്‌വേഡുകളും ഒരേസമയം ആക്രമിക്കാൻ ഇത് അനുവദിച്ചു.


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 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.

പാസ്‌വേഡുകൾ പരിരക്ഷിക്കുന്നതിന്, നിങ്ങൾക്ക് (കുറഞ്ഞ എൻട്രോപ്പി) കീ ഡെറിവേഷൻ ഫംഗ്ഷൻ ആവശ്യമാണ്.


We’ll discuss them in more detail in a future chapter.

ഭാവിയിലുള്ള ഒരു അധ്യായത്തിൽ നമുക്ക് അവയെക്കുറിച്ച് വിശദമായി ചർച്ച ചെയ്യാം.


In many hash functions, particularly the previous generations, the internal state kept by the hash function is used as the digest value.

പല ഹാഷ് ഫംഗ്ഷനുകളിലും, പ്രത്യേകിച്ച് പഴയ തലമുറയിൽ, ഹാഷ് ഫംഗ്ഷൻ നിലനിർത്തുന്ന ആന്തരിക അവസ്ഥ ഡൈജസ്റ്റ് മൂല്യമായി ഉപയോഗിക്കുന്നു.


If an attacker knows H(M1), it’s very simple to compute H(M1 ‖ M2), without actually knowing the value of M1.

ഒരു അക്രമകാരിക്ക് H(M1) അറിയാമെങ്കിൽ, M1 ന്റെ മൂല്യം അറിയാതെ തന്നെ H(M1 ‖ M2) കണക്കാക്കുന്നത് വളരെ ലളിതമാണ്.


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

ഒരു പഴയ അവസ്ഥയിൽ നിന്ന് ഒരു പുതിയ അവസ്ഥ ഉണ്ടാക്കുന്ന ഒരു അവസ്ഥ നിർമ്മാണ ഫംഗ്ഷൻ.


The state initialization function is also called right before the first number is extracted.

ആദ്യ നമ്പർ എടുക്കുന്നതിന് തൊട്ടുമുന്‍പ് അവസ്ഥാ ആരംഭ ഫംഗ്ഷനും വിളിക്കപ്പെടുന്നു.


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

ആരംഭ ഫംഗ്ഷൻ, ഒരു ചെറിയ ആരംഭ റാൻഡം നമ്പറിൽ നിന്ന് മെർസെൻ ട്വിസ്റ്ററിൻ്റെ അവസ്ഥാ ശ്രേണിയുടെ ഒരു ഉദാഹരണം ഉണ്ടാക്കുന്നു, ഇതിനെ സീഡ് എന്ന് വിളിക്കുന്നു.


For those of you who haven’t worked with Python or its bitwise operators:

പൈത്തണോ അതിന്റെ ബിറ്റ്‌വൈസ് ഓപ്പറേറ്റർമാരോ ഉപയോഗിക്കാത്തവർക്കായി:


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.

ഉണ്ടാക്കിയ റാൻഡം നമ്പറായി തിരികെ നൽകുന്നതിന് മുമ്പ്, അവസ്ഥയുടെ നിലവിലെ ഘടകത്തിൽ ടെമ്പറിംഗ് ഫംഗ്ഷൻ പ്രയോഗിക്കുന്നു.


It may not be obvious, especially if you’re not used to binary arithmetic, but this function is bijective or one-to-one.

ഇത് വ്യക്തമല്ലാത്ത ഒന്നായിരിക്കാം, പ്രത്യേകിച്ച് നിങ്ങൾ ബൈനറി ഗണിതവുമായി പരിചയമില്ലാത്ത ആളാണെങ്കിൽ, എന്നാൽ ഈ ഫംഗ്ഷൻ ബൈജക്റ്റീവ് അല്ലെങ്കിൽ വൺ-ടു-വൺ ആണ്.


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

ക്രിപ്റ്റോഗ്രാഫിക് സുരക്ഷയ്ക്കായി, ഭാവിയിലുള്ള ഔട്ട്‌പുട്ടുകൾ പ്രവചിക്കാൻ അല്ലെങ്കിൽ നിലവിലെ ഔട്ട്‌പുട്ടുകൾ ഉപയോഗിച്ച് പഴയ ഔട്ട്‌പുട്ടുകൾ വീണ്ടെടുക്കാൻ കഴിയാത്ത ഒന്നായിരിക്കണം.


The Mersenne Twister doesn’t have that property.

മെർസെൻ ട്വിസ്റ്ററിന് ആ സ്വഭാവമില്ല.


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

സുരക്ഷിതമായ സോക്കറ്റ് ലെയർ എന്നതിന്റെ ചുരുക്കമാണ് SSL, വെബിലെ ട്രാഫിക് സുരക്ഷിതമാക്കുന്നതിനായി Netscape Communications-ൻ്റെ തുടക്കത്തിൽ അവതരിപ്പിച്ച ഒരു ക്രിപ്റ്റോഗ്രാഫിക് പ്രോട്ടോക്കോൾ ആണിത്.


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

ഇൻ്റർനെറ്റിലോ മറ്റ് സുരക്ഷിതമല്ലാത്ത മാധ്യമങ്ങളിലോ ബൈറ്റുകൾ സുരക്ഷിതമായി കൈമാറുക എന്നതാണ് ഇതിൻ്റെ പ്രധാന ലക്ഷ്യം.


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

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.

ആരെങ്കിലും ഒരു ബാങ്കിനെ അനുകരിക്കാൻ ഒരു സർട്ടിഫിക്കറ്റ് ഉപയോഗിക്കാൻ ശ്രമിക്കുമ്പോൾ, യഥാർത്ഥ ബ്രൗസറുകൾ അവരെ വിശ്വസിക്കില്ല.


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

TLS ക്ലയന്റുകൾ നിങ്ങളുടെ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിലോ ബ്രൗസറിലോ സാധാരണയായി നൽകിയിട്ടുള്ള, വിശ്വാസമുള്ള സർട്ടിഫിക്കറ്റ് അതോറിറ്റികളുടെ ഒരു ലിസ്റ്റുമായി വരുന്നു.


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

TLS-ൽ, സെർവറിനെ തിരിച്ചറിയാൻ മാത്രമാണ് സാധാരണയായി സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുന്നത്.


The TLS specification explicitly supports client certificates.

TLS സ്പെസിഫിക്കേഷൻ ക്ലയിൻ്റ് സർട്ടിഫിക്കറ്റുകളെ വ്യക്തമായി പിന്തുണയ്ക്കുന്നു.


Suppose an attacker gets access to the server’s private key.

ഒരു ആക്രമണകാരിക്ക് സെർവറിൻ്റെ സ്വകാര്യ കീയിലേക്ക് പ്രവേശനം ലഭിച്ചാൽ.


That property is called perfect forward secrecy.

ആ സ്വഭാവത്തെ പൂർണ്ണമായ ഫോർവേഡ് രഹസ്യാത്മകത എന്ന് വിളിക്കുന്നു.


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 കണക്കുകൂട്ടൽ സമയത്തിൽ കുറച്ച് സൈക്കിളുകൾ ലാഭിക്കുന്നു.


An algorithm that only works once just seems objectively worse.

ഒരിക്കൽ മാത്രം പ്രവർത്തിക്കുന്ന ഒരു അൽഗോരിതം, ലക്ഷ്യപരമായി മോശമാണെന്ന് തോന്നുന്നു.


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

വളരെ വലിയ സന്ദേശങ്ങൾക്കായി പോലും, അവ വിലയിരുത്തുന്നതിന് അവിശ്വസനീയമാംവിധം വേഗതയുണ്ടാകും.


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, ഏറ്റവും വലിയ m-നേക്കാൾ അല്പം വലുപ്പമുള്ള ചില പ്രധാന സംഖ്യകൾക്കും വേണ്ടി പ്രവർത്തിക്കുന്നു.


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.

സുരക്ഷാ വാദം സമാനമാണ്: കീ ഒരൊറ്റ തവണ മാത്രമേ ഉപയോഗിക്കുന്നുള്ളൂ, അക്രമകാരിക്ക് കീ അല്ലെങ്കിൽ സന്ദേശത്തെക്കുറിച്ച് വിവരങ്ങളൊന്നും ലഭിക്കില്ല, കാരണം അവ മാറ്റാനാവാത്ത രീതിയിൽ സംയോജിപ്പിക്കപ്പെടുന്നു.


Re-using a and 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 എന്നിവ വീണ്ടും ഉപയോഗിക്കുക: ഒരേ കീ(a, b) ഉപയോഗിച്ച് രണ്ട് സന്ദേശങ്ങൾ m1, m2 എന്നിവ പ്രാമാണീകരിക്കാൻ ഉപയോഗിക്കുകയാണെങ്കിൽ, നമ്മുടെ ഉദാഹരണ MAC സുരക്ഷിതമല്ലാത്തതാണെന്ന് ഞങ്ങൾ ഇവിടെ വ്യക്തമാക്കുന്നു:


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 എൻക്രിപ്റ്റ് ചെയ്യാം:


In the eyes of an attacker, that means the XOR operation will randomly flip the bits of the one-time MAC tag O(k2, M).

ഒരു അക്രമിയുടെ കണ്ണിൽ, XOR പ്രവർത്തനം ഒരു തവണ ഉപയോഗിക്കാവുന്ന MAC ടാഗ് O(k2, M)-ന്റെ ബിറ്റുകൾ ക്രമരഹിതമായി ഫ്ലിപ്പ് ചെയ്യും എന്നാണ് ഇതിനർത്ഥം.


Keep in mind that while Carter-Wegman MACs take two distinct keys k1 and k2, and that Carter-Wegman MACs are related to one-time MACs, some of which also take two distinct keys a and b, they are not the same two keys.

കാർട്ടർ-വെഗ്മാൻ MAC-കൾ രണ്ട് വ്യത്യസ്ത കീകൾ k1, k2 എന്നിവ എടുക്കുന്നു എന്നത് ഓർമ്മിക്കുക, കൂടാതെ കാർട്ടർ-വെഗ്മാൻ MAC-കൾ ഒരു തവണ ഉപയോഗിക്കാവുന്ന MAC-കളുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു, അവയിൽ ചിലത് രണ്ട് വ്യത്യസ്ത കീകൾ a, b എന്നിവ എടുക്കുന്നു, എന്നാൽ അവ രണ്ടും ഒന്നല്ല.


In F(k1, n), F is just a regular pseudorandom function, such as a block cipher.

F(k1, n)-ൽ, F എന്നത് ഒരു സാധാരണ സൂഡോറാൻഡം ഫംഗ്ഷനാണ്, ഒരു ബ്ലോക്ക് സൈഫർ പോലെ.


It is quite slow by comparison to the one-time MAC.

ഒരു തവണ ഉപയോഗിക്കാവുന്ന MAC-നെ അപേക്ഷിച്ച് ഇത് വളരെ വേഗത കുറഞ്ഞതാണ്.


The unpredictable output of the block cipher masks the output of the one-time MAC.

ബ്ലോക്ക് സൈഫറിന്റെ പ്രവചനാതീതമായ ഔട്ട്‌പുട്ട്, ഒരു തവണ ഉപയോഗിക്കാവുന്ന MAC-ന്റെ ഔട്ട്‌പുട്ടിനെ മറയ്ക്കുന്നു.


In the second term, O(k2, M), the large input message M is only handled by the very fast one-time MAC O.

രണ്ടാമത്തെ പദത്തിൽ, O(k2, M), വലിയ ഇൻപുട്ട് സന്ദേശം M കൈകാര്യം ചെയ്യുന്നത് വളരെ വേഗത്തിലുള്ള ഒരു തവണ ഉപയോഗിക്കാവുന്ന MAC O ആണ്.


The majority of secure connections that are set up every day have that distinction as well: they treat encryption and authentication as fundamentally different steps.

ഓരോ ദിവസവും സ്ഥാപിക്കപ്പെടുന്ന സുരക്ഷിതമായ കണക്ഷനുകളിൽ ഭൂരിഭാഗവും ആ വ്യത്യാസം നിലനിർത്തുന്നു: എൻക്രിപ്ഷനും പ്രാമാണീകരണവും അടിസ്ഥാനപരമായി വ്യത്യസ്ത ഘട്ടങ്ങളായി അവർ കണക്കാക്കുന്നു.


It makes sense to use constructions that not only guarantee the privacy of an arbitrary stream, but also its integrity.

ഏതൊരു സ്ട്രീമിന്റെയും സ്വകാര്യതയും അതുപോലെ അതിന്റെ സമഗ്രതയും ഉറപ്പുനൽകുന്ന നിർമ്മിതികൾ ഉപയോഗിക്കുന്നത് അർത്ഥവത്താണ്.


Symmetric-key encryption is also known as secret-key encryption.

സിമെട്രിക്-കീ എൻക്രിപ്ഷൻ രഹസ്യ-കീ എൻക്രിപ്ഷൻ എന്നും അറിയപ്പെടുന്നു.


AES stands for Advanced Encryption Standard.

AES എന്നാൽ അഡ്വാൻസ്ഡ് എൻക്രിപ്ഷൻ സ്റ്റാൻഡേർഡ് എന്നാണ്.


AEAD stands for Authenticated Encryption with Associated Data.

AEAD എന്നാൽ അസോസിയേറ്റഡ് ഡാറ്റയോടുകൂടിയ പ്രാമാണിക എൻക്രിപ്ഷൻ എന്നാണ്.


The acronym ARX stands for add, rotate, XOR.

ARX എന്ന ചുരുക്കെഴുത്ത് അഡിഷൻ, റൊട്ടേറ്റ്, XOR എന്നിവയെ സൂചിപ്പിക്കുന്നു.


CBC എന്നാൽ സൈഫർ ബ്ലോക്ക് ചെയ്‌നിംഗ് എന്നാണ്.


CDN stands for content distribution network.

CDN എന്നാൽ കണ്ടന്റ് ഡിസ്ട്രിബ്യൂഷൻ നെറ്റ്‌വർക്ക് എന്നാണ്.


CSPRNG stands for cryptographically secure pseudorandom number generator.

CSPRNG എന്നാൽ ക്രിപ്റ്റോഗ്രാഫിക്കായി സുരക്ഷിതമായ സൂഡോറാൻഡം നമ്പർ ജനറേറ്റർ എന്നാണ്.


CSRF stands for cross-site request forgery.

CSRF എന്നാൽ ക്രോസ്-സൈറ്റ് റിക്വസ്റ്റ് ഫോർജറി എന്നാണ്.


DES stands for Data Encryption Standard.

DES എന്നാൽ ഡാറ്റ എൻക്രിപ്ഷൻ സ്റ്റാൻഡേർഡ് എന്നാണ്.


FIPS stands for Federal Information Processing Standards.

FIPS എന്നാൽ ഫെഡറൽ ഇൻഫർമേഷൻ പ്രോസസ്സിംഗ് സ്റ്റാൻഡേർഡ്സ് എന്നാണ്.


GCM എന്നാൽ ഗാലോയിസ് കൗണ്ടർ മോഡ് എന്നാണ്.


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

HKDF എന്നാൽ HMAC അടിസ്ഥാനമാക്കിയുള്ള (എക്സ്ട്രാക്റ്റ്-ആൻഡ്-എക്സ്പാൻഡ്) കീ ഡിറൈവേഷൻ ഫംഗ്ഷൻ എന്നാണ്.


HMAC stands for Hash-based Message Authentication Code.

HMAC എന്നാൽ ഹാഷ്-അടിസ്ഥാനമാക്കിയുള്ള സന്ദേശ പ്രാമാണീകരണ കോഡ് എന്നാണ്.


HSTS stands for HTTP Strict Transport Security.

HSTS എന്നാൽ HTTP സ്ട്രിക്റ്റ് ട്രാൻസ്പോർട്ട് സുരക്ഷ എന്നാണ്.


IV എന്നാൽ ഇനിഷ്യലൈസേഷൻ വെക്റ്റർ എന്നാണ്.


KDF എന്നാൽ കീ ഡിറൈവേഷൻ ഫംഗ്ഷൻ എന്നാണ്.


MAC stands for message authentication code.

MAC എന്നാൽ സന്ദേശ പ്രാമാണീകരണ കോഡ് എന്നാണ്.


MITM എന്നാൽ മാൻ-ഇൻ-ദി-മിഡിൽ എന്നാണ്.


OCB എന്നാൽ ഓഫ്‌സെറ്റ് കോഡ്‌ബുക്ക് എന്നാണ്.


OTR എന്നാൽ ഓഫ്-ദി-റെക്കോർഡ് എന്നാണ്.


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.

ഉദാഹരണത്തിന്, ഗൂഗിൾ അവരുടെ എല്ലാ സേവനങ്ങൾക്കും 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 കോൺഫിഗറേഷൻ ഉണ്ടാക്കുന്ന കാര്യങ്ങൾ അതിവേഗം മാറാൻ സാധ്യതയുണ്ട്.


Old clients that still need to be supported sometimes mean that you have to hang on to broken configuration options.

ഇപ്പോഴും പിന്തുണയ്‌ക്കേണ്ട പഴയ ക്ലയിന്റുകൾ ചിലപ്പോൾ തകർന്ന കോൺഫിഗറേഷൻ ഓപ്ഷനുകളിൽ തുടരേണ്ടിവരുമെന്ന് അർത്ഥമാക്കുന്നു.


That attack exploited weaknesses in CBC ciphersuites in TLSv1.0.

ആ ആക്രമണം TLSv1.0-ലെ CBC സൈഫർസ്യൂട്ടുകളിലെ ബലഹീനതകൾ മുതലെടുത്തു.


Many people recommended defending against it by switching to RC4.

RC4-ലേക്ക് മാറിയാണ് ഇതിനെ പ്രതിരോധിക്കാൻ പലരും ശുപാർശ ചെയ്തത്.


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.


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.

ഉപയോക്താക്കൾക്ക് ഒരു പബ്ലിക് കീയും ഒരു പ്രൈവറ്റ് കീയും അടങ്ങുന്ന ജോഡി കീകൾ ഉണ്ട്.


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.

ഏറ്റവും ലളിതമായ കേസ് നേരിട്ട് വിശ്വസനീയമായ ഒരു കീയാണ്.


If we meet up in person, we can verify each other’s identities.

നമ്മൾ നേരിൽ കണ്ടുമുട്ടിയാൽ, പരസ്പരം ಗುರುತು പരിശോധിക്കാൻ കഴിയും.


Modular exponentiation is a key process in many cryptographic applications.

മോഡുലാർ എക്സ്പോണൻസിയേഷൻ എന്നത് പല ക്രിപ്റ്റോഗ്രാഫിക് ആപ്ലിക്കേഷനുകളിലെയും ഒരു പ്രധാന പ്രക്രിയയാണ്.


The exponent in RSA decryption is the private key, often thousands of bits long.

RSA ഡീക്രിപ്ഷനിലെ എക്സ്പോണൻ്റ് സ്വകാര്യ കീയാണ്, ഇത് പലപ്പോഴും ആയിരക്കണക്കിന് ബിറ്റുകൾ നീളമുള്ളതാണ്.


This method is only suitable for offline computation because it leaks timing information.

സമയം സംബന്ധിച്ച വിവരങ്ങൾ ചോർത്തുന്നതിനാൽ ഇത് ഓഫ്‌ലൈൻ കമ്പ്യൂട്ടിങ്ങിന് മാത്രമേ ഉപയോഗിക്കാനാകൂ.


Modular exponentiation can also be computed using a Montgomery ladder.

മോൺ‌ഗോമെറി ലാഡർ ഉപയോഗിച്ചും മോഡുലാർ എക്സ്പോണൻസിയേഷൻ കണക്കാക്കാം.


Many programming languages provide specific modular exponentiation functions.

പല പ്രോഗ്രാമിംഗ് ഭാഷകളും നിർദ്ദിഷ്ട മോഡുലാർ എക്സ്പോണൻസിയേഷൻ ഫംഗ്ഷനുകൾ നൽകുന്നു.


In Python, pow(e, x, m) performs efficient modular exponentiation.

പൈത്തണിൽ, pow(e, x, m) കാര്യക്ഷമമായ മോഡുലാർ എക്സ്പോണൻസിയേഷൻ നിർവ്വഹിക്കുന്നു.


The expression (e ** x) % m still uses an inefficient method.

(e ** x) % m എന്ന എക്സ്പ്രഷൻ ഇപ്പോഴും കാര്യക്ഷമമല്ലാത്ത രീതിയാണ് ഉപയോഗിക്കുന്നത്.


The Montgomery ladder guarantees the same number of operations regardless of the exponent's value.

എക്സ്പോണൻ്റിൻ്റെ മൂല്യം എന്തുതന്നെയായാലും, മോൺ‌ഗോമെറി ലാഡർ ഒരേ എണ്ണം ഓപ്പറേഷനുകൾ ഉറപ്പാക്കുന്നു.


The exponent is usually a secret value, like a Diffie-Hellman secret.

എക്സ്പോണൻ്റ് സാധാരണയായി ഒരു രഹസ്യ മൂല്യമാണ്, ഒരു ഡിഫി-ഹെൽമാൻ രഹസ്യം പോലെ.


The Montgomery ladder was originally for elliptic curve scalar multiplications.

എലിപ്റ്റിക് കർവ് സ്കേലാർ ഗുണനങ്ങൾക്ക് വേണ്ടിയാണ് യഥാർത്ഥത്തിൽ മോൺ‌ഗോമെറി ലാഡർ ഉപയോഗിച്ചിരുന്നത്.


The mathematics works for any abelian group.

ഗണിതശാസ്ത്രം ഏതൊരു അബേലിയൻ ഗ്രൂപ്പിനും പ്രവർത്തിക്കും.


This section is optional and in-depth; feel free to skip it.

ഈ ഭാഗം ഓപ്ഷണലും ആഴത്തിലുള്ളതുമാണ്; നിങ്ങൾക്ക് വേണമെങ്കിൽ ഒഴിവാക്കാവുന്നതാണ്.


We start by looking at the binary expansion of the exponent k.

എക്സ്പോണൻ്റ് k-യുടെ ബൈനറി വിപുലീകരണം നോക്കിയാണ് നമ്മൾ ആരംഭിക്കുന്നത്.


Any k can be written as a sum of powers of two.

ഏതൊരു k-യും രണ്ടിൻ്റെ കൃതികളുടെ തുകയായി എഴുതാം.


If 2^j appears in the binary expansion, we say k_j = 1.

ബൈനറി വിപുലീകരണത്തിൽ 2^j ദൃശ്യമായാൽ, k_j = 1 എന്ന് പറയാം.


That definition might look scary, but it's just defining bit k at position i.

ആ നിർവചനം ഭയപ്പെടുത്തുന്നതായി തോന്നാം, എന്നാൽ ഇത് സ്ഥാനത്ത് i-ൽ ബിറ്റ് k നിർവചിക്കുകയാണ്.


എല്ലാ ബിറ്റുകളിലും തുക ഉണ്ടാകും.


The binary expansion of the number 6 is 0b110.

6 എന്ന സംഖ്യയുടെ ബൈനറി വിപുലീകരണം 0b110 ആണ്.


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 as flooring division by two.

ഒരു ബിറ്റ് വലത്തേക്ക് മാറ്റുന്നത് രണ്ടിനാൽ ഭാഗിക്കുന്നതിന് തുല്യമാണ്.