php / המדריך לקידוד מידע / צופן המבוסס על מפתחות פרטיים וציבוריים

שיעור 1


צופן המבוסס על מפתחות פרטיים וציבוריים


בצופן בעל מפתחות ציבוריים, למשתמש יש שני מפתחות: פרטיים וציבוריים. כמו שניתן להבין משמותיהם , המפתח הפרטי נשאר בידי המשתמש ואילו המפתח הציבורי מופץ לעוד משתמשים. בעל המפתח הפרטי לעולם לא יחלוק אותו עם אדם אחר.
המפתח הציבורי מופץ לציבור. המפתחות הציבוריים והפרטיים מחוברים אחד לשני ברשת סבוכה של פעולות מתמטיות שמקשרות ביניהן. הקשר הזה הוא הכרחי ובלעדיו כל ההצפנה לא תעבוד, כפי שתכף תיווכחו בעצמכם.

במפתח הציבורי משתמשים כדי להתחיל לקודד הודעה. במפתח הפרטי משתמשים כדי לפענח אותה אחרי שנשלחה. רק בעלי המפתח הפרטי יכולים לפענח את ההודעה. אפילו האדם שקודד את ההודעה לא יכול לקרוא אותה, מכיוון שאין לו מפתח פרטי.

מה???

בואו ננסה שוב:
נניח שלמשתמש בשם ג'ו יש מפתחות פרטיים וציבוריים. לג'ין גם יש מפתחות פרטיים וציבוריים. ג'ו וג'ין רוצים לשלוח הודעות מוצפנות אחד לשני , אז הם מחליפים מפתחות ציבוריים . עכשיו לג'ו יש את המפתח הפרטי שלו ואת המפתח הציבורי של ג'ין. לג'ין יש את המפתח הפרטי שלה ואת המפתח הציבורי של ג'ו.

מפתחות נשמרים במחזיקי מפתחות. מחזיק אחד למפתחות ציבוריים ומחזיק אחר למפתחות פרטיים. מחזיקי המפתחות הללו לא לגמרי זהים לאלו שבהם אתם מחזיקים את מפתחות הבית והמכונית. במחזיק המפתחות הציבורי של ג'ו נמצא את המפתח שציבורי של ג'ין. במחזיק המפתחות הציבורי של ג'ין נמצא את המפתח הציבורי של ג'ו. לכל אחד מהם יש גם מחזיק מפתחות פרטי ,שמחזיק את המפתח הפרטי שלהם. מחזיק המפתחות הפרטי נושא אך ורק את המפתח הפרטי.

כשג'ו רוצה לשלוח הודעה מוצפנת לג'ין , הוא משתמש בתוכנת ההצפנה שלו כדי לקודד את ההודעה בהתאם למפתח הציבורי של ג'ין . ג'ין מקבלת את ההודעה ומשתמשת בתוכנית ההצפנה ובמפתח האישי שלה כדי לקרוא את ההודעה .
רק ג'ין יכולה לקרוא הודעה שקודדה ע"י שימוש במפתח הציבורי שלה.

בתחילת 1990 פיתח פיל זימרמן מערכת בשם PGP - Pretty Good Protection, מערכת שהפכה לנפוצה מאוד בכל הקשור לשליחת הודעות וקבצים מקודדים ע"י שימוש במפתחות ציבוריים ופרטיים. בהתאם לתקנות היצוא של ארצות הברית ותקנות היבוא של מדינות אחרות, בכל הנוגע לשימוש באלגוריתמים, הסטנדרט של PGP פותח ונבנתה תוכנה חדשה בשם GnuPG התוכנה החדשה ,בניגוד ל-PGP לא משתמשת באלגוריתמים ולכן הפכה לנפוצה כל כך. בעקבות שינוי חוקי היצוא של ארה"ב PGP ו GnuPG מתקיימות שתיהן בשקט ובשלווה בקהילת המפתחים.
בהמשך הדרך נלמד לעבוד עם התוכנות האלו, בשילוב PHP כדי לקודד מידע.

אני מציעה שנחליט כעת באיזו מהן נשתמש. הרי כמה הבדלים בסיסיים:
השימוש ב PGP עולה סכום כסף מסוים, בעוד GnuPG היא תוכנת חינם.
GnuPG היא תוכנית מבוססת יוניקס, על אף שאם תתאמצו תמצאו גרסה לחלונות . PGP עובדת על יוניקס , חלונות ואפילו על מק.
בשתי התוכנות ישנן שורה של מגבלות ואזהרות הנוגעות לקידוד המידע ושליחתו, על אף שהבעיה הזו קשה יותר ב-PGP.
שתי התוכנות קלות לשימוש, אך PGP מצטיינת יותר במערכת ה GUI שלה .

בדוק באתרי האינטרנט של שתי התוכנות www.gnupg.org ו- www.pgp.com ותחליט בעצמך. לאחר שהחלטת, עקוב אחרי הוראות ההתקנה בשרת ובמחשב האישי, כך שתוכל להשתמש ב-PHP - כדי לקבל ולשלוח הודעות מקודדות.



עמוד הבא: מתחילים עם PGP >>




הקדמה
שעור 1
הקדמה
צופן המבוסס על מפתחות
פרטיים וציבוריים >
מתחילים עם PGP
מתחילים עם GnuPG
הקריאה למקודד המפתח
הציבורי
שעור 2
קידוד חד צדדי ו HASH
השמוש בפונקצית ()crypt
שמוש בספרית mcrypt