הצפנות וצופני שחלוף (Substution) קלים – חלק א'

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

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

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

(התמונה נלקחה מוויקיפדיה)

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

*טבלה – הטבלה הינה מפתח ההצפנה. באמצעות המפתח, נדע באיזה אות לשחלף את אותיות הטקסט המקורי. כלומר, הטבלה שלנו נקראת מפתח אתב"ש.

ירמיהו, פרק כ"ה, פסוק כ"ו:

ציטוט:
"ומלך ששך ישתה אחריהם"

נשאלת השאלה, מי אתה מלך ששך ומהי ארצך? ובכן, בהצפנת אתב"ש, מהי ששך (היעזרו במפתח ההצפנה שלנו) ?
הערך "ששך" בהצפנת אתב"ש הינו "בבל" שכן- מלך ששך, הינו מלך בבל.
וכן, ניתן לאשר כי ששך היא אכן בבל מפני שבפרק נ"א בפסוק מ"א נאמר:

ציטוט:
"איך נלכדה ששך ותתפוס תהילת כל הארץ, איך הייתה לשמה בבל בגויים"

אגב, בפסוק הפתיחה של אותו הפרק, ישנה הצפנת אתב"ש נוספת, מוזמנים לפענח:

ציטוט:
"….הנני מעיר על בבל ועל יושבי לב קמי רוח משחית"

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

כאשר האות כ' והאות ת' מחליפות זו את זו וכן הלאה.

צופן קיסר – צופן הזזה (Shift)
כאן הנושא מתחיל לקבל קצת אקשן
צופן קיסר נקרא על שמו של יוליוס קיסר, היות והוא הראשון שהשתמש בסוג צופן זה להעברת מסרים סודיים לשלטונות רומא כבר לפני 2500 שנה וגם הוא הינו סוג של שחלוף.
מפתח הצופן, הינו מספר (בשונה מאתב"ש ואלב"מ) שידוע רק לשולח המסר ולנמען ואיתו ניתן לפצח את ההצפנה, משמע- אם מפתח ההזזה שלנו הוא +1, אז לצורך ההצפנה מחליפים כל אות בא"ב באות שאחריה. וכפי שהבנתם, מספר המפתח מציין את שיעור ההזזה של הא"ב, שמוגבל דרך אגב ל-21 ואילו בא"ב הלטיני ל-25.

וכעת, נשלב קצת PHP על מנת ליצור צופן קיסר:

קוד PHP:
function caesar($text,$key)
{
$abc        =   array("א","ב","ג","ד","ה","ו","ז","ח","ט","י","כ","ל","מ","נ","ס","ע","פ","צ","ק","ר","ש","ת");
$strlen     =   strlen($text);
for($i = 0; $i < $strlen; $i++)
{
if(eregi("ם",$text[$i]))
{
$text[$i]       =   str_replace("ם","מ",$text[$i]);
}
if(eregi("ן",$text[$i]))
{
$text[$i]       =   str_replace("ן","נ",$text[$i]);
}
if(eregi("ץ",$text[$i]))
{
$text[$i]       =   str_replace("ץ","צ",$text[$i]);
}
if(eregi("ך",$text[$i]))
{
$text[$i]       =   str_replace("ך","כ",$text[$i]);
}
if(eregi("ף",$text[$i]))
{
$text[$i]       =   str_replace("ף","פ",$text[$i]);
}
if(in_array($text[$i],$abc))
{
$place   =   array_search($text[$i],$abc);
$new     =   $place+$key;
if($new > 22)
{
$new    =   $new-22;
}
echo str_replace($abc[$place],$abc[$new],$abc[$place])," ";
}
else {
echo "חלק ממחרוזת הטקסט שלך אינה נמצאת במערך, ייתכן כי מדובר בטקסט שאינו בעברית";
}
}

}

כשהקריאה לפונקציה בצורה הבאה:

קוד PHP:
caesar("פרוג",10);

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

מוזמנים להגיב, לתקן ולשאול שאלות

(284)

הגב לכתבה דרך הפייסבוק:

נהנים מהתכנים? מילה טובה תעודד אותי להמשיך לכתוב

האימייל לא יוצג באתר. שדות החובה מסומנים *