The book is an introduction to cryptography for programmers.

ಪುಸ್ತಕವು ಪ್ರೋಗ್ರಾಮರ್‌ಗಳಿಗಾಗಿ ಕ್ರಿಪ್ಟೋಗ್ರಫಿಗೆ ಒಂದು ಪರಿಚಯವಾಗಿದೆ.


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

ಈ ಪುಸ್ತಕವು ಸರಳವಾದ ಮೂಲಭೂತ ಅಂಶಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಕ್ರಮೇಣ ಹೊಸದನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ.


The goal is to understand how complete cryptosystems work.

ಸಂಪೂರ್ಣ ಕ್ರಿಪ್ಟೋಸಿಸ್ಟಮ್‌ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಇದರ ಗುರಿಯಾಗಿದೆ.


Exercises focus on teaching cryptography by breaking inferior systems.

ಕಳಪೆ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಮುರಿಯುವ ಮೂಲಕ ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯನ್ನು ಕಲಿಸುವುದು ವ್ಯಾಯಾಮಗಳ ಗಮನವಾಗಿದೆ.


You will understand why all these primitives are necessary.

ಈ ಎಲ್ಲಾ ಮೂಲಭೂತ ಅಂಶಗಳು ಏಕೆ ಅವಶ್ಯಕವೆಂದು ನೀವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿರಿ.


Cryptography has been deemed the exclusive realm of experts.

ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯನ್ನು ತಜ್ಞರ ವಿಶೇಷ ಕ್ಷೇತ್ರವೆಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ.


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

ನಾವು ಅವರೆಲ್ಲರನ್ನೂ ಒಂದೇ ಜಗತ್ತಿಗೆ ಸೇರಿಸಬೇಕು, ಅಲ್ಲಿ ಎಲ್ಲಾ ಪ್ರೋಗ್ರಾಮರ್‌ಗಳಿಗೆ ಶಿಕ್ಷಣ ನೀಡಲಾಗುತ್ತದೆ.


ಈ ಪುಸ್ತಕವು ಒಂದು ಸೇತುವೆಯಾಗಲು ಆಶಿಸುತ್ತದೆ.


The book is intended as a practical guide to cryptography.

ಪುಸ್ತಕವು ಕ್ರಿಪ್ಟೋಗ್ರಫಿಗೆ ಪ್ರಾಯೋಗಿಕ ಮಾರ್ಗದರ್ಶಿಯಾಗಿ ಉದ್ದೇಶಿಸಲಾಗಿದೆ.


Some sections go into more depth than they need to.

ಕೆಲವು ವಿಭಾಗಗಳು ಅಗತ್ಯವಿರುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಆಳಕ್ಕೆ ಹೋಗುತ್ತವೆ.


The entire Crypto 101 project is publicly developed on GitHub.

ಸಂಪೂರ್ಣ ಕ್ರಿಪ್ಟೋ 101 ಯೋಜನೆಯನ್ನು GitHub ನಲ್ಲಿ ಸಾರ್ವಜನಿಕವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ.


All of your questions, comments and bug reports are highly appreciated.

ನಿಮ್ಮ ಎಲ್ಲಾ ಪ್ರಶ್ನೆಗಳು, ಕಾಮೆಂಟ್‌ಗಳು ಮತ್ತು ದೋಷ ವರದಿಗಳನ್ನು ಹೆಚ್ಚು ಪ್ರಶಂಸಿಸಲಾಗುತ್ತದೆ.


If you don’t understand something after reading it, that’s a bug.

ನೀವು ಅದನ್ನು ಓದಿದ ನಂತರ ಏನನ್ನಾದರೂ ಅರ್ಥಮಾಡಿಕೊಳ್ಳದಿದ್ದರೆ, ಅದು ದೋಷವಾಗಿದೆ.


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

ಎಕ್ಸ್‌ಕ್ಲೂಸಿವ್ ಅಥವಾ, ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ XOR ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಇದು ಬೂಲಿಯನ್ ಆಪರೇಟರ್ ಆಗಿದೆ.


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

ಮೊದಲ ಇನ್‌ಪುಟ್ ಅಥವಾ ಎರಡನೆಯ ಇನ್‌ಪುಟ್, ಆದರೆ ಎರಡೂ ಅಲ್ಲ, ನಿಜವಾದಾಗ XOR ನಿಜವಾಗಿರುತ್ತದೆ.


Another way to think of XOR is as a programmable inverter.

XOR ಅನ್ನು ಯೋಚಿಸಲು ಇನ್ನೊಂದು ಮಾರ್ಗವೆಂದರೆ ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಇನ್ವರ್ಟರ್ ಆಗಿ.


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

ಗಣಿತ ಮತ್ತು ಕ್ರಿಪ್ಟೋಗ್ರಫಿ ಪೇಪರ್‌ಗಳಲ್ಲಿ, ಎಕ್ಸ್‌ಕ್ಲೂಸಿವ್ ಅಥವಾ ಸಾಮಾನ್ಯವಾಗಿ ವೃತ್ತದಲ್ಲಿರುವ ಶಿಲುಬೆಯಿಂದ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ.


We’ll use the same notation in this book.

ನಾವು ಈ ಪುಸ್ತಕದಲ್ಲಿ ಅದೇ ಸಂಕೇತವನ್ನು ಬಳಸುತ್ತೇವೆ.


If you’re already familiar with how XOR works, feel free to skip this section.

ನೀವು ಈಗಾಗಲೇ XOR ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಬಗ್ಗೆ ತಿಳಿದಿದ್ದರೆ, ಈ ವಿಭಾಗವನ್ನು ಬಿಟ್ಟುಬಿಡಲು ಹಿಂಜರಿಯಬೇಡಿ.


There are a few useful arithmetic tricks we can derive from that.

ಅದರಿಂದ ನಾವು ಪಡೆಯಬಹುದಾದ ಕೆಲವು ಉಪಯುಕ್ತ ಅಂಕಗಣಿತದ ತಂತ್ರಗಳಿವೆ.


ಬೀಗದ ಬಿಟ್ ಒಂದೋ 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.

ದಾಳಿಕೋರ ಸಂದೇಶ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂದು ತಿಳಿದುಕೊಳ್ಳುತ್ತಾನೆ.


In this simple scheme, the length of the message is also revealed.

