קריפטוגרפיה
קריפטואנליזה

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