عُرف علم التشفير أو التعمية منذ القدم، حيث استخدم في المجال الحربي والعسكري. فقد ذكر أن أول من قام بعملية التشفير للتراسل بين قطاعات الجيش هم الفراعنة. وكذلك ذكر أن العرب لهم محاولات قديمة في مجال التشفير. و استخدم الصينيون طرق عديدة في علم التشفير والتعمية لنقل الرسائل أثناء الحروب. فقد كان قصدهم من استخدام التشفير هو إخفاء الشكل الحقيقي للرسائل حتى لو سقطت في يد العدو فإنه تصعب عليه فهمها. وأفضل طريقة استخدمت في القدم هي طريقة القصير جوليوس وهو أحد قياصرة الروم. أما في عصرنا الحالي فقد باتت الحاجة ملحة لاستخدام هذا العلم "التشفير" وذلك لإرتبط العالم ببعضه عبر شبكات مفتوحة. وحيث يتم استخدام هذه الشبكات في نقل المعلومات إلكترونياً سواءً بين الأشخاص العاديين او بين المنظمات الخاصة والعامة، عسكرية كانت أم مدنية. فلابد من طرق تحفظ سرية المعلومات. فقد بذلت الجهود الكبيرة من جميع أنحاء العالم لإيجاد الطرق المثلى التي يمكن من خلالها تبادل البيانات مع عدم إمكانية كشف هذه البيانات.
ومازال العمل والبحث في مجال علم التشفير مستمراً وذلك بسبب التطور السريع للكمبيوتر والنمو الكبير للشبكات وبخاصة الشبكة العالمية الإنترنت.
ما هو التشفير أو التعمية (Cryptography ):
التشفير هو العلم الذي يستخدم الرياضيات للتشفير وفك تشفير البيانات. التشفير يُمكّنُك من تخزين المعلومات الحساسة أو نقلها عبر الشبكات غير الآمنه- مثل الإنترنت- وعليه لا يمكن قراءتها من قبل اي شخص ما عدا الشخص المرسل لـه. وحيث أن التشفير هو العلم المستخدم لحفظ أمن وسرية المعلومات، فإن تحليل وفك التشفير (Cryptoanalysis) هو علم لكسر و خرق الاتصالات الآمنة.
أهداف التشفير:
يوجد أربعة أهداف رئيسية وراء استخدام علم التشفير وهي كالتالي:
1- السرية أو الخصوصية ( Confidentiality ):
هي خدمة تستخدم لحفظ محتوى المعلومات من جميع الأشخاص ما عدا الذي قد صرح لهم الإطلاع عليها.
2- تكامل البيانات (Integrity ):
وهي خدمة تستخدم لحفظ المعلومات من التغيير ( حذف أو إضافة أو تعديل ) من قبل الأشخاص الغير مصرح لهم بذلك.
3- إثبات الهوية ( Authentication ):
وهي خدمة تستخدم لإثبات هوية التعامل مع البيانات ( المصرح لهم ).
4- عدم الجحود ( Non-repudiation ):
وهي خدمة تستخدم لمنع الشخص من إنكاره القيام بعمل ما.
إذاً الهدف الأساسي من التشفير هو توفير هذه الخدمات للأشخاص ليتم الحفاظ على أمن معلوماتهم.
كيفية عمل التشفير:
خوارزمية التشفير هو دالة رياضية تستخدم في عملية التشفير وفك التشفير. وهو يعمل بالاتحاد مع المفتاح أو كلمة السر أو الرقم أو العبارة، لتشفير النصوص المقروءة.
نفس النص المقروء يشفر إلى نصوص مشفرة مختلفة مع مفاتيح مختلفة. والأمن في البيانات المشفرة يعتمد على أمرين مهمين قوة خوارزمية التشفير وسرية المفتاح.
أنواع التشفير:
حالياً يوجد نوعان من التشفير وهما كالتالي:
1- التشفير التقليدي ( Conventional Cryptography ).
2- تشفير المفتاح العام ( Public Key Cryptography ).
التشفير التقليدي:
يسمى أيضاً التشفير المتماثل (Cryptography Symmetric). وهو يستخدم مفتاح واحد ًلعملية التشفير وفك التشفير للبيانات. ويعتمد هذا النوع من التشفير على سرية المفتاح المستخدَم. حيث أن الشخص الذي يملك المفتاح بإمكانه فك التشفير وقراءة محتوى الرسائل أو الملفات. مثال على ذلك؛ إذا أراد زيد إرسال رسالة مشفرة إلى عبيد، عليه إيجاد طريقة آمنة لإرسال المفتاح إلى عبيد. فإذا حصل أي شخص ثالث على هذا المفتاح فإن بإمكانه قراءة جميع الرسائل المشفرة
بعض الأمثلة على أنظمة التشفير التقليدي:
• شيفرة قيصر: وهي طريقة قديمة ابتكرها القيصر جوليوس لعمل الرسائل المشفرة بين قطاعات الجيش وقد أثبتت فاعليتها في عصره. ولكن في عصرنا الحديث ومع تطور الكمبيوتر لا يمكن استخدام هذه الطريقة وذلك لسرعة كشف محتوى الرسائل المشفرة بها. المثال التالي يوضح طريقة عمل شيفرة قيصر: إذا شفرنا كلمة "SECRET" واستخدمنا قيمة المفتاح 3، فإننا نقوم بتغيير مواضع الحروف ابتداءً من الحرف الثالث وهو الحرف "D"، وعليه فان ترتيب الحروف سوف يكون على الشكل التالي:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
الحروف بعد استخدام القيمة الجديدة لها من المفتاح "3" تكون على الشكل الحالي:
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
الآن قيمة الـ D à A ،B E à، F à C، وهكذا.
بهذا الشكل فان كلمة "SECRET" سوف تكون "VHFUHW". لتعطي أي شخص آخر إمكانية قراءة رسالتك المشفرة؛ يجب أن ترسل له قيمة المفتاح "3".
• تشفير البيانات القياسي (DES ): طُور هذا النظام في نهاية السبعينيات من قبل وكالة الأمن القومي الأمريكية، وهذا النظام بات من الجدوى عدم استخدامه مع تطور أنظمة الكمبيوتر وزيادة سرعة معالجته للبيانات، حيث أنه قد يتم كشف محتوى رسائل مشفرة به في وقت قصير.
• AES, IDEA, 3DES, blowfish,: وهي أنظمة حديثة ومتطورة وأثبتت جدواها في عصرنا الحالي في مجال التشفير.
كل ما ذكر من الأمثلة السابقة يعتمد على مبدأ المفتاح الواحد لعملية التشفير وفك التشفير.
تشفير المفتاح العام:
أو ما يعرف بالتشفير اللامتماثل (Cryptography Asymmetric). تم تطوير هذا النظام في السبعينات في بريطانيا وكان استخدامه حكراً على قطاعات معينة من الحكومة. ويعتمد في مبدأه على وجود مفتاحين وهما المفتاح العام Public key والمفتاح الخاص Privet key، حيث أن المفتاح العام هو لتشفير الرسائل والمفتاح الخاص لفك تشفير الرسائل. المفتاح العام يرسل لجميع الناس أما المفتاح الخاص فيحتفظ به صاحبه ولا يرسله لأحد. فمن يحتاج أن يرسل لك رسالة مشفرة فإنه يستخدم المفتاح العام لتشفيرها ومن ثم تقوم باستقبالها وفك تشفيرها بمفتاحك الخاص.
بعض الأمثلة على أنظمة تشفير المفتاح العام:
PGP, DSA, Deffie-Hellman, Elgamal, RSA
جميع هذه الأنظمة تعتمد على مبدأ التشفير اللاتماثلي أو التشفير باستخدام المفتاح العام والمفتاح الخاص.
مزايا وعيوب التشفير التقليدي والتشفير باستخدام المفتاح العام:
التشفير التقليدي أسرع بكثير باستخدام أنظمة الكمبيوتر الحديثة، ولكنه يستخدم مفتاح واحد فقط. فهو عرضة أكثر للاختراقات. أما تشفير المفتاح العام فيستخدم مفتاحين في عملية التشفير وفك التشفير، وهو أقوى وأقل عرضة للاختراقات، ولكنه أبطأ من التشفير التقليدي.
ونتيجة لهذه المزايا والعيوب أصبحت الأنظمة الحديثة تستخدم كلا الطريقتين حيث أنها تستخدم الطريقة التقليدية للتشفير وأما تبادل المفتاح السري الواحد بين الأطراف المتراسلة تتم من خلال استخدام طريقة تشفير المفتاح العام.
قياس قوة التشفير:
التشفير قد يكون قوياً أو ضعيفاً، حيث أن مقياس القوة للتشفير هو الوقت والمصادر المتطلبة لعملية كشف النصوص غير مشفرة من النصوص المشفرة. نتيجة التشفير القوي هو نص مشفر يصعب كشفه مع الوقت أو توفر الأدوات اللازمة لذلك.
شرح مفصل للطرق الكلاسيكية للتشفير:
يتم تقسيم طرق التشفير الكلاسيكية إلى قسمين رئيسيين, وهما:
1. التشفير عن طريق الإحلال أو الإزاحةSubstitution cipher .
2. التشفير عن طريق إعادة الترتيب أو التبادل بين الأحرف Transposition cipher .
وكل قسم من هذه الأقسام يندرج تحته عدة طرق, نبدأ الآن بتناول كل قسم وذكر الطرق التابعة له:
.
1. التشفير عن طريق الإحلال أو الإزاحة Substitution Cipher:
هذا النوع من التشفير يعتمد على إحلال حرف جديد مكان حرف من النص الأصلي, فنكون حصلنا على نص مشفر. فمثلاً لو كان لدينا الحرف (أ) في النص الأصلي, نستبدله بالحرف (س) فنكون شفرنا الحرف (أ) بالحرف (س), وهكذا. يمكن تقسيم التشفير عن طريق الإحلال إلى نوعين:
1. الشفرة الأبجدية الأحادية Monoalphabetic Cipher.
2. الشفرة الأبجدية المتعددة Polyaphabetic Cipher .
الشفرة الأبجدية الأحادية وأنواعها Momoalphabetic Ciphers :
في هذا النوع يتم فيه تشفير الحرف من النص الأصلي دائماً بحرف معين للحصول على النص المشفر. وهذا يعتمد على المفتاح المتفق عليه بين الطرفين (المرسل والمستقبل). مثلاً: يكون تشفير الحرف (ب) دائماً بالحرف (و) هذا يعني أنه كل حرف (ب) موجود بالنص الأصلي يستبدل بالحرف (و) للحصول على النص المشفر. أي أن العلاقة بين حروف النص الأصلي وحروف النص المشفر هي 1–1, كل حرف يقابله حرف واحد فقط أي يمكن تشفيره بهذا الحرف فقط.
أنواعها:
1. التشفير بالإضافة Additive Cipher :
وفي هذه الطريقة يتم تشفير أحرف النص الأصلي بإضافة قيمة معينة وثابتة للحرف الأصلي (تحديداً الإضافة تكون لموقع الحرف أبجدياً, الحرف أ= 00 , ب = 01 الخ) للحصول على أحرف النص المشفر. هذه
القيمة هي ما تسمى بمفتاح التشفير\فك التشفير, وهو قيمة متفق عليها بين المرسل والمستقبل لاستخدامها في تشفير النص لدى المرسل وفك التشفير لدى المستقبل.
مميزات هذه الطريقة: تتميز هذه الطريقة بسهولتها وبساطتها.
عيوبها: سهولة اختراقها وكسر شفرتها. بحيث يمكن لأي شخص غير مصرح له بقراءة الرسالة, عندما تقع الرسالة في يده, أن يقوم بفك التشفير بكل سهولة. وذلك بأن يجرب المفتاح من 00 إلى 27 ويحاول فك التشفير به حتى يحصل على نص واضح ومفهوم.
2. التشفير بالضرب Multiplicative Cipher:
هذه الطريقة تقوم بالتشفير عن طريق ضرب كل حرف من أحرف النص الأصلي بالمفتاح المتفق عليه وإيجاد باقي قسمة ناتج الضرب على 28. وفك التشفير يكون بضرب كل حرف من أحرف النص المشفر بالنظير الضربي للمفتاح وإيجاد باقي قسمة الناتج على 28.
3. التشفير بالضرب والجمع معاً Affine Cipher:
في هذه الطريقة يكون هناك مفتاحين وليس مفتاح واحد الأول مفتاح الضرب والثاني مفتاح الجمع, حيث أنها تعتمد على تشفير النص بطريقة الضرب أولاً ثم تأخذ النص المشفر الناتج وتقوم بتشفيره ثانية بطريقة الإضافة, ومن ثم نرسله للمستقبل. وعندما يحصل المستقبل على النص المشفر ويريد أن يفك تشفيره فإنه يقوم بعكس ترتيب العمليات, فيقوم بفك التشفير بمفتاح الجمع أولاً كما شرحنا سابقاً بطريقة الإضافة, ومن ثم يفك تشفير النص الناتج بمفتاح الضرب كما ورد في طريقة الضرب, فيحص على النص الأصلي.
الشفرة الأبجدية المتعددة وأنواعهاPolyaphabetic Cipher :
أما هذا النوع فتكون العلاقة بين حروف النص الأصلي وحروف النص المشفر هي 1 - *, أي أن كل حرف من النص الأصلي ممكن أن يشفر بأكثر من حرف للحصول على النص المشفر. مثلاً الحرف (أ) في النص الأصلي ممكن أن يشفر عند ظهوره للمرة الأولى بالحرف (س) والمرة الثانية بالحرف (ط) وهكذا.
أنواعها:
لها أنواع عديدة مثل : المفتاح الوحيد Autokey, بلاي فيرPlayfair , فينيير Vigenere و هيل Hill .
حتى لا أطيل على القارئ؛ سنفصل منها بعضها وليس كلها:
1. التشفير بالمفتاح الوحيد Auto key Cipher
وفي هذه الطريقة يكون هناك مفتاح واحد متفق عليه بين المرسل والمستقبل مسبقاً. للقيام بعملية التشفير يقوم المرسل بكتابة النص الأصلي ووضعه في جدول في الصف الأول, ويكتب تحت كل حرف من أحرف النص الأصلي مواقع هذه الحروف حسب الترتيب الأبجدي في الصف الثاني, وفي الصف الثالث وفي أول عمود يكتب المفتاح المتفق عليه وفي العمود الثاني من نفس الصف يكتب موقع الحرف الأول (المكتوب في الصف الثاني في العمود الأول), وفي العمود الثالث يكتب موقع الحرف الثاني وهكذا حتى نهاية الصف. ثم يقوم بجمع كل رقمين متقابلين من الصف الثاني والثالث ويوجد باقي قسمة الناتج على عدد الأحرف الأبجدية, فيكون الرقم الناتج هو موقع الحرف المشفر حسب التريب الأبجدي. أما المستقبل فيقوم بعملية عكسية لعملية التشفير للحصول على النص الأصلي.
2. التشفير بطريقة بلاي فير Playfair Cipher
هذه الطريقة يتم فيها تقسيم النص الأصلي إلى أجزاء متساوية "blocks" كل جزء مكون من حرفين, وقبل التقسيم يتم وضع أحرف زائدة "bogus" بين الأحرف المتشابهة المتتالية. ويتم وضع الأحرف الأبجدية في مصفوفة 5*5 ويكون ترتيب الأحرف فيها حسب اتفاق الطرفين, ويكون هناك حرفين في نفس الخلية من المصفوفة.
وعند التشفير نأخذ كل جزء لوحده ونتبع القاعدة التالية:
• اذا كان الحرفان في نفس الصف في المصفوفة, فإن تشفير كل حرف منهما هو الحرف المجاور له من جهة اليمين.
• اذا كان الحرفان في نفس العمود في المصفوفة, فإن تشفير كل حرف منهما هو الحرف الذي يليه أسفل منه.
• اذا كان الحرفان ليسا في نفس الصف أو في نفس العمود؛ فإننا نوجد تقاطعهما ويكون تشفير
2. التشفير عن طريق إعادة الترتيب أو التبادل بين الأحرف Transposition cipher
في هذه الطريقة يتم إعادة ترتيب أحرف النص الأصلي للحصول على النص المشفر.ولها ثلاثة أنواع رئيسية:
1) Keyless Transposition Cipher
فبهذه الطريقة يتم كتابة النص الأصلي في مصفوفة بطريقة معينة, ثم ينقل بطريقة معاكسة لطريقة كتابته في المصفوفة للحصول على النص المشفر. فمثلاً يمكن كتابة النص الأصلي في مصفوفة مكونه من صفين بحيث الحرف الأول يكون في العمود الأول في الصف الأول , والحرف الثاني يكون في العمود الأول في الصف الثاني, والحرف الثالث يكون في العمود الثاني في لصف الأول وهكذا حتى انتهاء النص. وحتى نحصل على النص المشفر نكتب جميع الأحرف الموجودة في الصف الأول ثم نتبعها بجميع الأحرف الموجودة بالصف الثاني. ولفك التشفير, يقوم المستقبل بقسمة عدد أحرف النص المشفر الذي وصل إليه على العدد 2, ومن ثم يأخذ النص فالأول ويكتبه في الصف الأول في مصفوفة مكونة منصفين , ويكتب النص فالثاني في الصف الثاني ويقرأ النص من المصفوفة عمود عمود.
2) Keyed Transposition Cipher
تقوم هذه الطريقة بتقسيم النص الأصلي لأجزاء متساوية الحجم متفق عليها مسبقاً ومن ثم يؤخذ كل جزء ويشفر باستخدام مفتاح معين متفق عليه, هذا المفتاح يقوم بتبديل أماكن الأحرف حسب مواقعها من الجزء, مثلاً الحرف الأول يحل محل الحرف الثالث وهكذا, ثم يقوم بجمع الأجزاء مع بعضها البعض بعد إعادة ترتيب أحرفها فيحصل على النص المشفر ويرسله.
3) Double Transposition Cipher
تجمع بين الطريقتين السابقتين.
الخلاصة:
نخلص مما سبق بأن صعوبة فك الشفرة لغير المصرح لهم يعتمد على قوة وصعوبة الخوارزمية المستخدمة في التشفير. وفي الآونة الأخيرة ظهرت خوارزميات جديدة وقوية من الصعب فكها!
إرسال تعليق Blogger Facebook