ಈ ಸರಳ ಯೋಜನೆಯಲ್ಲಿ, ಸಂದೇಶದ ಉದ್ದವೂ ಸಹ ಬಹಿರಂಗಗೊಳ್ಳುತ್ತದೆ.


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.

ಅಂತಿಮ ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ಪ್ರಾಮಾಣಿಕ ಕ್ರಿಪ್ಟೋಸಿಸ್ಟಮ್ ಉತ್ತಮವಾಗಿ ಸಹಾಯ ಮಾಡುತ್ತದೆ.


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

ಒಂದು-ಬಾರಿ ಪ್ಯಾಡ್ ಅನ್ನು ಮರುಬಳಸುವುದು ಹೆಚ್ಚು ಗಂಭೀರ ಸಮಸ್ಯೆಯಾಗಿದೆ.


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

ಒಬ್ಬ ದಾಳಿಕೋರ ಒಂದೇ ಒಂದು-ಬಾರಿ ಪ್ಯಾಡ್‌ನೊಂದಿಗೆ ಎರಡು ಸೈಫರ್‌ಟೆಕ್ಸ್ಟ್‌ಗಳನ್ನು ಪಡೆದರೆ ಏನಾಗುತ್ತದೆ ಎಂದು ಊಹಿಸಿ.


The attacker can then XOR the two ciphertexts.

ನಂತರ ದಾಳಿಕೋರನು ಎರಡು ಸೈಫರ್‌ಟೆಕ್ಸ್ಟ್‌ಗಳನ್ನು XOR ಮಾಡಬಹುದು.


The result of the XOR operation on two plaintexts contains quite a bit of 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, we’d know K.

ನಾವು ಸಂದೇಶಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಪ್ಲೇನ್‌ಟೆಕ್ಸ್ಟ್ ಅನ್ನು ಸರಿಯಾಗಿ ಊಹಿಸಲು ಸಾಧ್ಯವಾದರೆ, ನಾವು K ಅನ್ನು ತಿಳಿದುಕೊಳ್ಳುತ್ತೇವೆ.


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

ಪ್ಲೇನ್‌ಟೆಕ್ಸ್ಟ್‌ನ ಭಾಗಗಳನ್ನು ಊಹಿಸುವುದು ಸಂಪೂರ್ಣ ಪ್ಲೇನ್‌ಟೆಕ್ಸ್ಟ್ ಅನ್ನು ಊಹಿಸುವುದಕ್ಕಿಂತ ಸುಲಭವಾಗಿದೆ.


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

ನಮ್ಮ ಊಹೆ ಸರಿಯಾಗಿದ್ದರೆ, ನಾವು ಆ ಸ್ಥಾನದಲ್ಲಿರುವ ಇತರ ಎಲ್ಲಾ ಪ್ಲೇನ್‌ಟೆಕ್ಸ್ಟ್‌ಗಳನ್ನು ಸಹ ತಿಳಿದುಕೊಳ್ಳುತ್ತೇವೆ.


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

ನಿಜವಾದ ಒಂದು-ಬಾರಿ ಪ್ಯಾಡ್‌ಗಳು, ಸರಿಯಾಗಿ ಅಳವಡಿಸಿದರೆ, ಅತ್ಯಂತ ಬಲವಾದ ಭದ್ರತಾ ಖಾತರಿಯನ್ನು ಹೊಂದಿವೆ.


ಅವುಗಳನ್ನು ಹೊಂದಿಸಲು ನಮಗೆ ಕೆಲವು ಯೋಜನೆಯ ಅಗತ್ಯವಿದೆ.


ಆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ಯಾಡಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.


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

ಒಂದು ರೀತಿಯಲ್ಲಿ ಪ್ಯಾಡ್ ಮಾಡುವುದಾದರೆ, ಪಠ್ಯವು ಸೂಕ್ತವಾದ ಉದ್ದವನ್ನು ತಲುಪುವವರೆಗೆ ನಿರ್ದಿಷ್ಟ ಬೈಟ್ ಮೌಲ್ಯವನ್ನು ಸೇರಿಸುವುದು.


To undo the padding, you just remove those bytes.

ಪ್ಯಾಡಿಂಗ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಲು, ನೀವು ಆ ಬೈಟ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಬೇಕು.


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

ಈ ಯೋಜನೆಯು ಒಂದು ಸ್ಪಷ್ಟ ದೋಷವನ್ನು ಹೊಂದಿದೆ: ನೀವು ಆ ನಿರ್ದಿಷ್ಟ ಬೈಟ್ ಮೌಲ್ಯದಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಅಥವಾ ಪ್ಯಾಡಿಂಗ್ ಮತ್ತು ನಿಜವಾದ ಸಂದೇಶದ ನಡುವೆ ನೀವು ವ್ಯತ್ಯಾಸವನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.


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

ಉತ್ತಮ ಮತ್ತು ಹೆಚ್ಚು ಜನಪ್ರಿಯ ಯೋಜನೆಯೆಂದರೆ PKCS#5/PKCS#7 ಪ್ಯಾಡಿಂಗ್.


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

ನೀವು ಪ್ಯಾಡ್ ಮಾಡಬೇಕಾದ ಬೈಟ್‌ಗಳ ಸಂಖ್ಯೆಯನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ ಮತ್ತು ಆ ಮೌಲ್ಯದೊಂದಿಗೆ ಬೈಟ್ ಅನ್ನು ಅನೇಕ ಬಾರಿ ಪ್ಯಾಡ್ ಮಾಡಿ.


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

ಉದಾಹರಣೆಗೆ, ಬ್ಲಾಕ್ ಗಾತ್ರವು 8 ಬೈಟ್‌ಗಳಾಗಿದ್ದರೆ ಮತ್ತು ಕೊನೆಯ ಬ್ಲಾಕ್ ಮೂರು ಬೈಟ್‌ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ 12 34 45, ಪ್ಯಾಡಿಂಗ್ ಮಾಡಿದ ನಂತರ ಬ್ಲಾಕ್ 12 34 45 05 05 05 05 05 ಆಗುತ್ತದೆ.


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

ಪಠ್ಯವು ಬ್ಲಾಕ್ ಗಾತ್ರದ ಗುಣಕವಾಗಿದ್ದರೆ, ಸಂಪೂರ್ಣ ಪ್ಯಾಡಿಂಗ್ ಬ್ಲಾಕ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.


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

