The book is intended as an introduction to cryptography for programmers.

இந்தப் புத்தகம் நிரலாக்கர்களுக்கான கிரிப்டோகிராஃபி அறிமுகமாக வடிவமைக்கப்பட்டுள்ளது.


This book starts with very simple primitives.

இந்தப் புத்தகம் மிகவும் எளிய அடிப்படைகளுடன் தொடங்குகிறது.


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

முழுமையான கிரிப்டோசிஸ்டம்கள் எவ்வாறு செயல்படுகின்றன என்பதைப் புரிந்துகொள்வதே இந்தப் புத்தகத்தின் நோக்கமாகும்.


The exercises focus on teaching cryptography by breaking inferior systems.

பயிற்சிகள், தாழ்ந்த அமைப்புகளை உடைப்பதன் மூலம் கிரிப்டோகிராஃபியை கற்பிப்பதில் கவனம் செலுத்துகின்றன.


You will understand why all these primitives and constructions are necessary.

இந்த அனைத்து அடிப்படைகளும் கட்டுமானங்களும் ஏன் அவசியம் என்பதை நீங்கள் புரிந்துகொள்வீர்கள்.


Cryptography has been deemed the exclusive realm of experts.

கிரிப்டோகிராஃபி வல்லுநர்களின் பிரத்தியேக களமாக கருதப்படுகிறது.


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

நாம் அனைவரும் ஒன்றிணைந்து, அனைத்து நிரலாக்கர்களும் கல்வி கற்கக்கூடிய ஒரு உலகத்தை உருவாக்க வேண்டும்.


இந்தப் புத்தகம் ஒரு பாலமாக இருக்க விரும்புகிறது.


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

எக்ஸ்குளூசிவ் ஆர், பெரும்பாலும் XOR என்று அழைக்கப்படுகிறது, இது ஒரு பூலியன் பைனரி ஆபரேட்டர் ஆகும்.


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

முதல் உள்ளீடு அல்லது இரண்டாவது உள்ளீடு இரண்டில் ஏதேனும் ஒன்று உண்மையாக இருக்கும்போது XOR உண்மை.


நீங்கள் எந்த வரிசையிலும் XOR ஐப் பயன்படுத்தலாம்.


எந்த பிட்டும் தன்னைத்தானே XOR செய்தால் 0 ஆகும்.


எந்த பிட்டும் 0 உடன் XOR செய்தால் அதே பிட் மீண்டும் கிடைக்கும்.


XOR may seem like an awfully simple operator.

XOR ஒரு மிக எளிய ஆபரேட்டராகத் தோன்றலாம்.


It's called a one-time pad because it involves a sequence of random bits.

இது ஒரு முறை பயன்படுத்தும் பேட் என்று அழைக்கப்படுகிறது, ஏனெனில் இது சீரற்ற பிட்களின் வரிசையை உள்ளடக்கியது.


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

பிட்கள் உண்மையிலேயே சீரற்றதாக இருந்தால், தாக்குபவர் எதையும் அறியமாட்டார்.


This property is called perfect security.

இந்த சொத்து சரியான பாதுகாப்பு என்று அழைக்கப்படுகிறது.


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 security of the scheme depends on only using that pad once.

இந்த திட்டத்தின் பாதுகாப்பு அந்த பேடை ஒரு முறை மட்டுமே பயன்படுத்துவதைப் பொறுத்தது.


சாவி பிட் 0 அல்லது 1 ஆக இருந்தது.


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

எல்லா சாவி பிட்களும் உண்மையாகவே சீரற்றவை என்பதால், இரண்டு விருப்பங்களும் சரியாக சமமானவை.


The attacker does learn that the message exists.

தாக்குபவர் செய்தி இருப்பதை அறிகிறார்.


There are secure cryptosystems to both 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, instead of using truly random data.

உண்மையான சீரற்ற தரவைப் பயன்படுத்துவதற்குப் பதிலாக, ஒரு முறை பேடை உருவாக்க பல்வேறு தீர்மானகரமான கட்டமைப்புகளைப் பயன்படுத்துகிறார்கள்.


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

இறுதி பயனர் மிகவும் நேர்மையான கிரிப்டோசிஸ்டத்தால் சிறப்பாக சேவை செய்யப்படுவார்.


