ניתוח תדירויות

פילוג אותיות טיפוסי בשפה האנגלית. צפנים חלשים לא ממסכים היטב את הפילוג והדבר עשוי להיות מנוצל לטובת המפענח המעוניין לקרוא הודעה מוצפנת.

בקריפטוגרפיה, ניתוח תדירות הוא מעקב אחר שכיחות אותיות או שכיחות קבוצות אותיות בטקסט מוצפן. השיטה משמשת כעזר בפענוח טקסטים המוצפנים בצפנים קלאסיים.

== ניתוח תדירות עבור צפני החלפה פשוטים ==

בצופן החלפה פשוט, כל אות בטקסט המקור מוחלפת באות אחרת. כל אות מסוימת בטקסט המקור תמיד תהפוך לאותה אות בטקסט המוצפן. למשל, כל ה-<tt>e</tt> יומרו ל-<tt>X</tt>. מכיוון ש-e היא האות הנפוצה ביותר בשפה האנגלית, טקסט מוצפן שמכיל הרבה <tt>X</tt> עשוי לרמז למנתח צפנים ש-<tt>X</tt> מייצג <tt>e</tt>.

באמצעות ניתוח תדירות ראשית מחשבים את תדירות אותיות הטקסט המוצפן ואז מקשרים ניחושים של אותיות בטקסט המקור עמם. יותר אותיות <tt>X</tt> בטקסט המוצפן מרמזים שהאות <tt>X</tt> מתייחסת לאות <tt>e</tt> בטקסט המקור, אולם אין הדבר מובטח. הסיבה היא ש־<tt>t</tt> וכן <tt>a</tt> הן גם כן אותיות נפוצות באנגלית כך שהאות <tt>X</tt> עשויה להיות אחת מאותיות אלו גם כן. אין זה סביר ש־<tt>X</tt> תקושר עם <tt>z</tt> או <tt>q</tt> שהן פחות שכיחות. מכל האמור עולה כי מנתח צפנים עשוי להזדקק למספר צירופי מיפוים בין אותיות טקסט מוצפן לבין אותיות טקסט רגיל.

שימוש מורכב יותר בסטטיסטיקה עשוי להתרחש, כאשר מתחשבים בתדירות של זוגות אותיות וכן שלשות וכך הלאה. הדבר נעשה על מנת לספק יותר מידע למנתח הצפנים, למשל, האות <tt>Q</tt> והאות <tt>U</tt> כמעט תמיד מופיעות יחד כך ש־<tt>Q</tt> ראשונה ו־<tt>U</tt> שנייה, אף על פי ש־<tt>Q</tt> עצמה נדירה.

=== דוגמה ===


נניח שאיב יירטה את השדר המוצפן שלהלן. ידוע שהשדר מוצפן באמצעות צופן החלפה פשוט:
<div style="direction: ltr;">

 LIVITCSWPIYVEWHEVSRIQMXLEYVEOIEWHRXEXIPFEMVEWHKVSTYLXZIXLIKIIXPIJVSZEYPERRGERIM
 WQLMGLMXQERIWGPSRIHMXQEREKIETXMJTPRGEVEKEITREWHEXXLEXXMZITWAWSQWXSWEXTVEPMRXRSJ
 GSTVRIEYVIEXCVMUIMWERGMIWXMJMGCSMWXSJOMIQXLIVIQIVIXQSVSTWHKPEGARCSXRWIEVSWIIBXV
 IZMXFSJXLIKEGAEWHEPSWYSWIWIEVXLISXLIVXLIRGEPIRQIVIIBGIIHMWYPFLEVHEWHYPSRRFQMXLE
 PPXLIECCIEVEWGISJKTVWMRLIHYSPHXLIQIMYLXSJXLIMWRIGXQEROIVFVIZEVAEKPIEWHXEAMWYEPP
 XLMWYRMWXSGSWRMHIVEXMSWMGSTPHLEVHPFKPEZINTCMXIVJSVLMRSCMWMSWVIRCIGXMWYMX

