جرب شيفرة الفور سكوير
استخدم الأدوات المقدمة أدناه لتشفير أو فك تشفير رسالة:
تشفير
فك التشفير
المصفوفات المولدة
لحظات رائعة في التاريخ
شيفرة الفور سكوير: الخلفية التاريخية ومبادئ التشفير
شيفرة الفور سكوير هي طريقة تشفير متماثلة اخترعها الفرنسي فيليكس ديلاستيل (1840–1902) وهي جزء من التشفير الحديث. تشفر هذه الطريقة الحروف في أزواج باستخدام أربع مصفوفات بحجم 5×5، تحتوي كل منها على 25 حرفًا. عادةً ما يتم حذف الحرف Q، أو يتم اعتبار الحرفين I و J نفس الحرف. بدلاً من ذلك، يمكن تعديل الطريقة لاستخدام مصفوفات بحجم 6×6 لتشمل 10 أرقام.
خلال عملية التشفير، يتم اختيار كلمتين إنجليزيتين كمفاتيح، مثل "example" و"keyword." بعد إزالة الأحرف المكررة، يتم وضع الأحرف المتبقية بالترتيب في المصفوفات. توضع هاتان المصفوفتان في الزوايا العليا اليمنى والسفلى اليسرى، بينما تستخدم الزوايا العليا اليسرى والسفلى اليمنى تسلسل الأحرف من A إلى Z لتشكيل المصفوفات، مما يشكل مصفوفة شيفرة الفور سكوير.
لتشفير رسالة، يتم فصل الأحرف إلى أزواج، مثل "hello world" التي تصبح "he ll ow or ld." بناءً على المواقع في المصفوفات، يتم العثور على الأحرف المشفرة المقابلة. على سبيل المثال، تتضمن عملية تشفير "he" العثور على موقع "h" في المصفوفة العليا اليسرى و"e" في المصفوفة السفلى اليمنى. ثم، في المصفوفة العليا اليمنى، يتم تحديد الحرف في نفس صف "h" ونفس عمود "e"، وفي المصفوفة السفلى اليسرى، يتم العثور على الحرف في نفس عمود "h" ونفس صف "e". تشكل هاتان الحرفان النص المشفر.
تكمن ضعف شيفرة الفور سكوير في الحالة التي يكون فيها حرفان في نفس العمود، يتم استخدام الأحرف الأصلية، مما قد يكشف عن حوالي 20% من المحتوى. بالإضافة إلى ذلك، نظرًا لأنها طريقة تشفير متماثلة، يمكن كسرها بسهولة من خلال المقارنات المسجلة، مما يؤدي إلى انخفاض الأمان. مشكلة أخرى هي أنها يمكن أن تشفر فقط عددًا زوجيًا من الأحرف. إذا كان هناك عدد فردي، لا يمكن تشفير الحرف الأخير المتبقي، واستخدام الحرف الأصلي أو تشفير الملء يجعل النص المشفر أكثر عرضة للكشف.
كجزء من التشفير الكلاسيكي، على الرغم من أن شيفرة الفور سكوير لا تتطابق مع أمان خوارزميات التشفير الحديثة، فإن بساطتها وأهميتها التاريخية قد ألهمت طرق التشفير الحديثة.
دليل خطوة بخطوة لتشفير شيفرة الفور سكوير
فيما يلي دليل خطوة بخطوة لتشفير باستخدام شيفرة الفور سكوير، باستخدام الكلمات المفتاحية "Four" و "Cipher" والنص العادي "Hello World".
الخطوة 1: التحضير
- اختيار الكلمات المفتاحية
- key1 = "Four"
- key2 = "Cipher"
- تحضير النص العادي
- النص العادي هو "Hello World".
- تحويل النص العادي إلى صيغة مناسبة للتشفير
- تحويل إلى الأحرف الكبيرة واستبدال الحرف J بـ I: Hello World -> HELLOWORLD
- إزالة الأحرف غير الأبجدية: HELLOWORLD
- إذا كان طول النص العادي فرديًا، أضف الحرف X في النهاية.
الخطوة 2: إنشاء المربعات الحرفية
استخدم الكلمات المفتاحية لإنشاء أربع مربعات حرفية بحجم 5x5. عادةً ما يتم حذف الحرف J، واستخدام I بدلاً منه.
وظيفة لإنشاء المربعات الحرفية
function createSquare(keyword) {
let alphabet = "ABCDEFGHIKLMNOPQRSTUVWXYZ";
let used = {};
let square = "";
keyword = keyword.toUpperCase().replace(/J/g, 'I');
for (let i = 0; i < keyword.length; i++) {
if (!used[keyword[i]]) {
(used[keyword[i]]) = true;
square += keyword[i];
}
}
for (let i = 0; i < alphabet.length; i++) {
if (!used[alphabet[i]]) {
square += alphabet[i];
}
}
return square;
}
إنشاء 4 مربعات حرفية
المربع 1 (square1) والمربع 4 (square4) باستخدام key1 = "FOUR":
F O U R A
B C D E G
H I K L M
N P Q S T
V W X Y Z
المربع 2 (square2) والمربع 3 (square3) باستخدام key2 = "CIPHER":
C I P H E
R A B D F
G K L M N
O Q S T U
V W X Y Z
الخطوة 3: عملية التشفير
قسم النص العادي إلى أزواج من الحروف وقم بتشفير كل زوج. مثال على النص العادي: HELLOWORLD.
قسم النص العادي
HELLOWORLD -> HE LL OW OR LD
تشفير كل زوج من الحروف
استخدم الوظيفة التالية للعثور على موضع الحروف في المربعات:
function findPosition(square, char) {
let index = square.indexOf(char);
let row = Math.floor(index / 5);
let col = index % 5;
return [row, col];
}
تشفير كل زوج من الحروف خطوة بخطوة:
- تشفير الزوج "HE"
- H في الموضع (2, 0) في square1
- E في الموضع (1, 3) في square4
- أخذ (2, 3) من square2 -> M
- أخذ (1, 0) من square3 -> R
- النتيجة: HE -> MR
- تشفير الزوج "LL"
- L في الموضع (2, 3) في square1
- L في الموضع (2, 3) في square4
- أخذ (2, 3) من square2 -> M
- أخذ (2, 3) من square3 -> M
- النتيجة: LL -> MM
- تشفير الزوج "OW"
- O في الموضع (0, 1) في square1
- W في الموضع (4, 1) في square4
- أخذ (0, 1) من square2 -> I
- أخذ (4, 1) من square3 -> W
- النتيجة: OW -> IW
- تشفير الزوج "OR"
- O في الموضع (0, 1) في square1
- R في الموضع (0, 3) في square4
- أخذ (0, 3) من square2 -> H
- أخذ (0, 1) من square3 -> I
- النتيجة: OR -> HI
- تشفير الزوج "LD"
- L في الموضع (2, 3) في square1
- D في الموضع (1, 2) في square4
- أخذ (2, 2) من square2 -> L
- أخذ (1, 3) من square3 -> D
- النتيجة: LD -> LD
النص المشفر النهائي
اجمع أزواج الحروف المشفرة. النص المشفر لـ HELLOWORLD هو: MRMMIWHILD
مقارنة بين شيفرة الفور سكوير، شيفرة البلايفير المزدوجة، وشيفرة البلايفير
أوجه التشابه
- شفرات الاستبدال متعددة الأحرف
- شيفرة الفور سكوير، شيفرة البلايفير المزدوجة، وشيفرة البلايفير كلها شفرات استبدال متعددة الأحرف. هذا يعني أنها تستخدم أزواج أو مجموعات من الحروف كوحدة أساسية للتشفير وفك التشفير، بدلاً من الحروف الفردية.
- المصفوفات الحرفية
- تستخدم جميع الأنظمة الثلاثة مصفوفات حرفية للتشفير وفك التشفير. يعتمد كل منها على مواقع الحروف في هذه المصفوفات لإجراء الاستبدالات أو التحولات.
- الهدف
- الهدف من تصميم هذه الشفرات هو تعزيز أمان شفرات الاستبدال التقليدية ذات الحروف الفردية من خلال زيادة تعقيد التشفير، وبالتالي منع هجمات تحليل التردد البسيطة.
أوجه الاختلاف
شيفرة الفور سكوير
- المصفوفات الحرفية: تستخدم أربع مصفوفات حرفية بحجم 5x5.
- وحدة التشفير: تعالج حرفين في كل مرة.
- الخطوات:
- أربع مصفوفات حرفية: يتم إنشاء مصفوفتين من الكلمات المفتاحية، والمصفوفتين الأخريين تكونان عادة بترتيب أبجدي قياسي.
- قسم النص العادي إلى أزواج من الحروف.
- اعثر على موضع كل زوج من الحروف في مصفوفتين مختلفتين، ثم اعثر على الحروف المشفرة المقابلة في المصفوفتين الأخريين.
- التعقيد: يزيد من التعقيد والأمان باستخدام مصفوفات أكثر مقارنة بشيفرة البلايفير.
شيفرة البلايفير المزدوجة
- المصفوفات الحرفية: تستخدم مصفوفتين حرفيتين بحجم 5x5.
- وحدة التشفير: تعالج حرفين في كل مرة.
- الخطوات:
- يتم إنشاء مصفوفتين حرفيتين من كلمات مفتاحية مختلفة.
- قسم النص العادي إلى أزواج من الحروف.
- استخدم المصفوفة الأولى للعثور على موضع الحرف الأول، والمصفوفة الثانية للعثور على موضع الحرف الثاني، ثم استبدل الحروف وفقًا للقواعد.
- التعقيد: يضيف تعقيدًا وأمانًا من خلال إدخال مصفوفة ثانية مقارنة بشيفرة البلايفير الواحدة.
شيفرة البلايفير
- المصفوفات الحرفية: تستخدم مصفوفة حرفية واحدة بحجم 5x5.
- وحدة التشفير: تعالج حرفين في كل مرة.
- الخطوات:
- يتم إنشاء مصفوفة حرفية واحدة من كلمة مفتاحية.
- قسم النص العادي إلى أزواج من الحروف.
- استبدل الحروف بناءً على علاقتها المكانية (نفس الصف، نفس العمود، أو صفوف وأعمدة مختلفة).
- التعقيد: يزيد من التعقيد مقارنة بشفرات الاستبدال ذات الحرف الواحد البسيطة، ولكنه أقل تعقيدًا من شيفرة البلايفير المزدوجة وشيفرة الفور سكوير.
جدول المقارنة
الميزة | شيفرة الفور سكوير | شيفرة البلايفير المزدوجة | شيفرة البلايفير |
---|---|---|---|
عدد المصفوفات الحرفية | 4 | 2 | 1 |
وحدة التشفير | حرفان في كل مرة | حرفان في كل مرة | حرفان في كل مرة |
الكلمات المفتاحية | كلمتان مفتاحيتان | كلمتان مفتاحيتان | كلمة مفتاحية واحدة |
التعقيد | مرتفع | متوسط | منخفض |
قواعد التشفير | يستخدم أربع مصفوفات لإيجاد الاستبدالات | يستخدم مصفوفتين لإيجاد الاستبدالات | يستخدم مصفوفة واحدة لإيجاد الاستبدالات |
التبديل والاستبدال
Traité Élémentaire de Cryptographie بقلم فيليكس ديلاستيل يستكشف بعمق طرق التبديل والاستبدال في التشفير. التبديل يتضمن تغيير مواقع الحروف في النص الصريح لتشفير الرسالة. على سبيل المثال، عكس ترتيب الحروف، كما في حالة "Paul est parti pour Lyon" لتصبح "NOYLRUOPITRAPTSELUAP". طريقة أخرى هي التجميع، حيث يتم ترتيب النص الصريح في شكل محدد مسبقًا، ثم استخراج الحروف بترتيب متفق عليه لتكوين النص المشفر.
النص الأصلي بالفرنسية:
"L'inversion consiste à transposer ou déplacer les lettres du texte clair suivant une méthode convenue entre les correspondants, de telle sorte qu'il soit facile aux initiés de rétablir l'ordre primitif."
الترجمة بالعربية:
"يتمثل العكس في نقل أو تحريك حروف النص الواضح وفقًا لطريقة متفق عليها بين المراسلين بحيث يسهل على المطلعين استعادة الترتيب الأصلي."
النص الأصلي بالفرنسية:
Le renversement s'effectue en écrivant les lettres du clair en sens inverse de l'ordre normal, la dernière lettre devenant la première, l'avant-dernière la seconde, l'antépénultième la troisième, etc. Exemple: "Paul est parti pour Lyon" s'écrira "NOYLRUOPITRAPTSELUAP". Le renversement peut s'appliquer soit au texte entier, soit successivement à chaque mot ou à des groupes d'un nombre de lettres convenu. La phrase ci-dessus, divisée en deux groupes de dix lettres, donnerait: "RAPTSELUAPNOYLRUOPIT". Et en quatre groupes de cinq lettres: "ELUAPRAPTSUOPITNOYLR".
الترجمة بالعربية:
يتم تنفيذ العكس عن طريق كتابة حروف النص الواضح في الاتجاه المعاكس للترتيب الطبيعي، حيث يصبح الحرف الأخير هو الأول، والحرف قبل الأخير هو الثاني، وهكذا. مثال: "Paul est parti pour Lyon" ستكتب "NOYLRUOPITRAPTSELUAP". يمكن تطبيق العكس إما على النص بأكمله، أو بشكل متتابع على كل كلمة أو على مجموعات من عدد متفق عليه من الحروف. الجملة أعلاه، مقسمة إلى مجموعتين من عشرة حروف، ستعطي: "RAPTSELUAPNOYLRUOPIT". وفي أربع مجموعات من خمسة حروف: "ELUAPRAPTSUOPITNOYLR".
النص الأصلي بالفرنسية:
"De nombreux systèmes ont été imaginés dans ce but: 1 Renversement des lettres; 2 Groupements divers; 3 Carrés et grilles; 4 Méthodes diverses."
الترجمة بالعربية:
"تم ابتكار العديد من الأنظمة لهذا الغرض: 1 عكس الحروف؛ 2 تجمعات مختلفة؛ 3 مربعات وشبكات؛ 4 طرق متنوعة."
النص الأصلي بالفرنسية:
"Il est évident que le renversement ne donne aucune sécurité au point de vue du secret, les dépêches écrites dans ce système ne résistant pas à un examen un peu sérieux."
الترجمة بالعربية:
"من الواضح أن العكس لا يوفر أي أمان من حيث السرية؛ فالرسائل المكتوبة بهذا النظام لا تصمد أمام فحص جدي ولو قليلاً."