The other issue is with key reuse, which is much more serious.

மற்றொரு பிரச்சனை சாவி மறுபயன்பாடு ஆகும், இது மிகவும் தீவிரமானது.


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

பல முறை பேட் அமைப்புகளை உடைப்பதற்கான ஒரு உன்னதமான அணுகுமுறை


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 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-time pads are rarely used, because they are horribly impractical.

ஒரு முறை பேட்கள் அரிதாகவே பயன்படுத்தப்படுகின்றன, ஏனெனில் அவை மிகவும் நடைமுறைக்கு மாறானவை.


We need something with manageable key sizes while maintaining secrecy.

ரகசியத்தன்மையை பராமரிக்கும் அதே வேளையில், நிர்வகிக்கக்கூடிய சாவி அளவுகளைக் கொண்ட ஒன்று நமக்குத் தேவை.


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.

இந்த திட்டத்தில் ஒரு தெளிவான குறைபாடு உள்ளது: நீங்கள் அந்த குறிப்பிட்ட பைட் மதிப்பில் முடிவடையும் செய்திகளை அனுப்ப முடியாது, அல்லது பேடிங்கிற்கும் உண்மையான செய்திகளுக்கும் இடையில் வேறுபடுத்தி அறிய முடியாது.


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!

சிபிசி பிட் ஃபிளிப்பிங் தாக்குதல்களைச் செம்மைப்படுத்தி, ஒரு பெறுநரை தன்னிச்சையான செய்திகளை டிகிரிப்ட் செய்ய ஏமாற்றலாம்!


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.

அவர்கள் டிகிரிப்ட் செய்ய விரும்பும் சைபர் டெக்ஸ்டில் இருந்து ஒரு இலக்கு தொகுதியையும் தேர்வு செய்கிறார்கள்.


The attacker asks the padding oracle if the plaintext has 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.

பிளைன்டெக்ஸ்டின் கடைசி பைட்டை மறைமுகமாக மாற்றுவதன் மூலம் இதைச் செய்யலாம்.


This works exactly like it did with CBC bit flipping attacks.

இது சிபிசி பிட் ஃபிளிப்பிங் தாக்குதல்களில் செய்தது போலவே செயல்படுகிறது.


The attacker tries all possible values for that last byte.

தாக்குபவர் அந்த கடைசி பைட்டுக்கான அனைத்து சாத்தியமான மதிப்புகளையும் முயற்சிக்கிறார்.


The oracle has just told the attacker that for our chosen value, the plaintext has valid padding.

நாம் தேர்ந்தெடுத்த மதிப்பிற்காக, பிளைன்டெக்ஸ்டில் சரியான பேடிங் உள்ளது என்று ஆரக்கிள் தாக்குபவருக்குச் சொல்லியுள்ளது.


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 ஐப் பயன்படுத்துவதை நிறுத்த வேண்டும்.


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.

தெளிவான உரையில் உள்ள ஒரே மாதிரியான பிக்சல்களின் தொகுதிகள் சாதன உரையில் உள்ள ஒரே மாதிரியான பிக்சல்களின் தொகுதிகளுக்கு செல்லும் என்பதால், படத்தின் உலகளாவிய அமைப்பு பெரும்பாலும் பாதுகாக்கப்படுகிறது.


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 கொடுக்கப்பட்டால், ஆரக்கிள் அந்த தரவை குறியாக்கம் செய்யும், அதைத் தொடர்ந்து ஒரு ரகசிய பின்னொட்டு S, ECB முறையில்.


தாக்குபவரின் குறிக்கோள் அதை டிகோட் செய்வதாகும்.


This oracle might seem artificial, but is quite common in practice.

இந்த ஆரக்கிள் செயற்கையாகத் தோன்றலாம், ஆனால் நடைமுறையில் இது மிகவும் பொதுவானது.


A simple example would be a cookie encrypted with ECB, where the prefix A is a name or an e-mail address field, controlled by the attacker.

ஒரு எளிய உதாரணம் என்னவென்றால், ECB உடன் குறியாக்கம் செய்யப்பட்ட ஒரு குக்கீ, அங்கு முன்னொட்டு A என்பது ஒரு பெயர் அல்லது மின்னஞ்சல் முகவரி புலம், இது தாக்குபவரால் கட்டுப்படுத்தப்படுகிறது.