ಇಲ್ಲದಿದ್ದರೆ, ಸ್ವೀಕರಿಸುವವರು ಪಠ್ಯದ ಕೊನೆಯ ಬೈಟ್ ಅನ್ನು ನೋಡುತ್ತಾರೆ, ಅದನ್ನು ಪ್ಯಾಡಿಂಗ್ ಉದ್ದವೆಂದು ಪರಿಗಣಿಸುತ್ತಾರೆ ಮತ್ತು ಸಂದೇಶವನ್ನು ಸರಿಯಾಗಿ ಪ್ಯಾಡ್ ಮಾಡಲಾಗಿಲ್ಲ ಎಂದು ಬಹುತೇಕ ಖಚಿತವಾಗಿ ತೀರ್ಮಾನಿಸುತ್ತಾರೆ.


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

ಯಾವುದೇ ಸಂದೇಶಗಳನ್ನು ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಸ್ವೀಕರಿಸುವವರನ್ನು ಮೋಸಗೊಳಿಸಲು ನಾವು 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.

ಸಂಪೂರ್ಣ ಸಂದೇಶವನ್ನು ಪುನರಾವರ್ತಿತವಾಗಿ ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಪಠ್ಯದ ಪ್ಯಾಡಿಂಗ್ ಬಗ್ಗೆ ಆ ಸಣ್ಣ ಮಾಹಿತಿಯನ್ನು ನಾವು ಬಳಸಬಹುದು.


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.

ಈ ದಾಳಿಯನ್ನು ನಡೆಸಲು, ದಾಳಿಕೋರನಿಗೆ ಎರಡು ವಿಷಯಗಳು ಬೇಕಾಗುತ್ತವೆ: ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಒಂದು ಗುರಿ ಸೈಫರ್‌ಟೆಕ್ಸ್ಟ್ ಮತ್ತು ಪ್ಯಾಡಿಂಗ್ ಒರಾಕಲ್.


The massive impact of this attack proves otherwise.

ಈ ದಾಳಿಯ ಬೃಹತ್ ಪರಿಣಾಮವು ಇತರ ರೀತಿಯಲ್ಲಿ ಸಾಬೀತಾಗಿದೆ.


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 attack is general enough to work on other kinds of padding, with minor modifications.

ಸಣ್ಣ ಮಾರ್ಪಾಡುಗಳೊಂದಿಗೆ ಇತರ ರೀತಿಯ ಪ್ಯಾಡಿಂಗ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ದಾಳಿಯು ಸಾಕಷ್ಟು ಸಾಮಾನ್ಯವಾಗಿದೆ.


The attacker fills a block with arbitrary bytes.

ದಾಳಿಕೋರನು ಬ್ಲಾಕ್ ಅನ್ನು ಯಾದೃಚ್ಛಿಕ ಬೈಟ್‌ಗಳಿಂದ ತುಂಬುತ್ತಾನೆ.


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 ಸೇರಿದಂತೆ ಅನೇಕ ಇತರ ಮಾನದಂಡಗಳು ಪರಿಣಾಮ ಬೀರಿರಲಿಲ್ಲ.


ಮತ್ತೆ, ದಾಳಿಗಳು ಉತ್ತಮಗೊಳ್ಳುತ್ತಲೇ ಇರುತ್ತವೆ.


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 ಆಗಿದ್ದರೆ, ಕೀಸ್ಟ್ರೀಮ್‌ನಲ್ಲಿ ಅದು ಎಲ್ಲಿ ಸಂಭವಿಸುತ್ತದೆ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ನೀವು ಮುಂದಿನ ಬೈಟ್ ಬಗ್ಗೆ ಅನೇಕ ಮುನ್ಸೂಚನೆಗಳನ್ನು ಮಾಡಬಹುದು ಎಂದು ನಾವು ನೋಡಬಹುದು.


These attacks have primarily focused on the cipher itself, and haven’t been fully optimized for practical attacks on, say, web services.

ಈ ದಾಳಿಗಳು ಮುಖ್ಯವಾಗಿ ಸೈಫರ್‌ನ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿವೆ ಮತ್ತು ವೆಬ್ ಸೇವೆಗಳಂತಹ ಪ್ರಾಯೋಗಿಕ ದಾಳಿಗಳಿಗಾಗಿ ಸಂಪೂರ್ಣವಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿಲ್ಲ.


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.

ಉದಾಹರಣೆಗೆ, ನಾವು ಬಹಳ ಸೀಮಿತ ಉದ್ದದ ಸಂದೇಶಗಳನ್ನು ಮಾತ್ರ ಕಳುಹಿಸಬಹುದು: ಬ್ಲಾಕ್ ಸೈಫರ್‌ನ ಬ್ಲಾಕ್ ಉದ್ದ.


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.

ನಾವು ಕೀ ಗಾತ್ರವನ್ನು ನಾಟಕೀಯವಾಗಿ ಕಡಿಮೆ ಮಾಡಿದ್ದರೂ, ಆ ಕೆಲವು ಕೀ ಬೈಟ್‌ಗಳ ಮೇಲೆ ಒಪ್ಪಿಕೊಳ್ಳುವ ಸಮಸ್ಯೆಯನ್ನು ನಾವು ಇನ್ನೂ ಪರಿಹರಿಸಬೇಕಾಗಿದೆ.


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.

ಈ ಯೋಜನೆಯನ್ನು 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.

ಪ್ಲೇನ್‌ಟೆಕ್ಸ್ಟ್‌ನಲ್ಲಿರುವ ಒಂದೇ ರೀತಿಯ ಪಿಕ್ಸೆಲ್‌ಗಳ ಬ್ಲಾಕ್‌ಗಳು ಸೈಫರ್‌ಟೆಕ್ಸ್ಟ್‌ನಲ್ಲಿರುವ ಒಂದೇ ರೀತಿಯ ಪಿಕ್ಸೆಲ್‌ಗಳ ಬ್ಲಾಕ್‌ಗಳಿಗೆ ಮ್ಯಾಪ್ ಆಗುವುದರಿಂದ, ಚಿತ್ರದ ಜಾಗತಿಕ ರಚನೆಯನ್ನು ಹೆಚ್ಚಾಗಿ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ.


This becomes less apparent as block sizes increase, but only at block sizes far larger than typical block ciphers.

ಬ್ಲಾಕ್ ಗಾತ್ರಗಳು ಹೆಚ್ಚಾದಂತೆ ಇದು ಕಡಿಮೆ ಸ್ಪಷ್ಟವಾಗುತ್ತದೆ, ಆದರೆ ವಿಶಿಷ್ಟ ಬ್ಲಾಕ್ ಸೈಫರ್‌ಗಳಿಗಿಂತ ದೊಡ್ಡ ಬ್ಲಾಕ್ ಗಾತ್ರಗಳಲ್ಲಿ ಮಾತ್ರ.


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

8 ಬಿಟ್ ಆಳದ ಮೂರು ಬಣ್ಣ ಚಾನಲ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಅಸಂಕುಚಿತ ಬಿಟ್‌ಮ್ಯಾಪ್‌ಗಾಗಿ, ಪ್ರತಿ ಪಿಕ್ಸೆಲ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು 24 ಬಿಟ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.


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

ಉದಾಹರಣೆಯಲ್ಲಿ ದೊಡ್ಡ ಬ್ಲಾಕ್ ಗಾತ್ರಗಳಿಗಿಂತ ಪ್ರತಿ ಬ್ಲಾಕ್‌ಗೆ ಇದು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಪಿಕ್ಸೆಲ್‌ಗಳನ್ನು ಹೊಂದಿದೆ.


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 ಮೋಡ್‌ನಲ್ಲಿ ಅನುಸರಿಸುತ್ತದೆ.


ದಾಳಿಕೋರನ ಗುರಿ ಅದನ್ನು ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡುವುದು.


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

ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಅನೇಕ ಸಾಫ್ಟ್‌ವೇರ್‌ಗಳನ್ನು ಒಂದರಂತೆ ವರ್ತಿಸುವಂತೆ ಮೋಸಗೊಳಿಸಬಹುದು ಎಂದು ತಿಳಿದುಬಂದಿದೆ.


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 ಒಂದು ಕೀ ವ್ಯುತ್ಪನ್ನ ಕಾರ್ಯವಾಗಿದೆ.


HKDF is designed for high entropy inputs.

HKDF ಅನ್ನು ಹೆಚ್ಚಿನ ಎಂಟ್ರೊಪಿ ಇನ್‌ಪುಟ್‌ಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.


It is not designed for low-entropy inputs like passwords.

ಇದು ಪಾಸ್‌ವರ್ಡ್‌ಗಳಂತಹ ಕಡಿಮೆ ಎಂಟ್ರೊಪಿ ಇನ್‌ಪುಟ್‌ಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿಲ್ಲ.


The extraction phase extracts a fixed-length key.

ಹೊರತೆಗೆಯುವ ಹಂತವು ಸ್ಥಿರ-ಉದ್ದದ ಕೀಲಿಯನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ.


The salt value is optional in the extraction phase.

ಹೊರತೆಗೆಯುವ ಹಂತದಲ್ಲಿ ಉಪ್ಪಿನ ಮೌಲ್ಯವು ಐಚ್ಛಿಕವಾಗಿರುತ್ತದೆ.


ಮಾಹಿತಿ ನಿಯತಾಂಕವು ಸುರಕ್ಷತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.


Random number generation is crucial for cryptography.

ಕ್ರಿಪ್ಟೋಗ್ರಫಿಗಾಗಿ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ ಉತ್ಪಾದನೆಯು ನಿರ್ಣಾಯಕವಾಗಿದೆ.


True random number generators use physical processes.

ನಿಜವಾದ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ ಜನರೇಟರ್‌ಗಳು ಭೌತಿಕ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬಳಸುತ್ತವೆ.


Quantum processes are used for randomness.

ಯಾದೃಚ್ಛಿಕತೆಗಾಗಿ ಕ್ವಾಂಟಮ್ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.


ನೈಕ್ವಿಸ್ಟ್ ಶಬ್ದವು ಒಂದು ಉಷ್ಣ ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ.


Cryptographically secure pseudorandom generators are important.

ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕಲಿ ಸುರಕ್ಷಿತವಾದ ಸ್ಯೂಡೋರಾಂಡಮ್ ಜನರೇಟರ್‌ಗಳು ಮುಖ್ಯವಾಗಿವೆ.


Use the OS-provided random number generator.

OS ಒದಗಿಸಿದ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ ಜನರೇಟರ್ ಬಳಸಿ.


Avoid user-space random number generators.

ಬಳಕೆದಾರ-ಸ್ಥಳದ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ ಜನರೇಟರ್‌ಗಳನ್ನು ತಪ್ಪಿಸಿ.


ಯಾರೋ ಒಂದು CSPRNG ಅಲ್ಗಾರಿದಮ್ ಆಗಿದೆ.


Dual_EC_DRBG is a controversial standard.

Dual_EC_DRBG ಒಂದು ವಿವಾದಾತ್ಮಕ ಮಾನದಂಡವಾಗಿದೆ.


ಮಾನದಂಡವು ಬ್ಯಾಕ್‌ಡೋರ್ ಅನ್ನು ಹೊಂದಿರಬಹುದು.


Mersenne Twister is not cryptographically secure.

ಮೆರ್ಸೆನ್ನೆ ಟ್ವಿಸ್ಟರ್ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕಲಿ ಸುರಕ್ಷಿತವಲ್ಲ.


The period of Mersenne Twister is very large.

ಮೆರ್ಸೆನ್ನೆ ಟ್ವಿಸ್ಟರ್‌ನ ಅವಧಿಯು ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ.


The algorithm operates on an internal state array.

ಅಲ್ಗಾರಿದಮ್ ಆಂತರಿಕ ಸ್ಥಿತಿ ಶ್ರೇಣಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.


Initialization produces an initial state from a seed.

ಆರಂಭಿಕ ಸ್ಥಿತಿಯನ್ನು ಬೀಜದಿಂದ ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ.


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

ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಹಾಕಿಂಗ್ ಮಾಡುವ ಮೊದಲು ಕೆಲವು ಯಾದೃಚ್ಛಿಕ ಮೌಲ್ಯದೊಂದಿಗೆ ಬೆರೆಸುವ ಮೂಲಕ, ನೀವು ಒಂದೇ ಹಾಶ್ ಕಾರ್ಯದಿಂದ ಸಂಪೂರ್ಣವಾಗಿ ವಿಭಿನ್ನ ಹಾಶ್ ಮೌಲ್ಯಗಳನ್ನು ಉತ್ಪಾದಿಸಬಹುದು.


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 like rainbow tables.

ನೀವು ಸಾಕಷ್ಟು ದೊಡ್ಡದಾದ, ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕಲ್ ಯಾದೃಚ್ಛಿಕ ಉಪ್ಪನ್ನು ಆರಿಸಿದರೆ, ನೀವು ಇಂದ್ರಧನುಷ್ಯ ಕೋಷ್ಟಕಗಳಂತಹ ಸಮಯಕ್ಕಿಂತ ಮುಂಚಿತವಾಗಿ ದಾಳಿಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಸೋಲಿಸಿದ್ದೀರಿ.


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, once they knew the value of the salt.

ಇದು ಸಮಯಕ್ಕಿಂತ ಮುಂಚಿತವಾಗಿ ಇಂದ್ರಧನುಷ್ಯ ಕೋಷ್ಟಕ ದಾಳಿಯನ್ನು ತಡೆಗಟ್ಟಿದರೂ, ಉಪ್ಪಿನ ಮೌಲ್ಯವನ್ನು ತಿಳಿದ ನಂತರವೂ ದಾಳಿಕೋರರು ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ದಾಳಿ ಮಾಡಲು ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು.


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) ಅನ್ನು ಕಂಪ್ಯೂಟ್ ಮಾಡುವುದು ತುಂಬಾ ಸರಳವಾಗಿದೆ.


The attacker will actually compute H(M1 ‖ G ‖ M2), where G is the glue padding, called that way because it glues the two messages together.

ದಾಳಿಕೋರನು ವಾಸ್ತವವಾಗಿ H(M1 ‖ G ‖ M2) ಅನ್ನು ಕಂಪ್ಯೂಟ್ ಮಾಡುತ್ತಾನೆ, ಅಲ್ಲಿ G ಎಂಬುದು ಅಂಟು ಪ್ಯಾಡಿಂಗ್ ಆಗಿದೆ, ಇದನ್ನು ಎರಡು ಸಂದೇಶಗಳನ್ನು ಒಟ್ಟಿಗೆ ಅಂಟಿಸುವುದರಿಂದ ಕರೆಯಲಾಗುತ್ತದೆ.


It’s very easy for the recipient to compute the same function, and verify the code is correct.

ಸ್ವೀಕರಿಸುವವರಿಗೆ ಅದೇ ಕಾರ್ಯವನ್ನು ಕಂಪ್ಯೂಟ್ ಮಾಡಲು ಮತ್ತು ಕೋಡ್ ಸರಿಯಾಗಿದೆ ಎಂದು ಪರಿಶೀಲಿಸಲು ಇದು ತುಂಬಾ ಸುಲಭ.


Hash trees are trees where each node is identified by a hash value, consisting of its contents and the hash value of its ancestor.

ಹಾಶ್ ಮರಗಳು ಮರಗಳಾಗಿವೆ, ಅಲ್ಲಿ ಪ್ರತಿಯೊಂದು ನೋಡ್ ಅನ್ನು ಹಾಶ್ ಮೌಲ್ಯದಿಂದ ಗುರುತಿಸಲಾಗುತ್ತದೆ, ಇದು ಅದರ ವಿಷಯಗಳು ಮತ್ತು ಅದರ ಪೂರ್ವಜರ ಹಾಶ್ ಮೌಲ್ಯವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.


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

ಸಂದೇಶ ದೃಢೀಕರಣ ಕೋಡ್ (MAC) ಎನ್ನುವುದು ಸಂದೇಶದ ದೃಢೀಕರಣ ಮತ್ತು ಸಮಗ್ರತೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಬಳಸಬಹುದಾದ ಒಂದು ಸಣ್ಣ ಮಾಹಿತಿಯ ಬಿಟ್ ಆಗಿದೆ.


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

ಈ ಪುಸ್ತಕದಲ್ಲಿ ನಾವು ದೃಢೀಕೃತ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಸಾಧಿಸಲು ಒಂದು ಮಾರ್ಗವಾಗಿ MAC ಗಳಲ್ಲಿ ಹೆಚ್ಚಾಗಿ ಆಸಕ್ತಿ ಹೊಂದಿದ್ದೇವೆ, ಆದ್ದರಿಂದ ಸಂದೇಶವು ಯಾವಾಗಲೂ ಸೈಫರ್‌ಟೆಕ್ಸ್ಟ್ ಆಗಿರುತ್ತದೆ.


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: •»and«are right-shift and left-shift

ನೀವು ಪೈಥಾನ್ ಅಥವಾ ಅದರ ಬಿಟ್‌ವೈಸ್ ಆಪರೇಟರ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡದವರಿಗೆ: •»ಮತ್ತು« ಬಲ-ಶಿಫ್ಟ್ ಮತ್ತು ಎಡ-ಶಿಫ್ಟ್ ಆಗಿದೆ


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

ಇದರ ಮೊದಲ ಮತ್ತು ಅಗ್ರಗಣ್ಯ ಗುರಿಯು ಇಂಟರ್ನೆಟ್ ಅಥವಾ ಯಾವುದೇ ಇತರ ಅಸುರಕ್ಷಿತ ಮಾಧ್ಯಮದ ಮೂಲಕ ಸುರಕ್ಷಿತವಾಗಿ ಬೈಟ್‌ಗಳನ್ನು ಸಾಗಿಸುವುದು.


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 do this using the standard TLS trust model of certificate authorities.

ಅವರು ಪ್ರಮಾಣಪತ್ರ ಪ್ರಾಧಿಕಾರಗಳ ಪ್ರಮಾಣಿತ 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.

ಒಬ್ಬ ದಾಳಿಕೋರ ಸರ್ವರ್‌ನ ಖಾಸಗಿ ಕೀಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆದರೆ ಏನಾಗುತ್ತದೆ ಎಂದು ಊಹಿಸಿ.


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.

ಇದು ಬಹಳ ದೊಡ್ಡ ಸಂದೇಶಗಳಿಗೂ ಸಹ ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ನಂಬಲಾಗದಷ್ಟು ವೇಗವಾಗಿರಬಹುದು.


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

