one time pad
one time pad הינה שיטת הצפנה בה שני אנשים חולקים במשותף מחרוזת אקראית. כעת, אם הראשון רוצה להעביר הודעה הוא מעביר את ה xor של ההודעה עם המחרוזת האקראית. מקבל ההודעה מבצע xor נוסף וכך משחזר את ההודעה. כל עוד משתמשים במחרוזת האקראית להעברת הודעה יחידה אזי מי שמאזין לקו התקשורת ושומע את ההודעה המוצפנת לא יכול לשחזר את ההודעה. הסיבה לכך היא שמכיוון שהוגרה מחרוזת אקראית, כל רצף יכול להיות מועבר על הקו וכל רצף באותו סיכוי. דוגמא (קצת שונה). תחשוב שאתה עובד מודולו 10, ורוצה להעביר מספר לחבר שלך, שניכם הגרלתם מספר שידוע רק לכם. כעת אם אתה רוצה להעביר את 7 אתה מעביר את 7 ועוד המספר הזה מודולו 10. נניח כי המספר המוגרל היה 4, ולכן העברת 1. מי שקורא את ההודעה המוצפנת רואה 1, וכעת ה 1 הזה יכל להגיע מכל מספר באותה הסתברות (כי לכל הודעה בין 0 ל 9 יש מספר, כל שסכומם הוא 1). בכל מקרה, זה פחות או יותר הרעיון. אם אתה רוצה דעת יותר, אז יש הרבה מאוד אתרים על זה. למשהו יותר מעמיק, אז יש גרסת pdf של הספר handbook of applied cryptography שניתנת להורדה, או תחפש באתרים של קורסים. http://www.cacr.math.uwaterloo.ca/hac/