</div>
בדוגמה זו, אותיות לועזיות גדולות ישמשו לייצוג הטקסט המוצפן. אותיות קטנות ישמשו ליצוג הטקסט הרגיל (או אותיות שהם בגדר ניחוש לטקסט הרגיל). הסימון <tt>X</tt>~<tt>t</tt> ישמש כדי לבטא את הניחוש שהאות המוצפנת <tt>X</tt> מייצגת את האות הרגילה <tt>t</tt>.

איב יכולה להשתמש בניתוח תדירות כדי לפענח את ההודעה על פי הקווים הרעיוניים הבאים:

ספירה של האותיות בכתב המוצפן מראה ש-<tt>I</tt> היא האות השכיחה ביותר, ש-<tt>XL</tt> הוא צירוף שתי האותיות השכיח ביותר וכן ש-<tt>XLI</tt> הוא צירוף שלוש האותיות השכיח ביותר. <tt>e</tt> היא האות השכיחה ביותר בשפה האנגלית, <tt>th</tt> צירוף שתי האותיות השכיח ביותר וכן <tt>the</tt> צירוף שלוש האותיות השכיח ביותר בשפה. הדבר מחזק את האפשרות ש-<tt>X</tt>~<tt>t</tt>, <tt>L</tt>~<tt>h</tt> וכן ש-<tt>I</tt>~<tt>e</tt>. האות השנייה הכי נפוצה היא <tt>E</tt>; מאחר שהאותיות התדירות ביותר בשפה הן <tt>e</tt> ו <tt>t</tt> אך הן כבר נמצאו, איב מציעה ש-<tt>E</tt>~<tt>a</tt> (שכן a היא האות השלישית הכי תדירה בשפה).

לפי הנחות אלו מקבלים את ההודעה המפוענחת הבאה:

<div style="direction: ltr;">

 heVeTCSWPeYVaWHaVSReQMthaYVaOeaWHRtatePFaMVaWHKVSTYhtZetheKeetPeJVSZaYPaRRGaReM
 WQhMGhMtQaReWGPSReHMtQaRaKeaTtMJTPRGaVaKaeTRaWHatthattMZeTWAWSQWtSWatTVaPMRtRSJ
 GSTVReaYVeatCVMUeMWaRGMeWtMJMGCSMWtSJOMeQtheVeQeVetQSVSTWHKPaGARCStRWeaVSWeeBtV
 eZMtFSJtheKaGAaWHaPSWYSWeWeaVtheStheVtheRGaPeRQeVeeBGeeHMWYPFhaVHaWHYPSRRFQMtha
 PPtheaCCeaVaWGeSJKTVWMRheHYSPHtheQeMYhtSJtheMWReGtQaROeVFVeZaVAaKPeaWHtaAMWYaPP
 thMWYRMWtSGSWRMHeVatMSWMGSTPHhaVHPFKPaZeNTCMteVJSVhMRSCMWMSWVeRCeGtMWYMt

</div>

תוך שימוש בניחושים התחלתיים אלו, איב יכולה לאתר דפוסים שמתאימים לבחירותיה, כמו "<tt>that</tt>".

