כאשר formula_48 ו-formula_49 הם שני ראשוניים גדולים, היא כנראה הדוגמה הטובה ביותר לפונקציה חד-כיוונית עם דלת צונחת. אפשר להשתמש בה להצפנה פשוט על ידי העלאה בריבוע של המסר ונטילת השארית לאחר חילוק ב-formula_50. קל לראות שבעוד שהעלאה בחזקה היא פעולה קלה הרי שהפעולה ההפוכה, בהינתן formula_51 למצוא formula_52 המקיים formula_53, קרי הוצאת שורש ריבועי מודולו שלם פריק היא בעיה קשה (למעשה עליה מבוססת הצפנת רבין). דלת הסתרים במקרה זה היא הגורמים הראשוניים formula_48 ו-formula_49 שכן ידוע שהוצאת שורש ריבועי מודולו מספר ראשוני היא פעולה קלה ומכאן הדרך לפתרון קלה כי אפשר לשלב את הפתרונות לשורשים הריבועיים של הגורמים הראשוניים formula_48 ו-formula_49 ובאמצעות משפט השאריות הסיני לקבל ארבעה פתרונות אפשריים לשורש ריבועי מודולו formula_50 מהם המקבל צריך לבחור את הפתרון הנכון.
מומחים סבורים שכאשר מחשבים קוונטיים מעשיים בקנה מידה גדול יהיו זמינים חלק מהבעיות, בעיקר פירוק לגורמים ולוגריתם בדיד תהיינה קלות לפתרון בזמן פולינומי או כמעט פולינומי, כתוצאה מכך מערכות הצפנה רבות כמו אילו המבוססות על RSA ודומיו למשל לא תהיינה בטוחות כלל. מסיבה זו גבר העניין בהצפנה פוסט-קוונטית. כלומר פונקציות חד-כיווניות שקושיין המשוער נותר בעינו אפילו בהינתן מחשב קוונטי כמו בעיית פענוח סינדרומי או בעיית הסריג.
תשתית מפתח ציבורי.
תשתית מפתח ציבורי (Public Key Infrastructure, בקיצור: PKI) מתארת ארכיטקטורת אבטחה הכוללת בין היתר שילוב טכנולוגיות מפתח ציבורי כמו פרוטוקול שיתוף מפתח, חתימה דיגיטלית והצפנה במטרה לאפשר התקשרות מאובטחת בין ישויות ברשת פתוחה הנגישה לכולם, כולל יריב פוטנציאלי. גם לאלגוריתם ההצפנה הטוב ביותר לא יהיה כל ערך לולא הייתה דרך בטוחה לשייך את המפתח הסודי לבעליו באופן בטוח. תשתית מפתח ציבורי אמורה להבטיח את הקשר הזה בין המפתח לבעליו.
ללא תשתית זו הדרך היחידה והבסיסית ביותר לאמת את זהות בעלי מפתח הצפנה היא זיהוי פיזי שלו באמצעי לא קריפטוגרפי כמו תעודת זהות ולאחר שזוהה אפשר לרשום את המפתח הציבורי שלו ולנהל איתו לאחר מכן התקשרות מאובטחת. לרוב דרך זו אינה מעשית כיוון שמפגש אישי לא תמיד אפשרי במיוחד כאשר המתקשרים רחוקים זה מזה. במקרה כזה הפתרון הוא צד שלישי. כלומר ניתן לפשט את תהליך האימות על ידי הקטנת אמינותו: למשל, לסמוך על אדם אחר בעל אמינות גבוהה שאימת את זהותו כשורה. ניתן להכליל את התהליך ולומר שמקבל המסמך יכול לסמוך על אמינות המפתח הציבורי של השולח אם קיימת שרשרת אנשים אשר וידאו זה את מפתחו של זה, כאשר המקבל בדק את זהותו ואמינותו של הראשון, והאחרון בשרשרת וידא את זהותו של השולח. ניתן להשיג מצב כזה בכמה דרכים:
בדרך כלל, אם כי זה לא חובה, תשתית מפתח ציבורי תכלול תעודת מפתח ציבורי (certificate) המיושמת לפי תקן כלשהו כמו X.509 או EMV ומכילה פרטים חיוניים למשתמש הקצה על מנת לאמת את זהות השרת אליו הוא מנסה להתחבר, או לעיתים לאפשר אימות דו כיווני של הלקוח מול השרת והשרת מול הלקוח. תעודת מפתח ציבורי הכרחית כאשר משתמש אחד מעוניין שתהיה לו היכולת להתקשר עם משתמשים רבים בצורה מאובטחת. בשיטה הסימטרית יהיה עליו להחזיק במפתחות סודיים משותפים בנפרד עבור כל משתמש אפשרי. מבחינה מעשית בהרבה רשתות זה כלל לא אפשרי, בייחוד כאשר הצדדים לא נפגשו מעולם. תעודת מפתח ציבורי מאפשרת למשתמש לסמוך על זהותו של הצד השני גם אם לא נפגש עמו, כל עוד הוא סומך על הגוף החתום בתעודה.
X.509.
תשתית מפתח ציבורי חייבת לספק הגדרות ברורות של נוהלי עבודה עם מפתח ציבורי. לוודא תקפות ותקינות תעודות בדרך בטוחה ומוסכמת על כל הצדדים. תקן X.509 הוא תקן פופולרי שמפרט שיטה לאימות מפתחות ציבוריים באמצעות עץ היררכי ובאמצעות שרת ייעודי. הוספת צומת (מפתח ציבורי) בעץ או מחיקתו, נעשית באמצעות אלגוריתם קריפטוגרפי שמבטיח את שלמות העץ כולו, כך שגורם לא מוסמך לא יוכל לשנות מפתח או למוחקו. מה שמאפשר למשתמשים לגיטימיים לקבל מידע אמין לגבי מפתחות ציבוריים של משתמשים אחרים בכל זמן נתון וכן לרשום מפתחות ציבוריים חדשים, או לבטל מפתחות שפג תוקפם או שנחשפו ואינם בטוחים עוד לשימוש. תשתית מפתח ציבורי מספקת כללי טיפול בכמה נושאים בעייתיים, ביניהם: ניהול זכויות ביטול ורישום מפתחות, הגדרת מבנה ותוחלת חיים של מפתחות, פרסום מהיר של מפתחות שפג תוקפם לכלל המשתמשים וכן טיפול במצב של חשיפת מפתח או כשל אבטחתי אחר בשרת המפתחות.
רשת אמון (Web of trust).
רשת אמון - הדרך שבה נקטה לראשונה PGP כדי להבטיח את זהות בעלי המפתחות הציבוריים. הקמת רשת כזו נעשית באמצעות חתימה הדדית של משתמשים זה על המפתח הציבורי של זה, בכך מושגת היררכיה של אמון שבראשה עומד בדרך כלל גוף בעל אמינות גבוהה. רשת אמון הדדית מיושמת במערכות PGP ו-GPG.
תקני הצפנת מפתח ציבורי.
תקן הצפנת מפתח ציבורי של מעבדות RSA הנקרא PKCS (קיצור של Public Key Cryptography Standard) מכיל אוסף מפרטים לתקנים שונים הקשורים בהצפנת מפתח ציבורי שחלקם אומצו על ידי ארגוני תקינה בינלאומיים כמו ANSI X9 או ISO. הסדרה PKCS נמצאת בפיתוח מתמיד עקב ההתקדמות הטכנולוגית והחידושים הרבים בתחום ההצפנה. להלן תקציר הגרסאות:
יעילות.
חסרונן העיקרי של מרבית שיטות המפתח הציבורי הוא במשאבי המחשוב הנדרשים ליישומן. לרוב נדרשת עוצמת חישוב גבוהה עשרת מונים בהשוואה להצפנה סימטרית, בעיקר בגלל הצורך באריתמטיקה מודולרית במספרים ארוכים מאוד. בעוד שבהצפנה סימטרית קונבנציונלית, הדרך כמעט היחידה לפיצוח אלגוריתמים סימטריים בטוחים היא באמצעות כוח גס, או במקרה הטוב באמצעות ניתוח סטטיסטי של כמות עצומה של מידע מוצפן שבדרך כלל אינו מעשי. הרי שבהצפנה אסימטרית קיימים אלגוריתמים טובים היעילים בהרבה מכח גס לפתרון הבעיות המתמטיות עליהן נשענת המערכת. לדוגמה RSA מסתמכת על הקושי שבפירוק מספרים גדולים לגורמים, קיימים כיום אלגוריתמים מהירים כמו אלגוריתם נפת שדה המספרים המסוגלים לפרק מספר לגורמיו בדרך מהירה, היעילה בהרבה מניסיון לפצח את האלגוריתם על ידי ניסוי כל המפתחות האפשריים.
הערכת בטיחות של מערכת אסימטרית מסתמכת על כמות העבודה הדרושה כדי לפרוץ אותה באמצעות מיטב האלגוריתמים הידועים. ניתן לשלוט בפקטור העבודה על ידי גודל מפתח ההצפנה בסיביות. ככל שמפתח ההצפנה גדל רמת הסיבוכיות של הניסיון לפרוץ את האלגוריתם גדלה באופן מעריכי. אפילו מעבד מודרני אינו מסגל לבצע חישוב בסדר גודל של 500 סיביות ויותר במחזור שעון אחד. החישובים האריתמטיים הדרושים לצורך יישום מערכות הצפנה אסימטרית מבוצעים באמצעות כלים ייעודיים לאריתמטיקה במספרים גדולים, שמעצם טבעם מאטים את המערכת באופן משמעותי.
אימות.
גם הצפנה אסימטרית אינה פותרת את בעיות האימות והבטחת השלמות. הצפנה אסימטרית אינה מבטיחה את זהות השולח או המקבל, כלומר את אמינות מקור המפתח. היא אינה מבטיחה הגנה מפני מצותת אקטיבי המסוגל ליירט, לשנות ולשלוח מסרים זדוניים לכל אחד מהצדדים המתקשרים. מצותת כזה עלול להחליף את המפתח הציבורי של המקבל במפתח משלו כך שהמסר יוצפן במפתח הלא נכון בלא ידיעת השולח. לאחר מכן יכול התוקף ליירט את כל המסרים המוצפנים, לפענחם לקרוא את תוכנם ולהצפינם שוב במפתח ציבורי הלגיטימי של המקבל ולשולחם אליו בלא שיבחין בכך. התקפה זו נקראת האדם שבתווך והיא ישימה כנגד כל סוג של מערכת מפתח ציבורי.
בדרך כלל כדי להתמודד עם בעיות אילו נדרשים לשלב אלגוריתמים נוספים כמו פונקציית גיבוב, קוד אימות מסרים, חתימה דיגיטלית וכדומה.
אורך מפתחות מומלץ.
הבעיה במערכות הצפנה אסימטריות התלויות בקושיין (התאורטי/חישובי) המשוער של בעיות מתורת המספרים, בראשן בעיית פירוק לגורמים היא שאף על פי שהן קשות לפתרון, קיימים עבורן אלגוריתמים טובים בסיבוכיות זמן נמוכה משמעותית מכוח גס. מסיבה זו רצוי שמפתחות ההצפנה יהיו גדולים במידה ניכרת כדי להשוות את רמת בטיחותן לאלגוריתמים סימטריים. עד שנת 2003, מקובל היה להשתמש במודולוס בגודל 1024 סיביות. מעבדות RSA פרסמה בשנת 2003 הצהרה, לפיה מפתח אסימטרי בגודל 1024 סיביות מספק רמת הגנה מקבילה למפתח סימטרי בגודל 80 סיביות, 2048 סיביות מקבילות לאלגוריתם סימטרי עם מפתח 112 סיביות ו-3072 סיביות מקביל ל-128 סיביות. המלצה שלהם להשתמש במפתח 2048 סיביות לשימוש רגיל ו-3072 סיביות לשימוש מיוחד במקרים קיצוניים, זאת עד לשנת 2030. ארגון התקינה NIST נוקט בגישה מחמירה מעט יותר, לפי תקן נכון ליולי 2012 מפתח אסימטרי בגודל 3072 סיביות מקביל ברמת בטיחותו למפתח סימטרי בגודל 128 סיביות (שהוא מהסוג הנפוץ כיום באלגוריתם AES) ואילו לרמת בטיחות גבוהה, מפתח בגודל 15,360 סיביות יהווה מקבילה בטיחותית ראויה למפתח סימטרי בגודל 256 סיביות.