The attacker starts by sending in a plaintext A that’s just one byte shorter than the block size.

தாக்குபவர், பிளாக் அளவை விட ஒரு பைட் குறைவாக உள்ள தெளிவான உரை A ஐ அனுப்புவதன் மூலம் தொடங்குகிறார்.


That means the block that’s being encrypted will consist of those bytes, plus the first byte of S, which we’ll calls 0.

அதாவது குறியாக்கம் செய்யப்படும் தொகுதி அந்த பைட்டுகளைக் கொண்டிருக்கும், மேலும் S இன் முதல் பைட், நாம் 0 என்று அழைப்போம்.


கடவுச்சொல் உங்கள் கணக்கைப் பாதுகாக்கிறது.


Salts are used to enhance password security.

உப்புக்கள் கடவுச்சொல் பாதுகாப்பை மேம்படுத்தப் பயன்படுகின்றன.


An attacker could try to guess the password.

ஒரு தாக்குபவர் கடவுச்சொல்லை யூகிக்க முயற்சி செய்யலாம்.


Hashing transforms the password into a unique string.

ஹாஷிங் கடவுச்சொல்லை ஒரு தனித்துவமான சரமாக மாற்றுகிறது.


Rainbow tables are a type of precomputed attack.

வானவில் அட்டவணைகள் ஒரு வகை முன்கணிக்கப்பட்ட தாக்குதல் ஆகும்.


Using salts makes it harder to crack passwords.

உப்புகளைப் பயன்படுத்துவது கடவுச்சொற்களைக் கண்டுபிடிப்பதை கடினமாக்குகிறது.


A strong salt is cryptographically random.

ஒரு வலுவான உப்பு குறியீட்டு ரீதியாக சீரற்றதாக இருக்கும்.


Modern attacks exploit weaknesses in hash functions.

நவீன தாக்குதல்கள் ஹாஷ் செயல்பாடுகளில் உள்ள பலவீனங்களைப் பயன்படுத்துகின்றன.


Key derivation functions are used to protect passwords.

கடவுச்சொற்களைப் பாதுகாக்க முக்கிய வழித்தோன்றல் செயல்பாடுகள் பயன்படுத்தப்படுகின்றன.


Length extension attacks can compromise security.

நீள விரிவாக்கத் தாக்குதல்கள் பாதுகாப்பை சமரசம் செய்யலாம்.


Hash trees are used in distributed systems.

ஹாஷ் மரங்கள் விநியோகிக்கப்பட்ட அமைப்புகளில் பயன்படுத்தப்படுகின்றன.


Message Authentication Codes (MACs) verify message integrity.

செய்தி அங்கீகாரக் குறியீடுகள் (MACs) செய்தியின் ஒருமைப்பாட்டை சரிபார்க்கின்றன.


ஒரு MAC ஒரு ரகசிய விசையைப் பயன்படுத்துகிறது.


Checksums are sometimes used for message verification.

செய்தி சரிபார்ப்புக்கு சில நேரங்களில் செக்சம் பயன்படுத்தப்படுகிறது.


Unauthenticated encryption is generally not secure.

அங்கீகரிக்கப்படாத குறியாக்கம் பொதுவாக பாதுகாப்பானது அல்ல.


Encrypt-then-authenticate is the recommended approach.

குறியாக்கம் செய்து அங்கீகரிப்பது பரிந்துரைக்கப்பட்ட அணுகுமுறையாகும்.


Prefix-MAC is a simple but insecure construction.

முன்னொட்டு-MAC ஒரு எளிய ஆனால் பாதுகாப்பற்ற கட்டுமானம் ஆகும்.


HMAC என்பது MACகளை உருவாக்குவதற்கான ஒரு தரநிலையாகும்.


HMAC uses a cryptographic hash function.

HMAC ஒரு குறியாக்க ஹாஷ் செயல்பாட்டைப் பயன்படுத்துகிறது.


The inner and outer padding are crucial for HMAC security.

உள் மற்றும் வெளிப்புற பேடிங் HMAC பாதுகாப்பிற்கு முக்கியமானது.


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.

ஆலிஸ் சொல்வதைப் பொறுத்தவரை, பாப் சில சீரற்ற எண்களைத் தேர்ந்தெடுத்தார்.


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.

நாம் பொதுவாக செய்திகளை அனுப்பப் பயன்படுத்தும் நெட்வொர்க் உள்கட்டமைப்பு பல வெவ்வேறு ஆபரேட்டர்களால் இயக்கப்படுவதால், இந்த வகையான தாக்குதல் காட்சி மிகவும் யதார்த்தமானது.


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

ஆலிஸை பாபிடம் அங்கீகரிக்கவும், நேர்மாறாகவும் உதவக்கூடிய கருவிகள் நமக்குத் தேவை.


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

உங்கள் பொது விசையைப் பயன்படுத்தி உங்களுக்காக வடிவமைக்கப்பட்ட தகவல்களை மக்கள் குறியாக்கம் செய்யலாம்.


இது பொது-விசை குறியாக்கமாகும்.


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

முதல் பொதுவில் கிடைக்கும் குறியாக்கத் திட்டம் MIT ஐச் சேர்ந்த மூன்று கிரிப்டோகிராஃபர்களால் தயாரிக்கப்பட்டது.


Public-key algorithms aren’t limited to encryption.

பொது-விசை வழிமுறைகள் குறியாக்கத்திற்கு மட்டும் வரையறுக்கப்படவில்லை.


Key exchange algorithms, such as Diffie-Hellman, which allow you to agree on a shared secret across an insecure medium.

டிஃபி-ஹெல்மன் போன்ற முக்கிய பரிமாற்ற வழிமுறைகள், பாதுகாப்பற்ற ஊடகத்தில் பகிரப்பட்ட ரகசியத்தை ஒப்புக்கொள்ள உங்களை அனுமதிக்கின்றன.


Encryption algorithms, such as the ones we’ll discuss in this chapter, which allow people to encrypt without having to agree on a shared secret.

இந்த அத்தியாயத்தில் நாம் விவாதிக்கும் குறியாக்க வழிமுறைகள், பகிரப்பட்ட ரகசியத்தை ஒப்புக்கொள்ளாமல் மக்கள் குறியாக்கம் செய்ய அனுமதிக்கின்றன.


At face value, it seems that public-key encryption algorithms obsolete all our previous secret-key encryption algorithms.

மேலோட்டமாகப் பார்க்கும்போது, பொது-விசை குறியாக்க வழிமுறைகள் நமது முந்தைய ரகசிய-விசை குறியாக்க வழிமுறைகளை காலாவதியாக்குகின்றன.


However, when we look at practical cryptosystems, we see that they’re almost always hybrid cryptosystems.

இருப்பினும், நடைமுறை கிரிப்டோசிஸ்டம்களைப் பார்க்கும்போது, அவை கிட்டத்தட்ட எப்போதும் கலப்பின கிரிப்டோசிஸ்டம்களாக இருப்பதைக் காண்கிறோம்.


By far the most important reason for this is performance.

இதற்கான மிக முக்கியமான காரணம் செயல்திறன் ஆகும்.


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

RSA அதன் முக்கிய அளவோடு மட்டுமே வரையறுக்கப்பட்டுள்ளது, இது 2048-பிட் என்றால் 256 பைட்டுகள் ஆகும்.


As we already mentioned, RSA is one of the first practical public-key encryption schemes.

நாம் ஏற்கனவே குறிப்பிட்டது போல, RSA என்பது முதல் நடைமுறை பொது-விசை குறியாக்க திட்டங்களில் ஒன்றாகும்.


Encryption and decryption RSA encryption and decryption relies on modular arithmetic.

குறியாக்கம் மற்றும் டிகிரிப்ஷன் RSA குறியாக்கம் மற்றும் டிகிரிப்ஷன் மாடுலர் கணிதத்தை நம்பியுள்ளது.


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 without knowing the secret exponent d.

RSA இன் பாதுகாப்பு, ரகசிய அடுக்கு d தெரிந்தால் மட்டுமே டிகிரிப்ஷன் செயல்பாடு சாத்தியமற்றதாக இருப்பதில் தங்கியுள்ளது.


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

