ثريد عن علم التشفير أو "التعمية"وبالإنجليزية يسمى "Cryptography"
التعمية لغة هي "تحويل نص واضح إلى آخر غير مفهوم باستعمال طريقة محددة، يستطيع من يعرفها أن يفهم النص"
التعمية بيتم استخدامها من قديم الأزل لأن طرق نقل المعلومات كانت تقليدية عن طريق رسول أو حمام زاجل وغيره
التعمية لغة هي "تحويل نص واضح إلى آخر غير مفهوم باستعمال طريقة محددة، يستطيع من يعرفها أن يفهم النص"
التعمية بيتم استخدامها من قديم الأزل لأن طرق نقل المعلومات كانت تقليدية عن طريق رسول أو حمام زاجل وغيره
فهتلاقيها موجودة عند كل الناس بصور مختلفة بداية من الفراعنة فاليهود فاليونان فالرومان ثم العرب فأوروبا
التعمية أو التشفير في الأوقات دي كانت عبارة عن حرفة قائمة على نقل رسالة مشفرة ويكون المرسل والمرسل إليه هم بس اللي عارف فك الشفرة بدون ما يكون فيه أساس علمي لعملية التشفير دي
التعمية أو التشفير في الأوقات دي كانت عبارة عن حرفة قائمة على نقل رسالة مشفرة ويكون المرسل والمرسل إليه هم بس اللي عارف فك الشفرة بدون ما يكون فيه أساس علمي لعملية التشفير دي
النص المشفر أو الشفرة بالإنجليزية تسمى "Cipher" وده مشتق من الكلمة العربية "صفر" وده دليل على إن بداية علم التشفير/التعمية كانت عند العرب وعنهم أخذ علماء أوروبا وطوروا
عموما فأنا مهتم هنا بالتشفير والتعمية مش بتأريخهم وعلى هذا هبدأ شرح
عموما فأنا مهتم هنا بالتشفير والتعمية مش بتأريخهم وعلى هذا هبدأ شرح
التشفير بيتقسم تقسيمات كتير حسب معايير مختلفة ولكن بيروق لي تقسميه لنوعين هم :
- تشفير كلاسيكي -قديم- Classical cryptography
- تشفير حديث Modern cryptography
- تشفير كلاسيكي -قديم- Classical cryptography
- تشفير حديث Modern cryptography
- التشفير الكلاسيكي
التشفير الكلاسيكي هو النوع اللي كان موجود في العصور القديمة وكان استخدامه شائع وبيتعمد على طريقتين أساسيتين
1 - الإحلال Substitution
2 - الإبدال Transposition
التشفير الكلاسيكي هو النوع اللي كان موجود في العصور القديمة وكان استخدامه شائع وبيتعمد على طريقتين أساسيتين
1 - الإحلال Substitution
2 - الإبدال Transposition
1 - التشفير الكلاسيكي بالإحلال
ده تشفير بيكون عن طريق تغيير الحروف في الرسالة واستبدالها بحروف أخرى ويكون المرسل والمستقبل عارفين طريقة التشفير وبالتالي عارفين طريقة فك الشفرة
فبدلا من إنك تلاقي " حضر الجنود" تلاقي "دظس تنخوار" فمستحيل تفهم الرسالة بدون ما تعرف المفتاح
ده تشفير بيكون عن طريق تغيير الحروف في الرسالة واستبدالها بحروف أخرى ويكون المرسل والمستقبل عارفين طريقة التشفير وبالتالي عارفين طريقة فك الشفرة
فبدلا من إنك تلاقي " حضر الجنود" تلاقي "دظس تنخوار" فمستحيل تفهم الرسالة بدون ما تعرف المفتاح
بما إننا بدلنا كل حرف بما يليه ب 3 حروف فاحنا اسمنا كده شفرنا النص بمفتاح 3 فعدد الحروف اللي اتحركتها هو المفتاح
لو حابب تشفر بشفرة قيصر استخدم الموقع ده ولو عايز تشفر بالعربي فممكن تحط الحروف العربية مكان الإنجليزي
"ابتثجحخدذرزسشصضطظعغفقكلمنهوي"
cryptii.com
لو حابب تشفر بشفرة قيصر استخدم الموقع ده ولو عايز تشفر بالعربي فممكن تحط الحروف العربية مكان الإنجليزي
"ابتثجحخدذرزسشصضطظعغفقكلمنهوي"
cryptii.com
كل اللي بتعمله هو تستبدل أول حرف بآخر حرف والثاني بما قبل الأخير وهكذا
فلو عايز تكتب DOG هتكتبها WLT
النوع ده من التشفير بسيط وساذج زيادة عن اللزوم ويكفي لكسره إنك تجرب كل التبديلات الممكنة فمثلا فالإنجليزية هتجرب ب 25 مفتاح فقط -عدد الحروف- وهتقدر تكسرها
فلو عايز تكتب DOG هتكتبها WLT
النوع ده من التشفير بسيط وساذج زيادة عن اللزوم ويكفي لكسره إنك تجرب كل التبديلات الممكنة فمثلا فالإنجليزية هتجرب ب 25 مفتاح فقط -عدد الحروف- وهتقدر تكسرها
وعلى هذا فأنت تجيب النص المشفر وتجيب أكثر حروف مكررة وتجرب تبدلهم بأكثر حروف بتتكرر فالعربية وهكذا تقلل عدد المحاولات الممكنة وده اللي اتطور بعدين وبقا يتسمى frequency analysis وعليه مثال مهم هنذكره قدام
بالتالي نستنتج إن حوار التشفير الكلاسيكي بالإحلال ده ضعيف شوية
بالتالي نستنتج إن حوار التشفير الكلاسيكي بالإحلال ده ضعيف شوية
لكن الموضوع موقفش عند الحد ده فهنلاقي ظهرت محاولات تطوير مهمة في النوع ده فظهرت شفرة أفاين Affine Cipher
ج- شفرة فجينير
وللتغلب شوية على فك الشفرات بتجريب كل المحاولات الممكنة أو بالتحليل الاحصائي للنص المشفر ظهرت شفرة فجينير Vigenere Cipher
دي شفرة مختلفة شوية وأكثر تعقيدا
ج- شفرة فجينير
وللتغلب شوية على فك الشفرات بتجريب كل المحاولات الممكنة أو بالتحليل الاحصائي للنص المشفر ظهرت شفرة فجينير Vigenere Cipher
دي شفرة مختلفة شوية وأكثر تعقيدا
مش احنا مشكلتنا إن الألف واللام بيترددوا بكثرة فالنص وبالتالي سهل فك الشفرة؟
احنا نخلي للرسالة عدة مفاتيح فأول حرف يتشفر بمفتاح 3 مثلا والحرف التاني بمفتاح 5 والحرف التالت بمفتاح 7 مثلا ثم لما تخلص المفاتيح نكرر فالحرف الرابع يتشفر بمفتاح 3 والخامس ب 5 والسادس ب 7 وهكذا نكرر
احنا نخلي للرسالة عدة مفاتيح فأول حرف يتشفر بمفتاح 3 مثلا والحرف التاني بمفتاح 5 والحرف التالت بمفتاح 7 مثلا ثم لما تخلص المفاتيح نكرر فالحرف الرابع يتشفر بمفتاح 3 والخامس ب 5 والسادس ب 7 وهكذا نكرر
2 - التشفير الكلاسيكي بالإبدال
ده تشفير بيكون عن طريق تغيير مواضع كل حرف في الرسالة فمثلا لو عايز أكتب "العدو قادم" أكتب "دقم لوعاداد" فأنا هتلاقيني مغيرتش أي حرف ولكن غيرت ترتيب الحروف وغيرت مواضعها فقط
لكن لأن النوع ده من التشفير ضعيف فمش بيتم استخدامه
ده تشفير بيكون عن طريق تغيير مواضع كل حرف في الرسالة فمثلا لو عايز أكتب "العدو قادم" أكتب "دقم لوعاداد" فأنا هتلاقيني مغيرتش أي حرف ولكن غيرت ترتيب الحروف وغيرت مواضعها فقط
لكن لأن النوع ده من التشفير ضعيف فمش بيتم استخدامه
فبدلا من استخدامه لوحده بيتم دمجه مع التشفير بالإحلال وهنا الأمور بتتعقد وبتصبح أصعب جدا
عموما فلو أنت عايز تطلع من القصة دي بحاجة مفيدة فلازم تتعرف على شفرة One time pad ودي شفرة غير قابلة للكسر وتعتبر شبه فجينير
شفرة فجينير قلنا إن كل حرف ليه مفتاح وبعد يخلص نكرر
عموما فلو أنت عايز تطلع من القصة دي بحاجة مفيدة فلازم تتعرف على شفرة One time pad ودي شفرة غير قابلة للكسر وتعتبر شبه فجينير
شفرة فجينير قلنا إن كل حرف ليه مفتاح وبعد يخلص نكرر
فلو المفتاح مثلا 952 فأول حرف مفتاحه 9 والتاني 5 والتالت 2 ثم نكرر
فال one time pad دي أنت هيكون عندك مفتاح بطول الرسالة بحيث إن الرسالة لو من 2000 حرف فيكون عندك 2000 مفتاح وطبعا المفاتيح دي عشوائية بيتم استخدامها مرة واحدة فقط وده اللي يخليها مستحيلة الكسر
فال one time pad دي أنت هيكون عندك مفتاح بطول الرسالة بحيث إن الرسالة لو من 2000 حرف فيكون عندك 2000 مفتاح وطبعا المفاتيح دي عشوائية بيتم استخدامها مرة واحدة فقط وده اللي يخليها مستحيلة الكسر
فلو أنت عايز تطبق الشفرة دي عسكريا فكل ما عليك إنك تطبع كتاب مرتين كل صفحة فيه فيها مفاتيح كتير تكون مع المرسل نسخة والمستقبل نسخة
المرسل يشفر ويرسل النص مرفق معاه رقم الصفحة ثم يحرق الصفحة بعد الإرسال والمستقبل يستلم النص المشفر ويفك الشفرة ثم يحرق الصفحة بمجرد الإستلام
المرسل يشفر ويرسل النص مرفق معاه رقم الصفحة ثم يحرق الصفحة بعد الإرسال والمستقبل يستلم النص المشفر ويفك الشفرة ثم يحرق الصفحة بمجرد الإستلام
التشفير الكلاسيكي على الورق صعب وهياخد وقت طويل خصوصا لو أنت بتدمج بين الإحلال والإبدال ولذلك فمن التطبيقات العسكرية على الأنواع دي من الشفرات كانت صناعة Rotor machines بتشفر وتفك الشفرة تلقائيا حسب طريقة ضبطها
من أشهرهم Hebern و Lorenz و بالطبع Enigma
من أشهرهم Hebern و Lorenz و بالطبع Enigma
الإنيجما كانت مبنية على التشفير الكلاسيكي بالإحلال ولكن اختراع الكمبيوتر مع الكبر والغرور بتاع الألمان اللي خلاهم يستخدموا نفس الشفرات ويكرروا جمل معينة في الخطابات العسكرية سهل مهمة اختراقها
للعلم كان فيه حوالي 159 كوانتيليون -18 صفر- احتمال ممكن للي ممكن تكون الإنيجما بتطلعه
للعلم كان فيه حوالي 159 كوانتيليون -18 صفر- احتمال ممكن للي ممكن تكون الإنيجما بتطلعه
- تشفير حديث Modern cryptography
وده بينقسم هو كذلك لثلاثة أنواع
1 - تشفير تماثلي Symmetric encryption
2 - تشفير غير تماثلي Asymmetric encryption
3 - دالة التجزيئ Cryptographic hash function
وده بينقسم هو كذلك لثلاثة أنواع
1 - تشفير تماثلي Symmetric encryption
2 - تشفير غير تماثلي Asymmetric encryption
3 - دالة التجزيئ Cryptographic hash function
النوعين دول من التشفير موجودين على الانترنت فمثلا المتصفح عشان يدخلك على موقع ما بيتصل مع خادم الموقع "السيرفر" عن طريق TLS handshake ودي بتكون مشفرة بتشفير غير تماثلي Asymmetric
بعد ما يتم الاتصال بيتم تبادل المعلومات بين المتصفح والخادم وهي مشفرة بتشفير تماثلي Symmetric
بعد ما يتم الاتصال بيتم تبادل المعلومات بين المتصفح والخادم وهي مشفرة بتشفير تماثلي Symmetric
عموما بشكل عام فأنت فهمت لمحة عامة عن النوعين فالتشفير التماثلي بيكون فيه نص مشفر بمفتاح ونفس المفتاح بنستخدمه لفك التشفير
فالتشفير الغير تماثلي بنشفر بمفتاح عام وده عادي يكون مع الكل وبنفك بمفتاح خاص المستقبل بس يكون عارفه والمفاتيح فالنوع ده من التشفير بتكون أكثر طولا وتعقيدا
فالتشفير الغير تماثلي بنشفر بمفتاح عام وده عادي يكون مع الكل وبنفك بمفتاح خاص المستقبل بس يكون عارفه والمفاتيح فالنوع ده من التشفير بتكون أكثر طولا وتعقيدا
3 - دالة التجزئة Cryptographic hash function
دالة التجزيء أو التجزئة لها خصائص :
1 - بتاخد input -مدخول- بأي حجم ممكن لكن بتخرجه بحجم ثابت فمهما كان حجم اللي دخلته ليها فدايما هيخرجلك output بحجم ثابت
2- كل مدخول أو نص بتدخله للدالة دي بيخرج hash بقيمة مميزة
دالة التجزيء أو التجزئة لها خصائص :
1 - بتاخد input -مدخول- بأي حجم ممكن لكن بتخرجه بحجم ثابت فمهما كان حجم اللي دخلته ليها فدايما هيخرجلك output بحجم ثابت
2- كل مدخول أو نص بتدخله للدالة دي بيخرج hash بقيمة مميزة
لو أنت معاك رسالة ومعاك hash function فسهل تطلع hash value لكن لو معاك hash value و hash function متقدرش تطلع الرسالة وعشان كده اسمها one way hash functions
فيه أنواع كثيرة من دوال التجزئة زي MD5 أو SHA1 أو SHA 256 أو SHA512
للعلم ف SHA256 هي المستعملة فالبتكوين
فيه أنواع كثيرة من دوال التجزئة زي MD5 أو SHA1 أو SHA 256 أو SHA512
للعلم ف SHA256 هي المستعملة فالبتكوين
نظريا فبما إننا بندخل عدد لا محدود من النصوص والرسائل وبنخرج هاش بعدد خانات محدد وبطول محدد فده معناه إنه مؤكد إنه يحصل تكرار فمن الممكن نظريا إنك تلاقي نصين بيطلعوا نفس الهاش ودي حاجة سيئة جدا لل hash function
التكرار ده بيسمى تصادم وده شيء سيء للدالة
التكرار ده بيسمى تصادم وده شيء سيء للدالة
كده أكون شرحت بشكل مختصر جدا أهم أقسام علم التشفير القديم والحديث بدون الخوض في الآليات المعقدة للتشفير نفسها
ده ثريد معمول كثريد ملحق بثريد جاي قريبا إن شاء الله يخص الكريبتو والعملات الرقمية
ده ثريد معمول كثريد ملحق بثريد جاي قريبا إن شاء الله يخص الكريبتو والعملات الرقمية
جاري تحميل الاقتراحات...