פתרון יעיל יותר: הצפנת מפתח ציבורי
( Public Key Cryptography )
התייחסות לצורך באימות, בעיקר ברשתות גדולות, נעשתה לראשונה ב – 1976 בפתרון תיאורטי שהעלו Whitfield Diffie ו – Martin Hellman. הם פרסמו תפיסה הכוללת תחלופת הודעות סודיות ללא צורך להחליף מפתחות סודיים. הרעיון נשא פרי ב – 1977 עם המצאתו של אלגוריתם ה – RSA, המיישם מערכת הצפנה מבוססת מפתחות ציבוריים, על ידי Ronald Rivest, Adi Shamir ו – Len Adleman, פרופסורים ב – MIT באותה תקופה. במקום להשתמש באותו מפתח לקידוד ופענוח המידע, משתמשת מערכת ה – RSA בזוג מותאם של מפתחות לקידוד ולפענוח. כל מפתח מבצע טרנספורמציה חד-כיוונית של המידע, ומהווה את הפונקציה ההופכית למפתח השני.
המפתח הציבורי בשיטת RSA מופץ לשימוש הרחב על ידי בעליו, בעוד שהמפתח הפרטי נשמר בסוד. על מנת לשלוח הודעה חשאית, מערבל השולח את ההודעה באמצעות המפתח הציבורי של הנמען, המיועד לכך. מאותו רגע ואילך, ניתן לפענח את ההודעה אך ורק באמצעות מפתחו הפרטי של הנמען.
מאידך, על מנת לזהות את השולח ולאמת את ההודעה, יכול המשתמש לערבל את המידע באמצעות מפתחו הפרטי. העובדה שהנמען יכול לפענח את ההודעה על ידי שימוש במפתח הציבורי של אותו משתמש מעידה על כך כי רק בעל המפתח הפרטי, קרי השתמש, יכול היה לקודד אותה מלכתחילה. באופן זה הפכה ההודעה למעין חתימה אלקטרונית – מסמך שרק שולחו יכול לייצר, ואף אדם אחר אינו יכול לשכתבו. במילים אחרות, מפתחות ה – RSA יכולים לעבוד בשני הכיוונים.