RSA ஐ உடைத்தல் பல கிரிப்டோசிஸ்டம்களைப் போலவே, RSA ஒரு குறிப்பிட்ட கணிதப் பிரச்சினையின் கருதப்படும் சிரமத்தை நம்பியுள்ளது.


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.

கடவுச்சொற்கள் போன்ற குறைந்த என்ட்ரோபி உள்ளீடுகளுக்குப் பாதுகாப்பாக இருக்க இது குறிப்பாக வடிவமைக்கப்படவில்லை.


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.

குறைந்த என்ட்ரோபி கொண்ட உப்பு கூட ஏற்கனவே பாதுகாப்பிற்கு கணிசமாக பங்களிக்கும்.


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.

விரிவாக்க கட்டத்தில், உரிஞ்சும் கட்டத்தில் உள்ளீடுகளிலிருந்து பிரித்தெடுக்கப்பட்ட சீரற்ற தரவு விரிவாக்கப்படுகிறது.


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.

வன்பொருள் சீரற்ற எண் உருவாக்கத்திற்குப் பயன்படுத்தப்படும் பல வகையான இயற்பியல் செயல்முறைகள் உள்ளன.


One example of a quantum physical process used to produce random numbers is radioactive decay.

சீரற்ற எண்களை உருவாக்கப் பயன்படும் ஒரு குவாண்டம் இயற்பியல் செயல்முறை கதிரியக்க சிதைவு ஆகும்.


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

சீரற்ற எண்களை உருவாக்கப் பயன்படும் மற்றொரு குவாண்டம் இயற்பியல் செயல்முறை ஷாட் இரைச்சல் ஆகும்.


An example of a thermal process used to produce random numbers is Nyquist noise.

சீரற்ற எண்களை உருவாக்கப் பயன்படும் ஒரு வெப்ப செயல்முறை நைக்விஸ்ட் இரைச்சல் ஆகும்.


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

ஒரு பயன்பாட்டு உருவாக்குநராக, நீங்கள் ஒருபோதும் அவற்றில் ஒன்றை தேர்வு செய்யக்கூடாது.


Mersenne Twister is a very common pseudorandom number generator.

மெர்சென் ட்விஸ்டர் ஒரு பொதுவான போலி சீரற்ற எண் ஜெனரேட்டர் ஆகும்.


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:

இது வெளிப்படையாகத் தெரியாமல் இருக்கலாம், குறிப்பாக நீங்கள் பைனரி கணிதத்தைப் பயன்படுத்தவில்லை என்றால், ஆனால் இந்த செயல்பாடு இருபக்க அல்லது ஒன்றுக்கு ஒன்று:


Suppose we just try every single 32 bit integer, and remember the result in a table.

ஒவ்வொரு 32 பிட் முழு எண்ணையும் முயற்சி செய்து, முடிவை ஒரு அட்டவணையில் நினைவில் வைத்துக் கொள்வோம்.


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 1 for securing traffic on the Web.

பாதுகாப்பான சாக்கெட் லேயர் என்பதன் சுருக்கமான SSL, வலைப்பக்கத்தில் போக்குவரத்தை பாதுகாப்பதற்காக நெட்ஸ்கேப் கம்யூனிகேஷன்ஸ் 1 ஆல் முதலில் அறிமுகப்படுத்தப்பட்ட ஒரு கிரிப்டோகிராஃபிக் நெறிமுறையாகும்.


The term SSL is still commonly used, even when the speaker actually means a TLS connection.

பேச்சாளர் உண்மையில் TLS இணைப்பைக் குறிக்கும்போதும் கூட, SSL என்ற சொல் இன்னும் பொதுவாகப் பயன்படுத்தப்படுகிறது.


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 உலகின் மிகவும் பொதுவான கிரிப்டோசிஸ்டம் ஆகும், எனவே இது அதிகம் படிக்கப்பட்டதாகவும் இருக்கலாம்.


Due to cryptographic export restrictions at the time, many ciphers were only 40 or 56 bit.

அப்போதைய கிரிப்டோகிராஃபிக் ஏற்றுமதி கட்டுப்பாடுகள் காரணமாக, பல சைப்ரர்கள் 40 அல்லது 56 பிட் மட்டுமே இருந்தன.


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.

