קריפטוגרפיה
עיקרון קרקהופס

בכל מערכת הצפנה קיים מפתח שאותו יש לשמור בסוד מוחלט. גילוי המפתח על ידי צד שלישי גורם להצפנה להיכשל כיוון שעם מפתח זה היריב יכול לפענח את המידע באותה הדרך שהמקבל עושה זאת, לכן סודיות המפתח היא קריטית ביותר. השאלה שעולה היא האם כדאי להסתיר גם את אלגוריתם ההצפנה כנדבך נוסף של ביטחון. במאה ה-17 ענה על שאלה זו אוגוסטה קרקהופס במספר עקרונות צבאיים שפיתח שהחשוב שבהם הוא ששיטת הצפנה אינה חייבת להיות סודית ורצוי אפילו שלא תהיה. תמיד קיימת אפשרות שתיפול לידי האויב, לכן ביטחונה אינו אמור להסתמך על סודיותה אלא אך ורק על סודיות המפתח, כך שאם אלגוריתם ההצפנה אכן יפול לידי האויב שזהו סיכון ריאלי, לא יסכן הדבר את ביטחון המידע שהוצפן, כל עוד המפתח לא נחשף. שנים מאוחר יותר ניסח שאנון מחדש את העיקרון בביטוי "האויב מכיר את המערכת שבשימוש" שמהווה מוסכמה ידועה בקריפטוגרפיה. ההנחה הבסיסית בניתוח מערכת הצפנה היא שפרטי אלגוריתם ההצפנה ידועים ומפורסמים לכל, אף על פי שהנחה זו לא תמיד נכונה.
יתרה מזו הרבה יותר קשה לשמר סודיות אלגוריתם הצפנה מאשר מפתח הצפנה מכמה סיבות:
קל יותר לשמור על סודיות מחרוזת קצרה של כמה בתים של מפתח לעומת פירוט מהלכי האלגוריתם שיכול להיות ארוך (כמה מאות בתים או יותר).
פרטי האלגוריתם עלולים לדלוף אם על ידי גורם כלשהו מבפנים, על ידי הנדסה הפוכה או ריגול תעשייתי. מפתח הצפנה אינו פגיע להנדסה הפוכה.
במקרה של חשיפת המפתח, כל שנדרש הוא להחליף מפתח, לעומת זאת במקרה של חשיפת אלגוריתם יש צורך להחליף את האלגוריתם כולו. באנלוגיה למנעול צירופים הסתמכות אך ורק על מנגנון נעילה סודי, אינה חכמה כיוון שאם נחשף המנגנון המנעול כולו הופך לחסר תועלת. מאידך אם התגלה צירוף סודי, יש צורך רק להחליף צירוף על מנת להבטיח סודיות, אין צורך בקניית מנעול חדש.
מטעמי ביטחון לעיתים יש צורך ואף חובה לרענן את סודיות ההצפנה כמו החלפת מפתחות סודיים לעיתים קרובות. במקרה של אלגוריתם הצפנה המוטמע בתוכנה בארגון גדול, זה לא יהיה מעשי לייצר עבור כל אחד מחברי הארגון אלגוריתם שונה בכל פעם שהוא צריך להצפין מידע. לעומת זאת קל לייצר מפתח הצפנה שונה עבור כל אחד מהם ואילו התוכנה תהיה זהה לכולם.
כאשר אלגוריתם ההצפנה אינו סודי הוא נהנה מביקורת מומחים ולכן סביר להניח שהוא יהיה יותר טוב. שנים של ניסיון מלמדים שפיתוח אלגוריתם הצפנה מורכב ומועד לכשלונות. לכן אמון הציבור באלגוריתם מסתמך על העובדה שנבדק ביסודיות על ידי מומחים במשך תקופה ארוכה.
כאשר תתגלנה פרצות עדיף שהדבר יקרה על ידי "האקרים מוסריים" מאשר שהדבר ישמר בסוד לצורך פגיעה זדונית במשתמשי האלגוריתם. בדרך כלל מקובל באקדמיה שמי שמגלה פרצות מתריע מראש לארגונים הרלוונטיים לפני שהוא מפרסם את ממצאיו לכלל הציבור כדי לספק שהות למפתחי האלגוריתם לתקן את הליקוי.
אלגוריתמים פתוחים קלים יותר לתיקנון מה שמקל על הפצה שלהם בקנה מידה גדול. מלבד זאת אנשי התעשייה וגופי התקינה נמנעים באופן גורף משימוש באלגוריתמים שלא עברו את מבחן הזמן וביקורת ציבורית נאותה וכן אלגוריתמים המוגנים בזכויות יוצרים או בפטנטים.
למרות הסיבות המשכנעות, הרעיון של קריפטוגרפיה פתוחה לפי עקרון קרקהופס לא תמיד מתקבל ואנשים נוקטים לפעמים בגישה של ביטחון באמצעות עמימות, ופעם אחר פעם לאורך ההיסטוריה רואים את ההשלכות ההרסניות של גישה זו. אלגוריתמים מוצלחים הם כאלו שזכו לביקורת ציבורית, במיוחד לעיון מדוקדק בידי אנליסטים ומומחי הצפנה מסביב לעולם. קיים מגוון עשיר של אלגוריתמים טובים שאומצו על ידי ארגוני תקינה בינלאומיים, הם חופשיים לשימוש ואינם מוגנים בפטנטים כלשהם. AES הוא דוגמה טובה לאלגוריתם שנבדק היטב על ידי מומחים רבים ונבחר מבין מספר מועמדים לאחר תחרות פתוחה שנמשכה כמה שנים.
בעבר נטו מפתחי הצפנים לשמור את פרטי אלגוריתם ההצפנה בסוד. אולם גם בהצפנה המודרנית אפשר לראות מקרים שבהם אלגוריתמי הצפנה נשמרו בסוד. בשנת 1993 פרסמה ממשלת ארצות הברית תקן הצפנה בשבב Clipper שהשתמש במספר אלגוריתמים סודיים, ביניהם צופן סימטרי בשם Skipjack. השבב בין היתר נועד לאפשר לרשויות גישה לתוכן המוצפן באמצעות דלת אחורית - מפתח נוסף אותו קיבלו בעת ייצור השבב. השימוש בדלת אחורית וסודיות האלגוריתמים גרמו להסתייגות רבה בציבור והפרויקט לא התקבל, במיוחד לאחר שפורסמו אלטרנטיבות טובות כמו PGP. בסופו של דבר נחשפו פרטי אלגוריתם סקיפג'ק לידיעת הציבור. צופן זרם RC4 היה סוד מסחרי כשהומצא ב-1987 על ידי רונלד ריבסט במעבדות RSA. אולם בדרך כלשהי הצליח מישהו להנדס לאחור את האלגוריתם ופרטיו דלפו באופן אנונימי לרשת האינטרנט והפכו במהרה לנחלת הכלל. דוגמה אחרת היא אלגוריתם ההצפנה A5/1 ששימש בעבר בתקן GSM שהיה סודי וגרם למבוכה רבה כאשר התברר לאחר הנדסה לאחור שהוא חלש באופן משמעותי. הדעה הרווחת היא שמדינות אחדות החברות בגוש האירופי עמדו על כך שהאלגוריתם יוחלש במכוון.