ಒಂದು-ಬಾರಿ MAC ಅನ್ನು ಸುರಕ್ಷಿತ ಬಹು-ಬಳಕೆಯ MAC ಆಗಿ ಪರಿವರ್ತಿಸಲು ಒಂದು ರಚನೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ, ಇದು ಪ್ರಮುಖ ಸಮಸ್ಯೆಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.


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

ಅಂತಹ ಒಂದು-ಬಾರಿ MAC ಗಳ ವಿಶಿಷ್ಟ ಸರಳ ಉದಾಹರಣೆಯು ಕೆಲವು ದೊಡ್ಡ ಅವಿಭಾಜ್ಯ p ಯ ಮಾಡ್ಯುಲೋದಲ್ಲಿ ಸರಳ ಗುಣಾಕಾರ ಮತ್ತು ಸಂಕಲನವನ್ನು ಒಳಗೊಂಡಿದೆ.


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

ಈ ಸರಳ ಉದಾಹರಣೆಯು ಒಂದು-ಬ್ಲಾಕ್ ಸಂದೇಶಗಳಿಗಾಗಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ m, ಮತ್ತು ಕೆಲವು ಅವಿಭಾಜ್ಯ p ದೊಡ್ಡ m ಗಿಂತ ಸ್ವಲ್ಪ ದೊಡ್ಡದಾಗಿದೆ.


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

ಸಂದೇಶ-ನಿರ್ದಿಷ್ಟ ಬಹುಪದ P ಅನ್ನು ಬಳಸುವ ಮೂಲಕ ಬ್ಲಾಕ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ದೊಡ್ಡ ಸಂದೇಶಗಳನ್ನು M ಬೆಂಬಲಿಸಲು ಇದನ್ನು ವಿಸ್ತರಿಸಬಹುದು:


By computing each multiplication modulo p, the numbers will remain conveniently small.

ಪ್ರತಿ ಗುಣಾಕಾರವನ್ನು ಮಾಡ್ಯುಲೋ p ಯಲ್ಲಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಮೂಲಕ, ಸಂಖ್ಯೆಗಳು ಅನುಕೂಲಕರವಾಗಿ ಚಿಕ್ಕದಾಗಿ ಉಳಿಯುತ್ತವೆ.


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 ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡುವುದು ನಮ್ಮ ಉದಾಹರಣೆ MAC ಎರಡು ಸಂದೇಶಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಬಳಸಿದರೆ ಅದು ಅಸುರಕ್ಷಿತವಾಗಿದೆ ಎಂದು ನಾವು ವಿವರಿಸುತ್ತೇವೆ m1, m2 ಒಂದೇ ಕೀಲಿಯೊಂದಿಗೆ(a, b):


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

ಕೆಲವು ಸರಳ ಮಾಡ್ಯುಲರ್ ಅಂಕಗಣಿತದೊಂದಿಗೆ ದಾಳಿಕೋರನು a, b ಅನ್ನು ಪುನರ್ನಿರ್ಮಿಸಬಹುದು:


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

ನೀವು ನೋಡುವಂತೆ, ಒಂದು-ಬಾರಿ ಪ್ಯಾಡ್‌ಗಳಂತೆ, ಕೀಲಿಯನ್ನು ಒಮ್ಮೆ ಮರುಬಳಕೆ ಮಾಡುವುದರಿಂದ ಗೌಪ್ಯತೆ ಅಥವಾ ಸಮಗ್ರತೆಯನ್ನು ಕಾಪಾಡಲು ಕ್ರಿಪ್ಟೋಸಿಸ್ಟಮ್ ಸಂಪೂರ್ಣವಾಗಿ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ.


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

ಅದೃಷ್ಟವಶಾತ್, ಈ ದೌರ್ಬಲ್ಯವನ್ನು ಕಾರ್ಟರ್-ವೆಗ್ಮನ್ MAC ಎಂಬ ರಚನೆಯೊಂದಿಗೆ ಪರಿಹರಿಸಬಹುದು, ಇದನ್ನು ನಾವು ಮುಂದಿನ ವಿಭಾಗದಲ್ಲಿ ನೋಡುತ್ತೇವೆ.


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

ಕಾರ್ಟರ್-ವೆಗ್ಮನ್ MAC ಹಿಂದಿನ ಕಲ್ಪನೆಯೆಂದರೆ, ನೀವು ಡೇಟಾದ ಬೃಹತ್ ಪ್ರಮಾಣಕ್ಕಾಗಿ ಟ್ಯಾಗ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲು ಒಂದು-ಬಾರಿ MAC O ಅನ್ನು ಬಳಸಬಹುದು, ತದನಂತರ ಆ ಒಂದು-ಬಾರಿ ಟ್ಯಾಗ್ ಅನ್ನು ರಕ್ಷಿಸಲು ಬ್ಲಾಕ್ ಸೈಫರ್‌ನಂತಹ ಸ್ಯೂಡೋರಾಂಡಮ್ ಕಾರ್ಯ F ನೊಂದಿಗೆ ನಾನ್ಸ್ n ಅನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಬಹುದು:


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

F ಸುರಕ್ಷಿತ ಸ್ಯೂಡೋರಾಂಡಮ್ ಕಾರ್ಯವಾಗಿದ್ದರೆ, ನಾನ್ಸ್‌ನ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಸಂಪೂರ್ಣವಾಗಿ ಊಹಿಸಲಾಗದು.


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 ಮಾತ್ರ ನಿರ್ವಹಿಸುತ್ತದೆ.


Symmetric-key encryption uses repeated substitutions and permutations.

ಸಮಪರಿಮಾಣ ಕೀಲಿ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಪುನರಾವರ್ತಿತ ಬದಲಾವಣೆಗಳು ಮತ್ತು ಕ್ರಮಪಲ್ಲಟನೆಗಳನ್ನು ಬಳಸುತ್ತದೆ.


AES stands for Advanced Encryption Standard.

AES ಎಂದರೆ ಸುಧಾರಿತ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್.


AEAD ಎಂದರೆ ಏನು?


CBC is an acronym for cipher block chaining.

CBC ಎಂದರೆ ಸೈಫರ್ ಬ್ಲಾಕ್ ಚೈನಿಂಗ್.


A CDN is a content distribution network.

CDN ಎಂದರೆ ವಿಷಯ ವಿತರಣಾ ನೆಟ್‌ವರ್ಕ್.