சான்றிதழ் நம்பகமற்றது என்று பயனருக்கு அறிவிக்கிறார்கள்.


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

TLS இல், சான்றிதழ்கள் பொதுவாக சேவையகத்தை அடையாளம் காண மட்டுமே பயன்படுத்தப்படுகின்றன.


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 செயல்பாடுகள் ஒரு பெரிய எண்ணிக்கையிலான செய்திகளுக்கான பாதுகாப்பான MACகளை உருவாக்க ஒரு தனி விசையுடன் பயன்படுத்தப்படலாம் என்று நாங்கள் எப்போதும் கருதி வருகிறோம்.


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 க்கும், மிகப்பெரிய m ஐ விட சற்று பெரிய சில பிரைம் p க்கும் மட்டுமே வேலை செய்கிறது.


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

செய்தி-குறிப்பிட்ட பல்லுறுப்புக்கோவை P ஐப் பயன்படுத்தி, பிளாக்குகளைக் கொண்ட பெரிய செய்திகளை ஆதரிக்க இதை நீட்டிக்க முடியும்:


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 பற்றிய இரண்டு மிக முக்கியமான பண்புகளைச் சார்ந்துள்ளது:


அவை உண்மையிலேயே சீரற்றதாக இருக்க வேண்டும்.


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 பாதுகாப்பற்றது என்பதை நாங்கள் விளக்குவோம்:


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 ஐ மறையாக்கலாம்:


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.

உதாரணமாக, கூகிள் தங்கள் சேவைகள் அனைத்திற்கும் வெள்ளைப்பட்டியல் சான்றிதழ்களை தங்கள் குரோம் உலாவியில் சேர்த்தது.


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.

நல்ல ஆலோசனை காலப்போக்கில் மாறுகிறது, மேலும் புத்தகத்தைப் போன்ற ஒரு நிலையான ஊடகத்தில் அவ்வாறு செய்வது சாத்தியமில்லை.


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 அமர்வு செயலில் உள்ளது: இணைப்புகள் பாதுகாப்பான சேனலை அமைக்கும்போது பைட்டுகள் முன்னும் பின்னும் பறக்கின்றன.


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.

மாறாக, இது வெப் ஆஃப் டிரஸ்ட் எனப்படும் ஒரு அமைப்பை நம்பியுள்ளது.


The simplest case is a directly trusted key.

மிகவும் எளிமையானது நேரடியாக நம்பகமான விசை ஆகும்.


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

நாம் நேரில் சந்தித்தால், ஒருவருக்கொருவர் அடையாளங்களை சரிபார்க்க முடியும்.


The main weakness in this system are ”islands” of trust: individuals or small groups with no connections to the rest of the web.

இந்த அமைப்பின் முக்கிய பலவீனம், நம்பிக்கையின்


Off-the-record (OTR) messaging is a protocol for securing instant messaging communication between people.

பதிவில் இல்லாத (OTR) செய்தி அனுப்புதல் என்பது மக்களிடையே உடனடி செய்தித் தொடர்பைப் பாதுகாப்பதற்கான ஒரு நெறிமுறையாகும்.


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

சமச்சீர்-விசை மறையாக்கம் இரகசிய-விசை மறையாக்கம் என்றும் அழைக்கப்படுகிறது.


AES stands for Advanced Encryption Standard.

AES என்பது மேம்பட்ட மறையாக்க தரநிலை என்பதைக் குறிக்கிறது.


CBC என்பது சைபர் பிளாக் செயின்னிங் என்பதைக் குறிக்கிறது.


CDN stands for content distribution network.

CDN என்பது உள்ளடக்க விநியோக நெட்வொர்க் என்பதைக் குறிக்கிறது.


DES என்பது தரவு மறையாக்க தரநிலை ஆகும்.


FIPS refers to Federal Information Processing Standards.

FIPS என்பது கூட்டாட்சி தகவல் செயலாக்க தரநிலைகளைக் குறிக்கிறது.


HKDF is HMAC-based Key Derivation Function.

HKDF என்பது HMAC-ஐ அடிப்படையாகக் கொண்ட விசை வழித்தோன்றல் செயல்பாடு ஆகும்.