יתר על כן, דפוסים אחרים מעלים אפשרויות ניחוש נוספות: "<tt>Rtate</tt>" עשוי להיות "<tt>state</tt>" ("מדינה" בתרגום מאנגלית). משמעות הדבר היא ש-<tt>R</tt>~<tt>s</tt>.
באמצעות ניחושים אלה, איב יכולה לאתר דפוסים שמאשרים את בחירותיה. למשל, "<tt>atthattMZe</tt>" עשוי להיות "<tt>atthattime</tt>" ("באותו הזמן" בתרגום מאנגלית). כך מקבלים <tt>M</tt>~<tt>i</tt> וכן <tt>Z</tt>~<tt>m</tt>. בנוסף, "<tt>heVe</tt>" עשוי להיות "<tt>here</tt>" ("כאן" בתרגום מאנגלית), ומתקבלת ההחלפה <tt>V</tt>~<tt>r</tt>. לאחר הזנת הניחושים האלה איב מקווה שיפתח לה צוהר לפענוח שארית ההודעה. היא מקבלת כעת את ההודעה המפוענחת הבאה:
<div style="direction: ltr;">
 hereTCSWPeYraWHarSseQithaYraOeaWHstatePFairaWHKrSTYhtmetheKeetPeJrSmaYPassGasei
 WQhiGhitQaseWGPSseHitQasaKeaTtiJTPsGaraKaeTsaWHatthattimeTWAWSQWtSWatTraPistsSJ
 GSTrseaYreatCriUeiWasGieWtiJiGCSiWtSJOieQthereQeretQSrSTWHKPaGAsCStsWearSWeeBtr
 emitFSJtheKaGAaWHaPSWYSWeWeartheStherthesGaPesQereeBGeeHiWYPFharHaWHYPSssFQitha
 PPtheaCCearaWGeSJKTrWisheHYSPHtheQeiYhtSJtheiWseGtQasOerFremarAaKPeaWHtaAiWYaPP
 thiWYsiWtSGSWsiHeratiSWiGSTPHharHPFKPameNTCiterJSrhisSCiWiSWresCeGtiWYit
</div>
ניחושים אלה מרמזים אודות החלפות נוספות, ולבסוף מקבלים את טקסט המקור:
<div style="direction: ltr;">
 hereuponlegrandarosewithagraveandstatelyairandbroughtmethebeetlefromaglasscasei
 nwhichitwasencloseditwasabeautifulscarabaeusandatthattimeunknowntonaturalistsof
 courseagreatprizeinascientificpointofviewthereweretworoundblackspotsnearoneextr
 emityofthebackandalongoneneartheotherthescaleswereexceedinglyhardandglossywitha
 lltheappearanceofburnishedgoldtheweightoftheinsectwasveryremarkableandtakingall
 thingsintoconsiderationicouldhardlyblamejupiterforhisopinionrespectingit
</div>

בדוגמה זו, ניחושיה של איב היו כולם נכונים. ברם, אין זה המצב תמיד. השינוי בסטטיסטיקת שכיחות האותיות עבור טקסטים שונים, עשוי לגרור ניחושים התחלתיים שגויים. ייתכן שיהיה צורך לפעול בשיטת ה-backtracking כדי למצוא ניחושים שגויים או כדי לנתח את הסטטיסטיקה הנתונה, באופן מעמיק יותר.

קיימת אפשרות שטקסט המקור לא יקיים את הפילוג הצפוי של תדירות האותיות, הודעות קצרות יראו יותר סטייה מן הפילוג הממוצע מאשר הודעות ארוכות. קיימת אפשרות לייצר טקסטים מלאכותיים שעברו תהליך של השמטת אותיות מסוימות. צורת כתיבה שבה מיישמים זאת היא הליפוגרמה.

== היסטוריה ושימוש ==
העמוד הראשון מכתביו של [[אל-כינדי מהמאה ה-9 בנוגע לפענוח הודעות מוצפנות]]

ההסבר הראשון שניתן לניתוח תדירות ניתן על ידי המתמטיקאי הערבי, בן המאה ה-9, אל-כנדי, או בשמו המלא, אבו יוסף יעקוב בן אסחאק אל-סבאח אל-כנדי. ייתכן שלימוד מעמיק של הקוראן הוביל לראשונה לתפישה שלשפה הערבית יש תדירות אותיות אופיינית.