CSPRNG generates cryptographically secure pseudorandom numbers.

CSPRNG ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕಲಿ ಸುರಕ್ಷಿತ ಸುಡೋರಾಂಡಮ್ ಸಂಖ್ಯೆಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.


CSRF is a type of cross-site request forgery.

CSRF ಒಂದು ರೀತಿಯ ಅಡ್ಡ-ಸೈಟ್ ವಿನಂತಿ ವಂಚನೆ.


DES ಎಂದರೆ ಡೇಟಾ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್.


FIPS refers to Federal Information Processing Standards.

FIPS ಫೆಡರಲ್ ಮಾಹಿತಿ ಸಂಸ್ಕರಣಾ ಮಾನದಂಡಗಳನ್ನು ಸೂಚಿಸುತ್ತದೆ.


GCM ಗ್ಯಾಲೋಯಿಸ್ ಕೌಂಟರ್ ಮೋಡ್ ಆಗಿದೆ.


HKDF is HMAC-based Key Derivation Function.

HKDF ಎಂದರೆ HMAC-ಆಧಾರಿತ ಕೀ ಡಿರೈವೇಷನ್ ಫಂಕ್ಷನ್.


HMAC is a Hash-based Message Authentication Code.

HMAC ಎಂದರೆ ಹ್ಯಾಶ್-ಆಧಾರಿತ ಸಂದೇಶ ದೃಢೀಕರಣ ಕೋಡ್.


HSTS stands for HTTP Strict Transport Security.

HSTS ಎಂದರೆ HTTP ಸ್ಟ್ರಿಕ್ಟ್ ಟ್ರಾನ್ಸ್‌ಪೋರ್ಟ್ ಸೆಕ್ಯುರಿಟಿ.


IV ಎಂದರೆ ಆರಂಭಿಕ ವೆಕ್ಟರ್.


KDF ಒಂದು ಕೀ ಡಿರೈವೇಷನ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ.


MAC ಎಂದರೆ ಸಂದೇಶ ದೃಢೀಕರಣ ಕೋಡ್.


MITM ಎಂದರೆ ಮಧ್ಯದಲ್ಲಿರುವ ವ್ಯಕ್ತಿ.


OCB ಆಫ್‌ಸೆಟ್ ಕೋಡ್‌ಬುಕ್ ಆಗಿದೆ.


OTR ಎಂದರೆ ದಾಖಲೆಗಳಿಲ್ಲ.


RSA ರಿವೆಸ್ಟ್, ಶಮೀರ್, ಅಡ್ಲೆಮನ್.


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

ದೊಡ್ಡ, ಹೆಚ್ಚು ಪ್ರೊಫೈಲ್ ಹೊಂದಿರುವ ವೆಬ್‌ಸೈಟ್‌ಗಳಿಂದ ಪ್ರಮಾಣಪತ್ರಗಳ ಪಟ್ಟಿಯೊಂದಿಗೆ ಬ್ರೌಸರ್‌ಗಳು ಮೂಲತಃ ಪ್ರಮಾಣಪತ್ರ ಪಿನ್ನಿಂಗ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದವು.


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

ಉದಾಹರಣೆಗೆ, Google ತಮ್ಮ Chrome ಬ್ರೌಸರ್‌ನಲ್ಲಿ ತಮ್ಮ ಎಲ್ಲಾ ಸೇವೆಗಳಿಗಾಗಿ ವೈಟ್‌ಲಿಸ್ಟ್ ಮಾಡಿದ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಸೇರಿಸಿದೆ.


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

ಸಾಮಾನ್ಯವಾಗಿ, ಡೀಫಾಲ್ಟ್‌ಗಳು ಸುರಕ್ಷಿತವಲ್ಲ, ಮತ್ತು ಅವುಗಳನ್ನು ಬದಲಾಯಿಸಬೇಕು ಎಂದು ಜನರಿಗೆ ತಿಳಿದಿರುವುದಿಲ್ಲ.


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

ಸುರಕ್ಷಿತ TLS ಸಂರಚನೆಯನ್ನು ರೂಪಿಸುವ ವಿಷಯಗಳು ತ್ವರಿತವಾಗಿ ಬದಲಾಗಬಹುದು.


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, which were parts of the default ciphersuite specifications everywhere.

ಆ ದಾಳಿಯು 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 ಕ್ಲೈಂಟ್‌ಗಳು ಮತ್ತು ಸರ್ವರ್‌ಗಳೆರಡಕ್ಕೂ ಪರೀಕ್ಷೆಗಳನ್ನು ಒದಗಿಸುತ್ತಾರೆ ಮತ್ತು ಸಂರಚನೆಗಳನ್ನು ಹೇಗೆ ಸುಧಾರಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ವಿಸ್ತಾರವಾದ ಸಲಹೆ ನೀಡುತ್ತಾರೆ.


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.

ನಾವು ವೈಯಕ್ತಿಕವಾಗಿ ಭೇಟಿಯಾದರೆ, ನಾವು ಪರಸ್ಪರ ಗುರುತುಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.


The deniability and perfect forward secrecy properties are very different from those of other systems such as OpenPGP.

ನಿರಾಕರಣೆ ಮತ್ತು ಪರಿಪೂರ್ಣ ಫಾರ್ವರ್ಡ್ ರಹಸ್ಯ ಗುಣಲಕ್ಷಣಗಳು OpenPGP ನಂತಹ ಇತರ ವ್ಯವಸ್ಥೆಗಳಿಗಿಂತ ಬಹಳ ಭಿನ್ನವಾಗಿವೆ.


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

ಮನಸ್ಸಿನಲ್ಲಿಟ್ಟುಕೊಳ್ಳಿ, ಈ ವಿಧಾನವು ಸಮಯದ ಮಾಹಿತಿಯನ್ನು ಸೋರಿಕೆ ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಇದು ಆಫ್‌ಲೈನ್ ಲೆಕ್ಕಾಚಾರಕ್ಕೆ ಮಾತ್ರ ಸೂಕ್ತವಾಗಿದೆ.


Many programming languages provide access to specific modular exponentiation functions.

ಅನೇಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ನಿರ್ದಿಷ್ಟ ಮಾಡ್ಯುಲರ್ ಘಾತಾಂಕ ಕಾರ್ಯಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತವೆ.


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

