בכל מערכת הצפנה קיים מפתח שאותו יש לשמור בסוד מוחלט. גילוי המפתח על ידי צד שלישי גורם להצפנה להיכשל כיוון שעם מפתח זה היריב יכול לפענח את המידע באותה הדרך שהמקבל עושה זאת, לכן סודיות המפתח היא קריטית ביותר. השאלה שעולה היא האם כדאי להסתיר גם את אלגוריתם ההצפנה כנדבך נוסף של ביטחון. במאה ה-17 ענה על שאלה זו אוגוסטה קרקהופס במספר עקרונות צבאיים שפיתח שהחשוב שבהם הוא ששיטת הצפנה אינה חייבת להיות סודית ורצוי אפילו שלא תהיה. תמיד קיימת אפשרות שתיפול לידי האויב, לכן ביטחונה אינו אמור להסתמך על סודיותה אלא אך ורק על סודיות המפתח, כך שאם אלגוריתם ההצפנה אכן יפול לידי האויב שזהו סיכון ריאלי, לא יסכן הדבר את ביטחון המידע שהוצפן, כל עוד המפתח לא נחשף. שנים מאוחר יותר ניסח שאנון מחדש את העיקרון בביטוי "האויב מכיר את המערכת שבשימוש" שמהווה מוסכמה ידועה בקריפטוגרפיה. ההנחה הבסיסית בניתוח מערכת הצפנה היא שפרטי אלגוריתם ההצפנה ידועים ומפורסמים לכל, אף על פי שהנחה זו לא תמיד נכונה.
יתרה מזו הרבה יותר קשה לשמר סודיות אלגוריתם הצפנה מאשר מפתח הצפנה מכמה סיבות:
למרות הסיבות המשכנעות, הרעיון של קריפטוגרפיה פתוחה לפי עקרון קרקהופס לא תמיד מתקבל ואנשים נוקטים לפעמים בגישה של ביטחון באמצעות עמימות, ופעם אחר פעם לאורך ההיסטוריה רואים את ההשלכות ההרסניות של גישה זו. אלגוריתמים מוצלחים הם כאלו שזכו לביקורת ציבורית, במיוחד לעיון מדוקדק בידי אנליסטים ומומחי הצפנה מסביב לעולם. קיים מגוון עשיר של אלגוריתמים טובים שאומצו על ידי ארגוני תקינה בינלאומיים, הם חופשיים לשימוש ואינם מוגנים בפטנטים כלשהם. AES הוא דוגמה טובה לאלגוריתם שנבדק היטב על ידי מומחים רבים ונבחר מבין מספר מועמדים לאחר תחרות פתוחה שנמשכה כמה שנים.
בעבר נטו מפתחי הצפנים לשמור את פרטי אלגוריתם ההצפנה בסוד. אולם גם בהצפנה המודרנית אפשר לראות מקרים שבהם אלגוריתמי הצפנה נשמרו בסוד. בשנת 1993 פרסמה ממשלת ארצות הברית תקן הצפנה בשבב Clipper שהשתמש במספר אלגוריתמים סודיים, ביניהם צופן סימטרי בשם Skipjack. השבב בין היתר נועד לאפשר לרשויות גישה לתוכן המוצפן באמצעות דלת אחורית - מפתח נוסף אותו קיבלו בעת ייצור השבב. השימוש בדלת אחורית וסודיות האלגוריתמים גרמו להסתייגות רבה בציבור והפרויקט לא התקבל, במיוחד לאחר שפורסמו אלטרנטיבות טובות כמו PGP. בסופו של דבר נחשפו פרטי אלגוריתם סקיפג'ק לידיעת הציבור. צופן זרם RC4 היה סוד מסחרי כשהומצא ב-1987 על ידי רונלד ריבסט במעבדות RSA. אולם בדרך כלשהי הצליח מישהו להנדס לאחור את האלגוריתם ופרטיו דלפו באופן אנונימי לרשת האינטרנט והפכו במהרה לנחלת הכלל. דוגמה אחרת היא אלגוריתם ההצפנה A5/1 ששימש בעבר בתקן GSM שהיה סודי וגרם למבוכה רבה כאשר התברר לאחר הנדסה לאחור שהוא חלש באופן משמעותי. הדעה הרווחת היא שמדינות אחדות החברות בגוש האירופי עמדו על כך שהאלגוריתם יוחלש במכוון.
קריפטואנליזה.
מטרת הקריפטואנליזה היא מציאת נקודות תורפה בסכמות הצפנה בפרט ובמערכות אבטחת מידע בכלל. קיימת מעין תחרות סמויה בין ממציאי האלגוריתמים לבין האנליסטים שמנתחים אותם. התפתחות הקריפטוגרפיה המודרנית נעשית בשני מסלולים מקבילים - התפתחות של שיטות הצפנה מתקדמות יותר ומאידך התפתחות שיטות פיצוח החושפות חולשות בשיטות אילו וחוזר חלילה. די בהוכחה תאורטית שאלגוריתם הצפנה ניתן לפיצוח בכמות עבודה נמוכה משמעותית מזו שהצהירו עליה מפתחי האלגוריתם או בכמות עבודה נמוכה במידה ניכרת מכוח גס כדי להוציאו מכלל שימוש. מפתחים נדרשים להתמודד עם שיטות פריצה חדשות שמתגלות והם נאלצים בעקבות כך להוציא גרסאות משופרות העמידות בפני ההתקפות שהתגלו.
קריפטואנליזה של מערכת הצפנה מתחלקת לכמה מודלים מהקל אל הכבד:
שתי ההתקפות הראשונות נחשבות להתקפות פאסיביות במובן שלמתקיף אין שליטה על תוכן המידע שהשיג לפני שהוא מתחיל בהתקפה או במהלכה. לעומת זאת שתי ההתקפות האחרונות נקראות אקטיביות במובן שהיריב מסוגל להתערב בנעשה ברשת לשלוח או לשנות מסרים כרצונו וכן הוא יכול באופן אדפטיבי בהתאם לתוצאות קודמות לבקש הצפנה או פענוח של כל טקסט אחר שיעלה בדעתו מלבד הטקסט המוצפן שברצונו לפצח. קל להבין ששתי ההתקפות הראשונות די מעשיות, אולם קשה להבין בשתי האחרונות כיצד מוענקת ליריב עוצמה כזו. אולם לעיתים קרובות התקפות מסוג זה אפשריות נגד מערכות הצפנה בשל העובדה שהתקשורת נעשית בין מחשבים ללא התערבות אנושית ולא תמיד המערכות מיושמות בדרך בטוחה ואילו הן הפרצות שפותחות פתח להתקפות מסוג זה.
עמידות מערכת הצפנה כנגד ההתקפות המתוארות משתנה בהתאם לשיקולים רבים בהם: אופי היישום, דרישות מערכת, יעילות, מידת האיום ואילוצים אחרים כמו הצורך בתאימות. מצד אחד העדיפות היא שמערכת ההצפנה תהיה עמידה נגד המודל החזק ביותר אולם המחיר הוא ירידה בתפוקה וביעילות. לכן חשוב להעריך בדיוק רב ככל האפשר את מידת האיום ובהתאם לכך לקבוע את רמת הביטחון של המערכת. בנוסף חשוב להשוות בין רמת ביטחון של כל מרכיבי המערכת, כי ההנחה היא שהמתקיף תמיד יבחר בחוליה החלשה ביותר של המערכת להתקפה.
כדי לנסח היטב הגדרת ביטחון של מערכת הצפנה יש צורך להגדיר תחילה מה הם היעדים, מה מידת האיום ומה הם המשאבים הזמינים. אפשר לתת הגדרה כללית ביותר כדלהלן:
במילה פונקציה מתכוונים באופן כללי לכך שהיריב לא יכול ללמוד דבר מהטקסט המוצפן שיכול לעזור לו לגלות משהו מועיל בנוגע לטקסט הקריא או מפתח ההצפנה. זהו הניסוח הכי קרוב להגדרת ביטחון סמנטי ובאופן כללי מספק חלקית, כי יש להביא בחשבון מספר היבטים. הגדרה יותר מדויקת צריכה להיות בסגנון: שיטת הצפנה המיועדת למשימה ספציפית תהיה בטוחה אם לא קיים יריב בעל עוצמה מוגדרת מראש שיכול להשיג שבירה של המערכת בהתאם להגדרה ביחס למשימה המוצהרת.
התקפה דיפרנציאלית.
פיתוח אלגוריתם הצפנה בטוח הוא משימה קשה, ומורכבותו לא בהכרח מעידה על ביטחונו. קיימות שיטות פיצוח טובות שהתפתחו במרוצת השנים שאיתן אפשר לפצח אלגוריתמים קריפטוגרפיים מסוגים שונים. בשנות ה-80 של המאה העשרים פותחה הקריפטואנליזה הדיפרנציאלית על ידי אלי ביהם ועדי שמיר. זוהי קריפטואנליזה גנרית רבת עוצמה כנגד כל סוגי הצפנים הסימטריים, היא הוכיחה את עצמה בשבירת צפנים ידועים (כמו FEAL) ומקובל כיום להתייחס אליה כאל מדד ביטחון עבור כל צופן סימטרי מודרני. התקפה דיפרנציאלית היא סוג של התקפת גלוי-נבחר הבודקת הפרשים ספציפיים בין קלט הפונקציה המובילים להפרשים ספציפיים בפלט בשיעור גבוה מן הצפוי מפרמוטציה אקראית. לדוגמה עבור בלוק באורך formula_1 סיביות, אומרים שהדיפרנציאל formula_2 יופיע בהסתברות formula_3, אם בהינתן קלטים אקראיים formula_4 ו-formula_5 באורך formula_1 סיביות כל אחד, המקיימים formula_7 ונתון מפתח אקראי כלשהו formula_8, ההסתברות שהדיפרנציאל של הפונקציה שלהם הוא formula_9 היא formula_3. מהיבט תאורטי במקרה של פונקציה אקראית אמיתית לא אמורים להופיע דיפרנציאלים בהסתברות גבוהה מ-formula_11. אם הדיפרנציאלים של צופן בלוקים מסוים גבוהים משיעור זה באופן משמעותי הוא אינו נחשב לתמורה פסידו-אקראית. עם דיפרנציאלים רבים כאלו המושגים אם על ידי ניתוח מדוקדק של הצופן או על ידי הכנה מוקדמת באמצעות כוח גס, אפשר לחלץ את מפתח ההצפנה. אף על פי שההתקפה יושמה לראשונה נגד DES למרבה ההפתעה לא הביאה לשבירתו. מאוחר יותר התגלה שמפתחי DES היו מודעים להתקפה הדיפרנציאלית אך שמרו זאת בסוד. הם בחרו את ערכי תיבות ההחלפה שלו בצורה כזו שיהיה עמיד נגדה. צפנים אחרים כמו FEAL לא היו בני מזל כמוהו ולא עמדו במבחן.
התקפה ליניארית.
קריפטואנליזה רבת עוצמה אחרת שפותחה על ידי מיצורו מצואי בראשית שנות התשעים של המאה העשרים, היא התקפה גנרית מסוג גלוי-ידוע המתמקדת ביחסים הליניאריים (או רמת המתאם) בין קלט הפונקציה לבין הפלט. למשל עבור קלט אקראי formula_12 ומפתח formula_8 הסיביות במיקומים formula_14 עד formula_15 של formula_12 והמיקומים formula_17 עד formula_18 של הפלט formula_19 של הפונקציה formula_20 מכילות הטיה formula_3 אם מתקיים formula_22. כאשר formula_23 הוא פלט הפונקציה והפרמטרים formula_24 מייצגים סיביות במיקומים ספציפיים של הקלט והפלט בהתאמה. עבור פונקציה אקראית אמיתית ההטיה הצפויה היא 0.5. אם עבור צופן סימטרי מסוים מתגלית הטיה גבוהה יותר משיעור זה אפילו במעט יביא הדבר לשבירתו המוחלטת. עדיין דרושה כמות רבה של זוגות טקסטים ידועים וטקסטים מוצפנים המתאימים להם.
אורך מומלץ של מפתחות הצפנה.