HMAC stands for Hash-based Message Authentication Code.

HMAC என்பது ஹாஷ் அடிப்படையிலான செய்தி அங்கீகாரக் குறியீடு என்பதைக் குறிக்கிறது.


HSTS என்பது HTTP கண்டிப்பான போக்குவரத்து பாதுகாப்பு ஆகும்.


IV என்பது ஆரம்பநிலை திசையன் ஆகும்.


KDF என்பது விசை வழித்தோன்றல் செயல்பாடு ஆகும்.


MAC என்பது செய்தி அங்கீகாரக் குறியீடு ஆகும்.


MITM என்பது இடைத்தரகர் என்பதைக் குறிக்கிறது.


OCB என்பது ஆஃப்செட் கோட்புக் ஆகும்.


OTR என்பது பதிவில் இல்லாதது.


PRF என்பது போலி சீரற்ற செயல்பாடு ஆகும்.


PRNG என்பது போலி சீரற்ற எண் ஜெனரேட்டர் ஆகும்.


PRP என்பது போலி சீரற்ற வரிசைமாற்றம் ஆகும்.


RSA என்பது ரிவெஸ்ட், ஷமிர், அடல்மேன் என்பதைக் குறிக்கிறது.


SMP stands for socialist millionaire protocol.

SMP என்பது சோசலிச கோடீஸ்வரர் நெறிமுறை என்பதைக் குறிக்கிறது.


Modular exponentiation is used in many cryptographic applications.

மாடுலர் அடுக்குமுறை பல ரகசிய பயன்பாடுகளில் பயன்படுத்தப்படுகிறது.


The exponent in RSA decryption is the private key, which is usually more than a thousand bits long.

RSA மறையாக்கத்தில் உள்ள அடுக்கு என்பது தனிப்பட்ட சாவி ஆகும், இது பொதுவாக ஆயிரம் பிட்களுக்கு மேல் இருக்கும்.


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

இந்த முறை இன்னும் நேர தகவலை கசியவிடும் என்பதை நினைவில் கொள்ளுங்கள், எனவே இது ஆஃப்லைன் கணக்கீட்டிற்கு மட்டுமே பொருந்தும்.


Modular exponentiation can also be computed using a technique called a Montgomery ladder.

மாடுலர் அடுக்குமுறையை மான்ட்கோமரி ஏணி எனப்படும் நுட்பத்தைப் பயன்படுத்தி கணக்கிடலாம்.


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.

இது முதலில் நீள்வட்ட வளைவுகளில் திறமையான அளவிடக்கூடிய பெருக்கலுக்குப் பயன்படுத்தப்பட்டது.


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.


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.

ஒரு பிட் மூலம் வலதுபுறமாக நகர்த்துவது இரண்டால் தரையிறங்கும் பிரிவுக்குச் சமம்.


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

அதேபோல், இடதுபுறமாக நகர்த்துவது தலைகீழ் செயல்பாடு, மேலும் இரண்டால் பெருக்குவதற்குச் சமம்.


We can combine these to produce an inductive way to compute L_j and H_j.

L_j மற்றும் H_j ஐ கணக்கிட ஒரு தூண்டல் வழியை உருவாக்க இவற்றை இணைக்கலாம்.


Remember that we’re doing this to compute g^k.

g^k ஐ கணக்கிட இதைச் செய்கிறோம் என்பதை நினைவில் கொள்ளுங்கள்.


By starting at g^(L_t-1) and iteratively making our way down to g^(L_0) = g^k, we have an elegant inductive method for computing g^k based on two simple recursive rules.

g^(L_t-1) இல் தொடங்கி, g^(L_0) = g^k வரை படிப்படியாகச் செல்வதன் மூலம், இரண்டு எளிய மறுநிகழ்வு விதிகளை அடிப்படையாகக் கொண்டு g^k ஐக் கணக்கிடுவதற்கான ஒரு நேர்த்தியான தூண்டல் முறையைப் பெற்றுள்ளோம்.


The important part about this algorithm is the constant number of operations.

இந்த வழிமுறையின் முக்கிய பகுதி நிலையான எண்ணிக்கையிலான செயல்பாடுகள் ஆகும்.