השימוש בניתוח תדירות היה כה נפוץ בתקופת הרנסאנס במדינות אירופה שמנתחי צופן פיתחו מספר שיטות להתגבר על כך. בין השיטות:
* שימוש ב"הומופונים"; מספר חלופות לאותיות הנפוצות ביותר, בצפנים שאינם נחשבים צפני החלפה מונואלפביתיים
* החלפה פוליאלפביתית כלומר שימוש במספר אלפביתים כמו בצופן ויז'נר
* החלפה פוליגרפית כלומר זוגות או שלשות של אותיות בטקסט המקור מוחלפות כיחידה אחת; דוגמה לכך הוא צופן פלייפייר, שהומצא על ידי צ'ארלס ויטסטון באמצע המאה ה-19.

החיסרון של כל הניסיונות להביס את התקפות ניתוח התדירות היא הגדלת המורכבות של שיטות הקידוד והפענוח, שמובילה לטעויות. הבריטים דחו את צופן פלייפייר משום שהיה מסובך מדי ללימוד עבור הנספחים.

מכונות הרוטורים של המחצית הראשונה של המאה ה-20 (למשל מכונת האניגמה), היו חסינות בפני התקפות ניתוח תדירות פשוטות. ברם, סוגים אחרים של התקפות סייעו בפענוח הודעות מוצפנות ממכונות אלו.

ניתוח תדירות דורש רק הבנה בסיסית בסטטיסטיקה של שפת טקסט המקור וכן מעט יכולת לפתור בעיות. אם הניתוח מבוצע ידנית דרושה סבלנות ויכולת לתחזק רשימות של אותיות. במהלך מלחמת העולם השנייה גייסו האמריקאים והבריטים מפענחי צפנים על ידי פרסום של תשבצים בעיתונים ועריכת תחרויות לגילוי הפותר המהיר ביותר. מספר מהצפנים ששימשו את מדינות הציר פוצחו באמצעות ניתוח תדירות (למשל, חלק מהצפנים הקונסולריים שהיו בשימוש היפנים, ראו עוד בפיצוח האניגמה). שיטות מכניות לספירת אותיות וניתוח סטטיסטי היו בשימוש לראשונה במלחמת העולם השנייה, כנראה על ידי מודיעין האותות של הצבא האמריקאי (ה-SIS). כיום תוכנות מחשב יכולות לבצע ניתוח תדירות מלא בשניות. באמצעות מחשבים מודרניים, צפנים קלאסיים לא מספקים עוד כל הגנה על מידע חסוי.

== ניתוח תדירות בספרות ==
חלק מהכתב המוצפן ב"תעלומת הדמיות המרקדות" - הפענוח המפורסם ביותר של [[שרלוק הולמס המסופר בספר ההרפתקה של הדמויות המרקדות]]

ניתוח תדירות תואר בספרות על ידי אדגר אלן פו, ארתור קונאן דויל וז'ול ורן.

== מקורות ==
<div style="direction: ltr;">
* Helen Fouché Gaines, "Cryptanalysis", 1939, Dover. 
* Ibraham A. “Al-Kindi: The origins of cryptology: The Arab contributions”, Cryptologia, 16(2) (April 1992) pp. 97–126.
* Abraham Sinkov, "Elementary Cryptanalysis : A Mathematical Approach", The Mathematical Association of America, 1966. .
</div>

==ראו גם==
* שכיחות אותיות בעברית

==קישורים חיצוניים==
* [https://web.archive.org/web/20200117012608/http://textalyser.net/ כלי לניתוח תדירות של מילים]
* [https://web.archive.org/web/20040603075055/http://www.data-compression.com/english.html התפלגויות בטקסט אנגלי] 
* [http://www.qamus.org/wordlist.htm תדירות מילים] 
* [https://web.archive.org/web/20110519213629/http://scottbryce.com/cryptograms/stats.htm מידע סטטיסטי נוסף] 
* [http://www.characterfrequencyanalyzer.com מנתח תדירות אותיות מקוון בשפות שונות]

קטגוריה:תקיפות קריפטוגרפיות
קטגוריה:בלשנות חישובית