Privacy Policy Cookie Policy Terms and Conditions צופן ויז'נר - ויקיפדיה

צופן ויז'נר

מתוך ויקיפדיה, האנציקלופדיה החופשית

ריבוע ויז'נר הידוע בשמו הלטיני tabula recta, הנו דרך נוחה ליישום צופן ויז'נר. הומצא על ידי יוהנס טריטמיוס, המאה ה-15.
הגדל
ריבוע ויז'נר הידוע בשמו הלטיני tabula recta, הנו דרך נוחה ליישום צופן ויז'נר. הומצא על ידי יוהנס טריטמיוס, המאה ה-15.

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

צופן ויזנ'ר מיוחס לדיפלומט הצרפתי בלז דה ויז'נר (1586), אולם למעשה הומצא מספר שנים לפניו על ידי הקריפטוגרף האיטלקי ג'ובני בטיסטה בלאסו (בשנת 1553). צופן זה יוחס בטעות לויזנ'ר עצמו בתחילת המאה ה-19 ומאז קרוי על שמו.


[עריכה] הגדרה כללית

צופן ויז'נר פשוט עם מחזוריות \ t, מעל אלפבית בעל \ s אותיות, ממפה מפתח בעל \ t ערכים \ k_1, k_2, ..., k_t על אותיות המסר \ m_1, m_2,m_3 ... בעזרת הפונקציה \ c_i = m_i + k_i \mbox{ mod } s כדי לקבל את הצופן \ c_1, c_2, ..., c_t. כאשר אינדקס המפתחות \ i מצומצם מודולו \ t, כלומר המפתח מחזורי.

לצורך המחשה, בצופן החלפה חד-אלפביתי, החלפת כל אות במילה "אמת" באות השלישית הבאה אחריה תתן: "דעג" (אותיות סופיות לא הובאו במנין), האות "ת" הוחלפה באות השלישית מההתחלה (ההזזה היא מחזורית) כשהמפתח הוא \ k = 3. בצופן החלפה רב-אלפביתי לעומת זאת, ההחלפה היא מרובה במובן שכל אות במסר מחולפת לפי מפתח (היסט) אחר, האות הראשונה מוחלפת במרחק המוגדר על ידי המפתח \ k_1, האות השנייה לפי\ k_2... האות \ t במסר מוחלפת לפי \ k_t ואילו האות \ t+1 מוחלפת לפי \ k_1 וחוזר חלילה. בדוגמה לעיל בהינתן מפתח \ k_1=1,k_2=2,k_3=3 אזי צופן ויזנר מחליף את האות "א" במילה "אמת" באות "ב" (הזזה של 1) האות "מ" באות "ס" (הזזה של 2 אותיות) ואילו "ת" תוחלף באות "ג" (הזזה של 3 אותיות) ומתקבל "בסג". כדי להקל על תהליך ההצפנה והפענוח, ניתן להכין טבלה של כל ההיסטים האפשריים (ראה ריבוע ויז'נר בתמונה).


ישנן מספר גרסאות של צופן ויז'נר הבסיסי ביניהן:

  • צופן ויז'נר מורכב. צופן זה משתמש בפונקציית מיפוי מורכבת יותר מהמתואר לעיל והיא: \ c_i = m_i + (k^1_i + k^2_i + ... + k^r_i) \mbox{ mod } s. כל אחד מהמפתחות \ k^j הוא בעל מחזוריות \ t_j שונה (הציון התחתי \ i מייצג את האות ה-\ i של המפתח \ k^j). צופן זה הוא בעצם יישום רציף של \ r צופני ויז'נר פשוטים. המחזוריות של צופן זה היא המכנה המשותף של \ t_1,...,t_r מחזורי צופן ויזנ'ר פשוטים.
  • צופן ביופורט (Beaufort). דומה לצופן ויזנ'ר הפשוט אולם משתמש בפונקציית המיפוי \ c_i = k_i-m_i \mbox{ mod }s.
  • ויז'נר מעורב. הוא שילוב של צופן ויז'נר הפשוט עם פונקציית החלפה (תמורה) לא בהכרח פונקציית הזזה אלפביתית. השילוב יכול להתבצע בשני אופנים הראשון שילוב מאוחר: \ c_i=e(m_i)+k_i \mbox{ mod }s עם מיפוי הופכי לפענוח: \ m_i=e^{-1}(c_i-k_i)\mbox{ mod }s. הפונקציה \ e_i היא תמורה כלשהי. השני הוא שילוב מוקדם: \ c_i=e(m_i+k_i\mbox{ mod }s), כאשר המיפוי ההופכי הוא \ m_i=e^{-1}(c_i)-k_i\mbox{ mod }s.
  • ספר-צופן (Running key). צופן ויזנ'ר נקרא ספר-צופן אם אורך המפתח \ k הנו באורך המסר. למשל מפתח ההצפנה יכול להיות קטע טקסט מתוך ספר כלשהו ומכאן שמו. ספר צופן ניתן לחיזוק על ידי הצפנה חוזרת של המסר בעזרת מספר מפתחות שהם קטעי טקסט שונים. אם חוזרים על תהליך זה כארבע פעמים מטשטשים את יתירות השפה באופן כזה שהצופן המתקבל מתקרב באיכותו לפנקס חד פעמי.
  • מפתח עצמי (Auto-key). צופן ויזנ'ר מסוג זה מיושם בעזרת מפתח ראשוני \ k שלאחר השימוש הראשוני בו, המסר עצמו משמש כמפתח הצפנה להצפנת יתר אותיות המסר בעזרת פונקציה: \ c_i = (m_i+m_{i-t})\mbox{ mod }s.

[עריכה] בטיחות

למרות שכאמור צופן ויז'נר אינו משמר תדירות אותיות שהוצפנו תחת מפתח שונה, מבחינה קריפטוגרפית צופן זה אינו בטוח לשימוש, כיוון שהוא חשוף לניתוח סטטיסטי. לכל שפה יש יתירות (Redundancy) מסוימת (לפי תורתו של קלוד שנון), כלומר אותיות המסר חוזרות על עצמן בתדירות שונה. יתירות מאפשרת ניתוח סטטיסטי של הצופן בהתאם לכללי היתירות של השפה הספציפית, למשל האות "י" בשפה העברית, אמורה לחזור על עצמה בתדירות גבוהה יותר מאשר האות "פ". ניתן להכין טבלת שכיחויות של אותיות האלפבית לשפה הנתונה, מתוך כמות נכבדה של טקסט רגיל. מה שיאפשר לבצע ניתוח של הצופן למשל בשיטת קסיסקי (Kasiski). בשיטה זו מסתמכים על כך שכאשר המפתח קצר, הרי שבמסר ארוך אותיות מסוימות יוצפנו תחת מפתח זהה. הרעיון הוא למצוא את הנקודה בה חוזר השימוש במפתח הקודם, כלומר למצוא את אורך המפתח. זאת עושים על ידי דגימת מרחקים שבין קטעי צופן קצרים החוזרים על עצמם. מרחקים אלו מרמזים על אורך המפתח, ככל שהם קרובים יותר לאורך המפתח תדירותם עולה. כאשר נמצא אורך המפתח הפענוח קל. מחלקים את הצופן לגושים באורך המפתח ומפעילים ניתוח סטטיסטי פשוט על כל גוש בנפרד. כל גוש בנפרד יכיל תדירויות זהות לטקסט המקורי באופן שמאפשר ניחוש אותיות רבות וחשיפת המסר כולו בקלות רבה.

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

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

[עריכה] קישורים חיצוניים

שפות אחרות
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu