פנקס חד-פעמי נחשב מושלם מהיבט תאורטי אם משתמשים בו נכון, אף על פי שהוא מכיל מספר חסרונות. אבל הבעיה העיקרית שבו היא שהוא אינו פרקטי כיוון שיש להכין פנקס חדש המכיל מספרים אקראיים בכמות מספקת בכל פעם שצריכים להצפין משהו ובימינו שצריך להצפין כמויות עצומות של מידע הדבר פשוט בלתי אפשרי. מצד שני אפשר להתפשר על מחולל פסאודו-אקראי קריפטוגרפי "שמותח" גרעין אקראי אמיתי קצר שהוא המפתח הסודי במקרה זה, למחרוזת פסאודו-אקראית ארוכה לפי הצורך ולהשתמש בה במקום בפנקס החד-פעמי כדי להצפין את המסר. כאן מוותרים על סודיות מושלמת בתמורה ליעילות כיוון שהמחרוזת הזו אינה באמת אקראית כי היא נוצרה באמצעות אלגוריתם דטרמיניסטי.
קיים קשר הדוק בין מחוללים פסאודו-אקראיים לבין צפנים סימטריים. אף על פי שלא ניתנה הוכחה פורמלית לכך שמחולל פסאודו-אקראי קיים (מוכח באופן תאורטי) קיימים כיום מועמדים טובים שחלקם שרדו את מבחן הזמן. קיימות שתי שיטות עיקריות לבניית מחולל פסאודו-אקראי הממחישות היטב את הקונפליקט הקיים בקריפטוגרפיה בין ביטחון ליעילות.
השיטה הראשונה היא שיטת אד הוק המכילה אוסף של פעולות ערבוב מסובכות המותאמות היטב לביצוע יעיל במחשב ואשר נראה על פניו שקשה "להתיר" או "לפרום" אותן. למרבה הפלא דווקא הצפנים המודרניים הנפוצים ביותר בראשם AES הם לא יותר מאשר אוסף פעולות אד הוק שאינן מוכחות תאורטית ובכל זאת דומה שמעשית בשטח הן מספקות את המטרה ולמרות קריפטואנליזה אינטנסיבית במשך שנים רבות לא נמצאו דרכים יעילות לפצח אותן.
השיטה השנייה היא שימוש בפונקציה המבוססת על בעיה מתמטית ידועה היטב כבעיה קשה שאין לה פתרון יעיל (אם כי אין הוכחה שלא קיים פתרון כזה). ישנן כמה שיטות כאלו כמו מחולל BBS המבוסס על בעיית פירוק לגורמים, אך המכנה משותף שלהן הוא שהן אינן מעשיות ולכן לא משתמשים בהן כיום.
יתרונות וחסרונות.
יתרונותיה של מערכת הצפנה סימטרית הם יעילותה וכוח המחשוב הזעום הדרוש ליישומה. להשגת ביצועים מרביים, מרבית האלגוריתמים הסימטריים ניתנים ליישום בחומרה על גבי שבבים ייעודיים. אחד ההיבטים החשובים בהערכת טיב אלגוריתם סימטרי, היא יכולת היישום בחומרה. על כן שמים דגש על פשטות ושימוש במספר מוגבל של פעולות אריתמטיות בסיסיות כדי לחסוך בזמן עיבוד יקר. בגרסאות ממוטבות, משתמשים בטבלאות איחזור (lookup table) במקום פעולות מתמטיות מורכבות, מה שמאפשר ביצועים טובים יותר. למשל אפשר ליישם את AES באמצעות טבלה אחת בגודל 4 קילובייט. לעומת זאת, מערכת א-סימטרית בדרך כלל מיישמת אריתמטיקה מודולרית במספרים בסדר גודל של אלפי ספרות והיא צורכת זמן עיבוד יקר ועל כן איטית ביותר. אפשר לומר שמערכת סימטרית מהירה יותר ממערכת א-סימטרית בפקטור של 10 לפחות.
החסרון העיקרי בצופן סימטרי היא העובדה שאם פונקציית ההצפנה דטרמיניסטית הרי שמתקבלים בלוקים מוצפנים זהים בכל פעם שמצפינים בלוקים קריאים זהים עם אותו מפתח. עובדה זו כשלעצמה עלולה להוות חיסרון כי מעט מידע נחשף לעיני המתקיף, דבר שרצוי למנוע. ישנן דרכים לעקוף בעיה זו על חשבון יעילות שיטות אילו נקראות מצבי הפעלה.
חיסרון נוסף של הצפנה סימטרית הוא העובדה שהטקסט המוצפן אינו מאומת. כלומר אין דרך למקבל לדעת אם לא נעשה שינוי כלשהו בטקסט המוצפן במהלך ההעברה אם בגלל תקלת תקשורת או בגלל שינוי זדוני שנעשה על ידי המתקיף על מנת לשבור את מערכת ההצפנה. מסיבה זו רצוי להוסיף שיטת אימות שתספק למקבל ערובה שהמידע שהתקבל אותנטי. מערכות הצפנה מודרניות משתמשות בשילוב של כלים האמורים כדי להבטיח סודיות ואותנטיות כאחד.
סוגי הצפנה.
ניתן לחלק את הצפנים סימטריים לשני סוגים עיקריים:
ההצפנה הקלאסית נקראת סימטרית כיוון שמפתח ההצפנה ומפתח הפענוח זהים. אולם מלבד החיסרון שבעובדה שהמפתח הסודי חייב להיות משותף לשולח ולמקבל, ההצפנה בוצעה על בלוקים קטנים והמפתח בדרך כלל היה קצר וקל לניחוש, מה שאיפשר ניתוח סטטיסטי. הצפנה סימטרית מודרנית החלה עם עבודתו של קלוד שאנון שניסח את התאוריה וברעיון של הורסט פייסטל, קריפטוגרף ומתמטיקאי של יבמ שפיתח את לוציפר בראשית 1970. הרעיונות של שאנון מהווים אבני יסוד לכל צופן סימטרי מודרני והם הרכבה של מספר פונקציות הצפנה חלשות כשלעצמן כגון החלפה וטרנספוזיציה במספר סבבים, כדי לקבל פונקציית הצפנה חזקה יותר. שילוב של החלפה מוסיף שיכול או ערבוב (Confusion) לצופן ואילו שילוב טרנספוזיציה (העתקה או הזזה) מוסיף פיזור (Diffusion) לצופן. הערבוב נועד לטשטש את הקשר שבין המפתח והצופן ככל האפשר ואילו פיזור נועד לסדר מחדש את סיביות הצופן כך שיתירות המסר המקורי לא תזלוג לצופן.
צופן בלוקים לעומת צופן זרם.
לאור העובדה שאפשר להפעיל צופן בלוקים בכל אחד ממצבי ההפעלה המדמים צופן זרם כמו OFB או CTR, עולה השאלה מה עדיף צופן בלוקים או צופן זרם? היתרונות של צופן זרם הם בפשטות ויעילות. צופן זרם מהיר בערך פי שניים מצופן בלוקים, אך למעט מקרים קיצוניים כמו חומרה מוגבלת משאבים, זה לא מהווה יתרון משמעותי. מאידך צופן זרם מוכר פחות טוב מצופן בלוקים שלו היסטוריה עשירה. בעוד שקיים מבחר של צפני בלוקים הנחשבים לבטוחים ויעילים, צפני זרם נוטים להיות חלשים יותר, נשברים בתדירות גבוהה יותר והאמון בהם חלש. הבדל נוסף נובע מרגישות צפני זרם לשימוש לא ראוי. ידוע ששימוש בזרם פסאודו-אקראי פעמיים להצפנת נתונים שונים מביא לשבירה מוחלטת של הצופן, עובדה שנוצלה לא אחת כדי לשבור מערכות הצפנה. צופן בלוקים אינו רגיש לבעיה זו. אפשר לייצר עם צופן בלוקים רצפים פסאודו-אקראיים בלתי תלויים בכל אורך רצוי.
צפנים מודרניים.
עם המצאת תקן ההצפנה הישן ההצפנה הסימטרית עברה מהפך משמעותי משיטות פרימיטיביות המכילות אוסף פעולות אד הוק מסובכות ככל האפשר שמסתמכות בעיקר על גאונות הממציא לשיטות הצפנה מודרניות המסתמכות על תאוריה מוצקה. לאחר המצאת DES המחקר האינטנסיבי הוביל לתאוריה רחבת היקף ונעשו מאמצים להוכיח ביטחון שיטות ההצפנה במונחים תאורטיים באמצעות מודל אסימפטוטי או מודל אורקל אקראי. DES ולוציפר שהיה אב קדמון שלו הכילו כמה רעיונות מהפכניים לאותה עת. לראשונה הומצא צופן סימטרי שהיה מבוסס על תאוריה מסוימת בעיקר על עבודתו של קלוד שאנון אבי תורת האינפורמציה. אחד החידושים בצופן זה היה רשת פייסטל על שם הממציא הורסט פייסטל. הרעיון של רשת פייסטל הוא הפיכת פונקציה פסאודו אקראית גנרית בלתי הפיכה ותלויית מפתח סודי לפרמוטציה כלומר לפונקציה הפיכה שזהו תנאי הכרחי בצופן סימטרי. חלק נכבד מהצפנים המודרניים מיישמים טכניקה זו. היתרון הוא שפעולות ההצפנה והפענוח זהות לגמרי ורק פרוצדורת הרחבת המפתח בסדר הפוך. בדרך זו המקום שתופס קוד הצופן קטן בחצי, שזה משמעותי במיוחד במימוש בחומרה. חידוש נוסף שהוכנס בצופן הוא שילוב של מספר פונקציות חלשות כשלעצמן באופן שמניב פונקציית הצפנה חזקה יותר על ידי מה שנקרא איטרציה, כלומר פונקציית ההצפנה מבוצעת באופן איטרטיבי, בכל קריאה הפלט מהקריאה הקודמת הופך קלט לקריאה הבאה, כך מספר פעמים עד שמגיעים לתוצאה הסופית של הצופן. בדרך זו משיגים את אפקט כדור השלג הרצוי. כל שינוי ולו הקל ביותר בטקסט המקורי מתפזר על פני לפחות מחצית מפלט הצופן לאחר מספר קטן של חזרות. למשל ב-DES פעולות הצופן מבוצעות 16 פעמים.
תקן ההצפנה המתקדם שהומצא בשנת 2000 ונמצא בשימוש נרחב כיום, נחשב לצופן מודרני בטוח ברמה הגבוהה ביותר. הצופן מיישם רשת החלפה-תמורה ומשלב מספר פעולות אריתמטיות בסיסיות בשדה סופי מורחב formula_107 והוא נחשב ליעיל מאוד בהשוואה לתקן הקודם.
דוגמאות לפעולות שניתן לשלבן כדי להגיע לצופן סימטרי חזק:
בטיחות כל צופן תלויה במפתח ההצפנה. ככל שהמפתח ארוך יותר ואקראי יותר כן מושגת בטיחות גבוהה יותר. אולם כיוון שבדרך כלל זה לא מעשי להכין מפתח ארוך, צפנים סימטריים משלבים פונקציית הרחבת מפתח. מטרת הפונקציה היא ליצור מפתח ארוך מתוך גרעין התחלתי קצר וסודי שהוא בעצם מפתח ההצפנה. הפונקציה מתפקדת בעיקרון כמחולל מספרים אקראיים. צפנים סימטריים רבים מתבססים על מחולל מספרים אקראיים כמקור להפקת מפתח באורך הרצוי.
קריפטואנליזה של צופנים סימטריים.
בשל ההיסטוריה הארוכה והעשירה של הצפנים הסימטריים הצטבר ידע נרחב וקיימות שיטות קריפטואנליזה או "התקפות" רבות. ההתקפות על צופן סימטרי מתחלקות למספר מודלים שהעיקריים שבהם מהקל אל הכבד הם;
יכולת הבחנה.