ಉದಾಹರಣೆಗೆ, ಪೈಥಾನ್‌ನಲ್ಲಿ, pow(e, x, m) ಸಮರ್ಥ ಮಾಡ್ಯುಲರ್ ಘಾತಾಂಕವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.


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

ಆದಾಗ್ಯೂ, ಅಭಿವ್ಯಕ್ತಿ (e ** x) % m ಇನ್ನೂ ಅಸಮರ್ಥ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತದೆ.


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

ಮಾಂಟ್ಗೊಮೆರಿ ಏಣಿ ಒಂದು ಅಲ್ಗಾರಿದಮ್ ಆಗಿದ್ದು, ಇದು ಘಾತಾಂಕದ ನಿರ್ದಿಷ್ಟ ಮೌಲ್ಯವನ್ನು ಲೆಕ್ಕಿಸದೆ ಒಂದೇ ಸಂಖ್ಯೆಯ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಖಾತರಿಪಡಿಸುವ ಮೂಲಕ ಇದನ್ನು ಪರಿಹರಿಸುತ್ತದೆ.


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

ಇದು ಮೂಲತಃ ಎಲಿಪ್ಟಿಕ್ ವಕ್ರಾಕೃತಿಗಳ ಮೇಲೆ ಸಮರ್ಥ ಸ್ಕೇಲಾರ್ ಗುಣಾಕಾರಗಳಿಗಾಗಿ ಅನ್ವಯಿಸಲ್ಪಟ್ಟಿತು, ಆದರೆ ಗಣಿತವು ಅನೇಕ ಇತರ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ: ನಿರ್ದಿಷ್ಟವಾಗಿ, ಯಾವುದೇ ಅಬೆಲಿಯನ್ ಗುಂಪಿಗೆ.


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

ಆ ವ್ಯಾಖ್ಯಾನವು ಭಯಾನಕವಾಗಿ ಕಾಣಿಸಬಹುದು, ಆದರೆ ನೀವು ಇಲ್ಲಿ ನಿಜವಾಗಿಯೂ ಮಾಡುತ್ತಿರುವುದು k_i ಅನ್ನು ಸ್ಥಾನ i ನಲ್ಲಿ k ನ ಬಿಟ್ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸುವುದು.


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

ಮೊತ್ತವು ಎಲ್ಲಾ ಬಿಟ್‌ಗಳ ಮೇಲೆ ಹೋಗುತ್ತದೆ: k ಯು t ಬಿಟ್‌ಗಳಷ್ಟು ಉದ್ದವಾಗಿದ್ದರೆ ಮತ್ತು ನಾವು 0 ನಲ್ಲಿ ಸೂಚ್ಯಂಕವನ್ನು ಪ್ರಾರಂಭಿಸಿದರೆ, ಅತಿ ಹೆಚ್ಚು ಬಿಟ್‌ನ ಸೂಚ್ಯಂಕವು t-1 ಆಗಿದೆ ಮತ್ತು ಕಡಿಮೆ ಬಿಟ್‌ನ ಸೂಚ್ಯಂಕವು 0 ಆಗಿದೆ.


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

ಉದಾಹರಣೆಗೆ, ಸಂಖ್ಯೆ 6 ರ ಬೈನರಿ ವಿಸ್ತರಣೆ 0b110 ಆಗಿದೆ.


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

ಆ ಸಂಖ್ಯೆ ಮೂರು ಬಿಟ್‌ಗಳಷ್ಟು ಉದ್ದವಾಗಿದೆ, ಆದ್ದರಿಂದ t = 3.


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

ಮುಂದಿನ ಕೆಲವು ಹಂತಗಳು ಕೊನೆಯಲ್ಲಿ ಒಟ್ಟಿಗೆ ಬರುವುದನ್ನು ನೋಡುವವರೆಗೆ ಹೆಚ್ಚು ಅರ್ಥಪೂರ್ಣವಾಗುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ನನ್ನೊಂದಿಗೆ ಸಹಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಗಣಿತವು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ.


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

ಮೂಲಭೂತವಾಗಿ, L_j ಎಂದರೆ k ಅನ್ನು ಬಲಕ್ಕೆ j ಬಿಟ್‌ಗಳಿಂದ ವರ್ಗಾಯಿಸಲಾಗಿದೆ.


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

ಒಂದು ಬಿಟ್‌ನಿಂದ ಬಲಕ್ಕೆ ವರ್ಗಾಯಿಸುವುದು ಎರಡರಿಂದ ನೆಲದ ವಿಭಜನೆಯಂತೆಯೇ ಇರುತ್ತದೆ, ದಶಮಾಂಶ ಅಂಕಿಅಂಶದಿಂದ ಬಲಕ್ಕೆ ವರ್ಗಾಯಿಸುವುದು 10 ರಿಂದ ನೆಲದ ವಿಭಜನೆಯಂತೆಯೇ ಇರುತ್ತದೆ.


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 ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ನಾವು ಇದನ್ನು ಮಾಡುತ್ತಿದ್ದೇವೆ ಎಂಬುದನ್ನು ನೆನಪಿಡಿ.


Let’s write the exponentiation out: g^L_j

ಘಾತಾಂಕವನ್ನು ಬರೆಯೋಣ: g^L_j


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

ಈ ಅಲ್ಗಾರಿದಮ್‌ನ ಮುಖ್ಯ ಭಾಗವೆಂದರೆ ಸ್ಥಿರ ಸಂಖ್ಯೆಯ ಕಾರ್ಯಾಚರಣೆಗಳು.


If k_j = 0, computing g^L_j involves one squaring and g^H_j involves one multiplication; if k_j = 1, it’s the other way around.

k_j = 0 ಆಗಿದ್ದರೆ, g^L_j ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದರಲ್ಲಿ ಒಂದು ವರ್ಗೀಕರಣ ಮತ್ತು g^H_j ಒಂದು ಗುಣಾಕಾರವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ; k_j = 1 ಆಗಿದ್ದರೆ, ಅದು ಇನ್ನೊಂದು ರೀತಿಯಲ್ಲಿರುತ್ತದೆ.


Implementing the Montgomery ladder in Python

ಪೈಥಾನ್‌ನಲ್ಲಿ ಮಾಂಟ್ಗೊಮೆರಿ ಏಣಿಯನ್ನು ಅಳವಡಿಸುವುದು