09-03-2007, 02:37
|
المشاركة رقم: 1 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | المنتدى :
منتدى لغة السي c/c++ مقدمه في التشفير | Cryptography | الجزء الاول
| توقيع : romansy | | I Was here some days from 2003 to 2009
good bye My_Blog C++/Java Addict | |
| |
10-03-2007, 05:29
|
المشاركة رقم: 2 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ التشفير بالمفتاح المتناظر | Symmetric Key Cryptography
| توقيع : romansy | | I Was here some days from 2003 to 2009
good bye My_Blog C++/Java Addict | |
| |
12-03-2007, 02:09
|
المشاركة رقم: 3 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ [ALIGN=CENTER]بسم الله الرحمن الرحيم ....... 
اولا اعتذر عن التأخير في اكمال الجلسه السابقه ، ويعلم الله اني مشغول جدا هذه الايام بالامتحانات ، ولكن سأضاعف الجهود قدر الامكان لكي ننتهي سريعا من الجزء الاول ،، وننتقل الى الثاني (باذن الله) .[/ALIGN] وصلنا المره السابقه الى كيفيه توليد الارقام العشوائيه ...
حسنا ، الارقام العشوائيه هي بكل بساطه ارقام (1،3،100،5) يتم اختيارها بشكل عشوائي .. اغلب المبرمجين يعرفون قيمه هذه الاعداد فهي تستخدم بكثر في عده نواحي مثل الالعاب Game ، نمذجه ومحاكاه الحاسب Simulation And Moduling والتشفير Cryptography وغيرها من المجالات ..
في التشفير ، اهم ما يجب ان يتوفر في هذه الاعداد هو ان لا تتكرر ابدا ، ايضا ان تتجاوز الاختبارات الاحصائيه ، الاختبارات الاحصائيه هي مجموعه اختبارات يتم تطبيقها على الاعداد (او العدد) لكي تعرف هل هي عشوائيه ام لا ..
لنفترض لدينا مجموعه من الاعداد (الف عدد مثلا) ، وقمنا بسؤال احد الذين يقومون بهذه الاختبارات "هل هذه الاعداد عشوائيه ام لا" ، كل ما يقومه هذا الشخص (الاحصائي) بالقيام بتحويل الاعداد اولا الى الترميز الثنائي Binary Format اي يقوم بتحويل الاعداد الى 0 و1 ، بعدها يقوم باجراء عده اختبارات على هذه الاعداد ، الاختبارات تكون عباره عن عده اسئله :
هل العدد 1 يظهر بنفس تكرار 0 ؟ ام اكثر ام اقل ؟
هل العددين 1و 0 يظهران بشكل محدد كل مره ؟ (مثلا تأتي 1 اولا بعدها 0) ؟
وغيرها من الاسئله .... 
المهم ، بعدها في حال نجح الاختبار ، تكون الاعداد العشوائيه التي اعطيتها للاحصائي محتمله ان تكون عشوائيه !! لا نستطيع ان نقول هي عشوائيه بصوره مؤكده 100% .. لماذا ، سنعرف لاحقا .. مولدات الارقام العشوائيه A Random Number Generator (اختصارا RNG ) : 
عرفنا ان الاعداد العشوائيه هي اعداد تكون بصوره عشوائيه وغير مرتبه ، حسنا السؤال الذي يطرح نفسه : من اين يمكن الحصول على هذه الاعداد العشوائيه ؟؟ هناك مصدرين : الاول هو لتوليد اعداد عشوائيه حقيقه او كامله RNG او True RNG ... وهنا في هذه الحاله سوف نستخدم اجهزه خاصه لتوليد الاعداد (تأخذ مدخل يتغير باستمرار) مثل قياس الظروف الجويه ، حساب سريان التيار الكهربائي وغيرها وهذه الاعداد بالطبع سوف تجتاز الاختبار الاحصائي ..
واذا طلبنا من هذه الاجهزه اعداد عشوائيه اخرى ، فلن نحصل على نفس الناتج ابدا ، ولذلك لان المخرج (الاعداد) تعتمد على مدخل غير ثابت (يتغير باستمرار) ، لذلك فإن الاعداد العشوائيه الناتجه من هذه الاعداد لا تتكرر ابدا ، ولهذه تسمى بالاعداد العشوائيه الصحيحه او الكامله ..
قرأت عن ان شركه Intel تقوم باستخدام RNG يوضع داخل النظام ويقوم بحساب الحراره او شيء مشابه ، وهو مصدر يتغير باستمرار ، ايضا هذا الجهاز لا يأتي مع اي معالج بنتيوم (الا مع الطلب) ، لكن يحتمل ذلك في السنوات المقبله . شركات اخرى مثل : nCipher, Chrysalis تبيع اجهزه تسمى cryptographic accelerators هذه الاجهزه تأتي بـ RNG .... (في الجلسه المقبله باذن الله ،سوف نتناول بعض من هذه الاجهزه) .
المصدر الاخر لتوليد الارقام العشوائيه هو Pseudo-Random Number Generator ... الاعداد العشوائيه المزيفه A Pseudo-Random Number Generator (اختصارا PRNG)  من اين يمكننا الحصول على اعداد عشوائيه اذا كنا لا نملك هذه الاجهزه ، الجواب باستخدام مولد الاعداد المزيفه ، وهو عباره عن خوارزميه لتوليد هذه الاعداد "المزيفه" ، بالتأكيد كلمه "مزيفه" يسبب لك بعضا من الحيره ، واليك تفسيره ،
هنا اذا استخدمنا الخوارزميه وولدنا الاعداد (مثلا الف عدد) ، بعدها ذهبنا الى صديقنا الاحصائي وقمنا باختبار هذه الاعداد ، الناتج هو ان هذه الاعداد سوف تنجح ايضا في الاختبار !!
اعلم ان الحيره زادت ضعفين ، لا تقلق ..
الذي يجعل هذه الاعداد مزيفه هو انها تتكرر (والف خط تحتها) ... اذا شغلت مولد الاعداد المزيفه في جهازين مختلفين سوف يطلع بنفس الناتج ، اذا شغلت البرنامج بعد سنه سوف يطلع بنفس الناتج !!
لذلك قبل قليل قلنا (هل انت متذكر) ان النتيجه التي يخرج بها الاحصائي هي محتمله ان تكون عشوائيه وليس عشوائيه 100% ، (لأنها ممكن ان تتكرر -هذا في حاله اسخدمنا PRNG-) .
اذا الاحصائي يعطينا اجابه على انه الاعداد عشوائيه فقط ، ولكن هو لا يعرف هل هي تتكرر ام لا ... يعطينا فقط نصف الاجابه .
حسنا ، اذا كانت الاعداد في PRNG تتكرر ، اذا ما هو الشيئ الجيد فيها ؟؟
لانه بكل بساطه يمكنك ان تغير التانج عن طريق ما يعرف بالـ Seed (البعض يترجموها بالبذره) ، كما هو الحال مع RNG تأخذ المدخل من (قياس الظروف الجويه، التيار) فإن PRNG تأخذ المدخل (البذره Seed) . اذا غيرت المدخل Seed سوف تتغير المخرجات ، في الـ RNG المدخلات تتغيربنفسها بدون الحاجه اليك ، في PRNG يجب عليك ان تغير المدخل Seed في كل مره ادرت الحصول على عدد عشوائي ..
ما هي البذره او الـ Seed ؟؟
هذه البذره ممكن ان تكون مثلا الوقت (كل جزء من الالف من الثانيه millisecond ) ، او مثلا مدخل من الكيبورد ، او حركه من الماوس ، او موقع الماوس في الشاشه (عدد البكسلات من الجهه الافقيه والعاموديه) ، باختصار يعني لا يمكن توقع القيمه هنا ... 
قد يأتي سؤال طاير الان في رأسك وتسأل "لماذا لا استخدم الـ Seed فقط بدون الـ PRNG" ؟؟؟
لسببين ، الاول هو الحاجه السرعه ، فجمع الـ Seed يأخذ وقت طويل نوعا ما ..
مثلا انت بحاجه الى عده الالاف عدد ، اذا استخدمنا الـ Seed فانه يأخذ قتا حتى يجمع الاعداد المطلوبه !! تخيل مثلا جمع الSeed كان عباره عن حركه للماوس (واخذ الموقع) ، هنا لكي نولد 1000 عدد فاننا بحاجه الى 1000 حركه ، مشوار طويل ...
ولكننا اذا استخدمنا الـ PRNG كل ما علينا هو ادخال Seed واحد (بطول 160 بت تقريبا) وبعدها نبدأ بتوليد الاعداد باستخدام هذا الSeed ، وسوف تخرج لنا الالاف من الاعداد في غضون ثواني ...
السبب الاخر هو الـ (الفوضى مصطلح بايخ ولكن الى الان لم اجد اي ترجمه له ، وهذه من رأسي) ) المصطلح بالانجليزي هو entropy ،
على العموم كلما زادت الفوضي entropy كلما كانت النتيجه اكثر عشوائيه ، والـ PRNG تقوم بأخذ الSeed وتبعد منه بعض البتات (بطريقه معينه لا اعلم تفاصيلها) وبعدها تصبح النتيجه فوضويه اكثر ..
ايضا اغلب الـ PRNG تستخدم مفهوم يسمى message digests (سنتحدث عنه بالفصيل ان شاء الله الجلسه البعد القادمه) على العموم فكرته بسيطه مثل الخلاط blenders ، الخلاط العادي الذي يستخدم في المطابخ يأخذ العديد من الاطمعه ويخلطها ويخرج الناتج خليط من الاطعمه التى دخلت ، و الـmessage digests تأخذ البتات ووتدخلهم هذا الخلاط ويخرج الناتج خليط بشكل عشوائي ..
سوف نأخذ بعضا من خوارزميات توليد الاعداد العشوائيه (في الجزء الثاني او الثالث )، ونقوم بتطبيقها ، بالمناسبه الدوال rand , random تولد اعداد مزيفه ، و على حسب ما قرأت انه random تولد اعداد اكثر عشوائيه ، لا ادري لماذا لكن سأبحث عنها باذن الله .. الهجوم على البيانات المشفره Attacks on Encrypted Data  عرفنا في الجلسه السابقه انه المخترق هو الشخص الذي يريد سرقه المعلومات ، ولكي يحصل على المعلومات يجب ان يفك تشفير البيانات المشفره ، ولفك التشفير فإن لديه طريقتان ، معرفه المفتاح ، او كسر الخوارزميه .. Attacks on Keys الهجوم على المفتاح : هنا يقوم المخترق بتطيق هجوم يسمى القوه العنيفه brute-force attack وطريقته هو ان يجرب مفتاح مفتاح الى ان يصل الى المفتاح المطلوب ..
لنفرض ان المفتاح يقع في النطاق من 0 الى 100,000,000,000 (مائه بليون) ، اولا يقوم المخترق بادخال الرقم 0 الى خوارزميه فك التشفير ويقوم بادخال الرساله المشفره ايضا ، بعدها ينظر الى النتيجه هل هي معقوله او مفهومه ، اذا كانت الاجابه نعم فاذا المفتاح هو 0 ، اما اذا كانت الاجابه بـ لا ، فيقوم بتجربه المفتاح 1 و بعدها 2 و100 و ... 100,000,000,000. 
(تذكر ان الخوارزميه تقوم بعملها بغض النظر هل المفتاح صحيح ام خاطئ ، وفي كل مفتاح خاطئ النتيجه تكون غير مفهومه ، لذلك يجب على المخترق النظر الى النتيجه في كل مره يجرب فيها مفتاح ، المخترق الذكي يكتب برنامج يقوم بفحص الرساله هل هي مفهومه (ضمن نضاق الاعداد الابجديه) ؟ نعم اذا ارسل هذا هو المفتاح ، اذا لأ جرب الرقم التالي ...
في حاله 100 بليون رقم ، قد يحصل المخترق على المفتاح من اول تجربه ، ويمكن من التجربه الاخيره ، على العموم في المتوسط قد يحصل عليه في 50 بليون محاوله ..
كم من الوقت تأخذ عمليه تجربه 50 بليون مفتاح ؟ 3 سنوات؟3 شهور؟3 ايام ؟
لنفرض انك تريد الحفاظ على الرساله لمده 3 سنوات ، وان المخترق يستطيع محاوله 50 بليون مفتاح في 3 دقائق اذا عليك تكبير المفتاح وجعل المدى من 0 الى 100 بليون بليون بليون بليون بليون بليون (يالهي ) .. وهكذا يأخذ المخترق وقتا اطول حتى يجد المفتاح الصحيح ..
هذا المفهوم يعرف بـ حجم المفتاح Key Size ، النقود تقاس بقيمتها ، الذهب بالوزن ، المفتاح في التشفير يقاس بعدد البتات bits ، والمفاتيح تكون عاده بطول 40 bit او 56 bit او 128 bit وهكذا ..
مدى الـ 40 بت هو من 0 الى 1 ترليون
مدى الـ 56 بت هو من 0 الى 72 كروليون quadrillion
مدى الـ 128 بت هو من 0 الى اااااااااااه احسن نقول 128 بت فقط 
باختصار ، اذا كنت تريد ان تجعل عمل المخترق اكثر صعوبه ، قم بتكبير حجم المفتاح ، المفتاح الكبير يضمن لك حمايه اكبر ،،،
في عام 1997 ، تم كسر الـ 40 بت في ثلاث ساعات ، و تم كسر 48 بت في 280 ساعه ..
(كل بت زياده يأخذ ضعف المده السابقه ، مثلا 40 بت تأخذ 3 ساعات ، 41 بت تأخذ 6 ساعات ،وهكذا ) ..
في 1999 ، تم كسر 56 بت في 24 ساعه ( تم كسره من قبل Electronic Frontier Foundation وتم استخدام جهاز خاص فقط لكسر خوارزميه DES ).
بالطبع المخترق لن تكون لديه هذه الامكانيات وبالتالي سوف يأخذ وقتا اطول بكثير من الشركه السابقه ، ولكن نحن هنا نفترض ان المخترق عباره عن حكومه او الـ FPI ) .
حاليا 128 بت هو افضل حجم للمفتاح ،ربما في حال كسره سوف ننتقل الى 512 بت (وهو اكبر حجم للمفتاح ونظريا لا يمكن كسره بهذه الطريقه (brute-force attack) ابدا ).
ومن الممكن ان يقوم المخترق بالهجوم على المفتاح ولكن بطريقه اخرى ، وهي محاوله توليد PRNG بنفس البذره Seed التي قمت بادخالها في الـ PRNG . اذا استخدمت Seed صغير ، قد يقوم المخترق بتجربه رقم رقم الى ان يجد الSeed الصحيح (قد حصل هذا لشركه نت سكيب ، سأذكره بعد قليل) ، لذلك عليك عندما تختار Seed ان تختار واحد ممتاز ولا يمكن تخمينه ... نظره تاريخيه : Netscape’s Seed  ان التشفير بالمفتاح المنتاظر هو احد مكونات SSL الذي اخترع من قبل العلماء في شركه نت سكيب (احد العلماء بل رئيس العلماء في فتره التسعينات هو العالم العربي المصري طاهر الجمل ، والذي اخترع الخوارزميه التي تعرف بـ ELGAMAL نسبه الى اسمه ، ساتكلم عنه فيما بعد) ، وفي وقت توليد الاتصال في SSL يجب ان يولد رقم عشوائي ، وقد استخدمت الشركه PRNG يجمع المعلومات (الوقت + رقم العمليه process ID ) واستخدم كبذره Seed للمولد PRNG .
بالنسبه الى process ID فيمكن الحصول عليه من خلال الدخول الى نفس الجهاز الذي ولده ، او يمكن تطبيق هجوم brute-force attack حيث طوله فقط 15 بت ..
اما بالنسبه الى الوقت ، استخدمت الشركه الثواني (وليس جزء من الالف من الثواني) ولذلك هناك 60 ثانيه فقط ،
على العموم في 1995 قام Goldberg and Wagner بايجاد الSeed وبالتالي ايجاد المفتاح في اقل من دقيقه ، سواء كان المفتاح 40 بت او 128 بت ، سوف يأخذ اقل من دقيقه !!
وقد قامت نت سكيب بعدها باضافه Seed جديد يعتمد على عده عوامل :
. mouse position, memory status, last key pressed, audio volume, and many others
وهكذا يصعب ايجاد الSeed .. كسر الخوارزميه Breaking the Algorithm : وهنا يعتمد على قوه ملاحظه وذكاء المخترق ، مثلا لاحظ ان رقم معين يظهر في مكان معين ، هنا يستطيع تخمين هذا العدد بعد تجربه العديد من المحاولات حتى يحصل على النص الاصلي .. 
مثل تلك الخوارزميات الضعيفه يمكن ان تخترق وحتى لو كان حجم المفتاح كبير ،
[ALIGN=CENTER]اتوقف هنا ،، وسأعود قريبا باذن الله لتكمله باقي الجلسه ...
تبقى مفهومين مهمين جدا جدا وهما Block Cipher , Stream Cipher ..
وبعض النقاط حول DES,3DES,AES
وبعدها تنتهي الجلسه ....
والسلام عليكم .......[/ALIGN] 
| توقيع : romansy | | I Was here some days from 2003 to 2009
good bye My_Blog C++/Java Addict | |
| |
13-03-2007, 09:46
|
المشاركة رقم: 4 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ بسم الله الرحمن الرحيم ... 
[ALIGN=CENTER]بعد ان عرفنا ماهو التشفير بالمفتاح المتناظر واهميه المفتاح ، تبقى ان نعرف ماهي الخوارزميات التي تنطوي تحت هذا النوع من انواع التشفير (تذكر ان هناك نوعين ، الاول هو التشفير بالمفتاح المنتاظر، والثاني سنذكره لاحقا) ..
هناك نوعين من انواع التشفير بالمفتاح المنتاظر وهما :
* شفرات الكتل Block Cipher
* شفرات التدفق Stream Cipher
ماهما ، وما هي الطرق المستخدمه فيهما ، وماهو الافضل منهما ، ستعرف ذلك من خلال الفقرات القادمه ..[/ALIGN] شفرات الكتل Block Cipher  شفرات الكتل (كما هو واضح من اسمها) تعمل على Block (كتله) من البيانات في كل مره ، عندما تزود الخوارزميه (او برنامج التشفير) بالنص الاصلي هنا في هذا النوع يقوم بتقسيم النص الى عده من الكتل ، كل كتله حجمها يكون 64 بت واحيانا 128 بت (او 16 بايت) ، طبعا الحجم بيكون على حسب الخوارزميه المستخدمه 
نأخذ مثال بسيط ...
لنفرض ان طول النص الاصلي 227 بايت ، والخوارزميه تأخذ 16 بايت في كل مره ، الان في في مرحله التشفير ، ندخل المفتاح ، والكتله الاولى (اول 16 بايت) ، ونبدأ عمليه التشفير ، والناتج هو نص مشفر بطول 16 بايت ايضا . بعدها نأخذ الكتله الثانيه (ثاني 16 بايت ) ،و نبدأ في عمليه التشفير ، والناتج هو ايضا نص مشفر بطول 16 بايت ، وهكذا ستستمر العمليه 14 مره (وهنا تكون شفرت 224 بايت من النص الاصلي) .
الان بقيه 3 بايتات ولكن الخوارزميه لا تعمل الا اذا كانت الكتله بطول 16 بايت .. اذا ما العمل ؟؟ هنا سوف تستخدم مفهوم جديد اسمه الحشو Padding وهو بكل بساطه يعمل على اضافه بايتات اضافيه الى الكتله الناقصه حتى تكتمل وتصبح بالحجم المطلوب .. وهناك عده طرق للحشو سوف نذكر اشهرها ، على العموم في حال استخدمنا اي طريقه يجب ان تكون مفهومه للشخص الذي نريده ان يفك تشفير الرساله اي يعرف هذه البايتات هي بايتات اضافيه .
الطريقه الاشهر للحشو .. هي ان نعرف اولا عدد البايتات التي سوف نضيفها الى الكتله الناقصه ، في المثال السابق كانت (13 بايت ) ، بعدها نقوم بتكرار هذا العدد في كل بايت في الكتله ، اي انه سنحشو العدد "13" ثلاثه عشر مره ..
في عمليه فك التشفير ، سننظر الى الكتله الاخيره ونرى ان كان هناك عدد ما يتكرر في كل خانه من خانات الكتله الاخيره ..
طبعا عند التشفير ، في حاله الكتله الاخيره تساوي 16 بايت فلا يوجد داعي للحشو (اصلا لا يوجد مكان للحشو). 
المشكله في هذا النوع "شفره الكتل Block Cipher" هو انه في حاله كانت هناك كلمات تتكرر كثيرا في النص الاصلي ، فانها بعد التشفير سوف يكون النص المشفر متشابه ايضا ..
مثلا الاسم " wajdy essam " ظهر 3 مرات في مواقع مختلفه في النص الاصلي (او الرساله) . مثلا ظهر في الكتله الاولى (اول 16 بايت) والكتله الرابعه (رابع 16 بايت) والكتله العاشر(عاشر 16 بايت) .
الان عند التشفير ،
دخلت الكتله الاولى "Wajdy essam" وتتشفر الى "Selrurjgqm"
دخلت الكتله الرابعه "Wajdy Essam" وتتشفر الى "Selrurjgqm"
دخلت الكتله العاشره "Wajdy Essam" وتتشفر الى "Selrurjgqm"
امم هنا نلاحظ انه يمكن للمخترق معرفه ان الثلاثه "Selrurjgqm" هي عباره عن جمله واحده ، وهنا ممكن ان يكسهر بسهوله ،،
الحل لتجنب مثل هذا التكرار هو استخدام اساليب تسمى Mode Of Operation "انماط او اساليب العمليات" والبعض يطلق عليها FeedBack Modes . (سنتناول هذه الاساليب في الجزء الثاني باذنه تعالى) ..
على العموم اشهر هذه الاساليب هو cipher block chaining اختصارا (CBC) ، هنا في هذا النمط سوف نطبق العمليه XOR في النص الاصلي الحالى و النص المشفر السابق ..
كتله النص الاصلي الحالي XOR كتله النص المشفر السابقه وبعدها سوف نجري عمله التشفير ..
بالنسبه الى كتله النص الاول ، لن يكون هناك نص مشفر سابق لذلك سوف نطبق العمليه مع متغير اسمه initialization vector اختصارا IV . 
وهكذا سوف ننهي مشكله تكرار البيانات بهذه الطريقه .. شفره التدفق Stream Ciphers  النوع الثاني من انواع التشفير بالمفتاح المتناظر هو شفره التدفق ، وهنا سوف نتعامل مع بت بت او بايت بايت وليس كتله كتله ، وعمليه توليد المفتاح Key Stream من الممكن ان تعتمد على النص المشفر السابق ومن الممكن لأ (هناك نوعين من هذا النوع ، نوع متزامن ونوع غير متزامن ، سنتكلم عنهم فيما بعد) .  Block VS Stream من الافضل ؟  شفره التدفق هي اسرع بكثير من شفرات الكتل وعمليه كتابه برامج سهله واكودها اقل بكثير من الكتل ، واحد اشهر انواع شفرات التدفق RC4 وهي اسرع بكثير من اي نوع من انواع شفرات الكتل ، وتتطلب حوالى 30 سطر فقط في الكود . معظم شفرات الكتل تأخذ على الاقل 200-400 سطر .
شفرات الكتل من جهه اخرى تسمح باعاده استخدام المفتاح ، بعكس شفرات التدفق التى تستخدم المفتاح مره واحده فقط ، في الكثير من الاحيان يجب ان نشفر العديد من الاشياء بمفتاح واحد .
مثال ، شركه لديها قاعده بيانات ضخمه للعملاء تحتوي معلوماتهم من ارقام هواتف وبطاقات ائتمانيه وغيرها ، في حال استخدمت شفرات التدفق سوف تتطلب لكل مدخل (عميل) مفتاح خاص وهذا يتطلب مئات من المفاتيح وهو امر غير عملي ، اما في حاله استخدمت شفرات الكتل فإنها تشفر جميع البيانات باستخدام مفتاح واحد ، ولفك تشفير بيانات اي عميل نستخدم نفس المفتاح . عمليه اداره المفتاح اسهل بكثير في هذه الحاله .
لذلك في معظم قواعد البيانات يتم استخدام شفرات الكتل Block Cipher وايضا في برامج البريد الالكتروني ، وايضا في برامج تشفير الملفات . Digital Encryption Standard  في بدايه السبيعنات تم معرفه انه اغلب الشفرات القديمه لم تعد مجديه وغير نافعه للتشفير ، ولهذا قرر علماء في شركه IBM بعمل خوارزميه جديده للتشفير تبنى على بنيه قديمه تسمى Lucifer (نسبه الى مخترعها Horst Feistel) ، ومن خلال مساعده وكاله الامن القومي NSA تم عمل خوارزميه DES .
DES هي احد شفرات الكتل Block Cipher ، وتأخذ مفتاح بطول 56 بت ، وتعمل على كتله طولها 64 بت . (سنتحدث عنها بالفصيل فيما بعد) .
وفي الثمانيات لم يتم اكتشاف اي ثغره في DES لذلك كانت اقوى الخوارزميات في ذلك الوقت ، ولكسر اي رساله مشفره بها لم يكن هناك الا استخدام هجوم الـ brute-force ، ولأن طول المفتاح 56 بت (مداه من 0 الى 72 كوارلديون) والاجهزه بطيئه للغايه ، فكانت عمليه الكسر تتطلب سنه كامله .
وفي 1999 وفي احد المؤتمرات تم كسر هذه الخوارزميه في 24 ساعه من قبل the Electronic Frontier Foundation .. اذا العالم يجب ان ينتقل الى خوارزميه اخرى !! Triple DES  احد البدائل كانت خوارزميه Triple DES او البعض يسموها 3DES ، هي بكل بساطه DES ولكن ثلاثه مرات ، يعني سوف تدخل الكتله الاول (16 بايت) الى الخوارزميه بالمفتاح الاول ، والناتج سوف يدخل الى الخوارزميه مع المفتاح الثاني ، والناتج سوف يدخل مع المفتاح الثالث ... 
هنا سوف نستخدم ثلاثه مفاتيح ، كل منها بطول 56 بت (اي كأنها 168 بت) ، قد تسأل وتقول "اذا كانت كسر مفتاح واحد يأخذ 24 ساعه ، اذا كسر ثلاثه مفاتيح سوف يأخذ 72 ساعه" هل هذا صحيح ؟
بالطبع لا ، واليك مثال بسيط ..
لنفترض ان المفاتيح الثلاثه A , b , c كل منها مداه من 0 الى 72 quadrillion ..
وأن المفتاح هو : A = 1 , B = 33,717, C = 1,419,222
الان المخترق سوف يجرب a=0 , b=0 , c=0 وهو ليس المفتاح الصحيح ..
بعدها سوف يجرب المفتاح a=1, b=0 , c=0 وهو ليس المفتاح الصحيح .. (مع العلم بأن الاول a صحيح) لكن كيف يعرف المخترق ذلك ؟ النتيجه لم تظهر صحيحه الا اذا كانت الثلاثه مفاتيح صحيحه والا فسوف يدور في حلقه مفرغه ..
على العموم 3DES لها مشكله وهي انها بطئيه جدا ، الـ DES العاديه هي بطيئه ، فما بالك بـ DES ثلاث مرات ، واغلب التطبيقات تتطلب السرعه في العمل ، وهذه الخوارزميه لا تنفع لانها بطيئه جدا !!
اذا العالم مره اخرى بحاجه الى خوارزميه !! البدائل : 
بعد مشكله البطئ في خوارزميه الـ 3DES
، اتجه العديد من الافراد والشركات لتطوير خوارزمياتهم الخاصه وكانت النتيجه ان هناك العديد من الخوارزميات الجيده والتي تأخذ مفاتيح متغير الطول (وليس ثابته الطول كما في DES ) ، من هذه الخوارزميات : RC2,RC5,IDEA,CAST,SAFER,BlowFish ..
هذه الخوارزميات بالرغم من قوتها لم تصبح واسعه الانتشار كما في DES و Triple DES .
اذا العالم بحاجه هذه المره الى مقياس او خوارزميه واسعه الانتشار كـ DES !! Advanced Encryption Standard  نتيجه لهذا الامر قام المعهد الوطني للمعايير National Institute of Standards and Technology اختصارا NIST ، باستدعاء جميع المهتمين بهذا الامر وكلفت بكل منهم بعمل خوازرميته الخاصه وفي النهايه اقوى خوارزميه سوف تكون هي المقياس الجديد AES . وقد قدمت 15 خوارزميه (منها القوي ومنها الضعيف)
وفي 1999 قامت NIST باختيار افضل 5 خوارزميات بعد اجراء العديد من الاختبارات ، وقد جعلت الامر بالتصويت لافضل خوارزميه ، وفي 2000 تم اختيارخوارزميه Rijndael كالمقياس الجديد AES . نهايه الجلسه  احد الامثله الواقعيه للتشفير بالمفتاح المتناظر هو في قواعد البيانات ، مثلا في اوراكل i8 يتم استخدام خوارزميه DES و 3DES ، ويتم التشفير عن طريق الامر (لغه PL/SQL) :
dbms_obfuscation_toolkit.DESEncrypt(input_string => plaintext,
key => keyData, encrypted_string => ciphertext);
[ALIGN=CENTER]وهكذا وصلنا الى نهايه هذه الجلسه التي اخذت بعضا من الوقت ، عسى ان تكونوا استفدتم منها ...
المره القادمه باذن الله سوف نناقش موضوع :
اداره المفتاح Symmetric-Key Management
والسلام عليكم ...[/ALIGN] 
| توقيع : romansy | | I Was here some days from 2003 to 2009
good bye My_Blog C++/Java Addict | |
| |
29-03-2007, 02:18
|
المشاركة رقم: 5 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ Symmetric-Key Management
| توقيع : romansy | | I Was here some days from 2003 to 2009
good bye My_Blog C++/Java Addict | |
| |
13-04-2007, 01:09
|
المشاركة رقم: 6 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ .......
| توقيع : romansy | | I Was here some days from 2003 to 2009
good bye My_Blog C++/Java Addict | |
| |
10-08-2007, 07:37
|
المشاركة رقم: 7 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++
UP
سنبأ بالجزء الثاني قريبا ...
هيا أين أنتم يا CodeBreakers
تحياتي
| توقيع : romansy | | I Was here some days from 2003 to 2009
good bye My_Blog C++/Java Addict | |
| |
11-08-2007, 05:28
|
المشاركة رقم: 8 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو خبير :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jun 2007 | | العضوية: | 132084 | | المشاركات: | 450 [+] | | بمعدل : | 0.21 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ نحن هنا ومتابعين جزاك الله كل خير
ولكن سؤال يااخي رمانسي هل الموضوع منقول ولا كل هذه المعلومات عندك
| توقيع : مهندس أحمد فؤاد | |
اللهم اني أصبحت أشهدك و أشهد حملة عرشك انك أنت الله لا إلاه إلا أنت وحدك لا شريك لك و أن محمدا عبدك و رسولك عدد خلقك و زنة عرشك و مداد كلماتك
| |
| |
11-08-2007, 08:03
|
المشاركة رقم: 9 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | البيانات | | التسجيل: | Jul 2004 | | العضوية: | 17744 | | المشاركات: | 1,317 [+] | | بمعدل : | 0.41 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ لاااااا إله الا الله ..
السموحة يا أستاذ لم انتبه للموضوع إلا الآن ...
والله مجهود كبير جداً .. لي عودة ان شاء الله عما قريب فقط انتهي من الامتحانات
وان شاء الله سأعود لقراءة الموضوع من جديد ..
جزاك الله خير يالغالي ..
| توقيع : ماجددج | | 
| |
| |
11-08-2007, 08:45
|
المشاركة رقم: 10 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++
اهلا بالشباب
كما ذكرت في البدايه اقتباس:
وهذه الكتب والمراجع التي باذن الله تؤهلك لدخول هذا العلم من اوسع ابوابه :
Handbook of Applied Cryptography by :Alfred J. Menezes
Cryptography: Theory and Practice by Douglas Stinson
Applied Cryptography, by Bruce Schneier
RSA Security’s Official Guide to Cryptography by : Steve Burnett and Stephen Paine (المرجع الاساسي للجزء الاول ) .
| لاحظ السطر الاخير
الموضوع من الكتاب السابق وطبعا الترجمه ليست حرفيه وانما اتعبت ترتيب المواضيع وترتيب الصور
بالنسبه للجزء الثاني فراح يستفيد منه الجميع لانه هو البدايه الحقيقيه في موضوع التشفير وسندرس في البدايه الطرق القديمه ونطبق بعض من البرامج ب c , java وانتو جماعه الفيجول بيسك حولو تلك البرامج الى لغتكم ايضا
بالمناسبه الموضوع ده تم نقله من غير علمي الى منتديات المشاغب وطبعا كعاده الذين ينقلوا المواضيع لم يذكر المصدر
تحياتي والقاكم قريبا ان شاء الله
| توقيع : romansy | | I Was here some days from 2003 to 2009
good bye My_Blog C++/Java Addict | |
| |
19-08-2007, 02:55
|
المشاركة رقم: 11 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jan 2005 | | العضوية: | 27741 | | المشاركات: | 975 [+] | | بمعدل : | 0.32 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ السلام عليكم
تسلم اخوي , على الدرس الجميل ,
لم استط ان اقرأه كله , من شدة النعاس ,
لكن باذن الله لي عودة ,
| توقيع : TheXGhost | | 
حان الاوان للهجوم من جديد <<< فهل من مجيب ؟؟ http://www.3asfh.net/vb/showthread.php?t=46674
بدأ المسير الى الهدف والحر ان بدا المسير فلن يكل و لن يقف
عاجل ::: اعلان مهم !! www.xxx.xx =========> DDOS Attack
ارجو من الاخوان الذين قاموا بلاشتراك
بالموضوع المذكور اعلاه ,
اضافة الايميل للمراسلة عليه باوقات الهجوم
و الاستعداد أو من خلال الموقع التالي : www.al-jinan.org http://www.mslamh.jeeran.com/ akram1425@hotmail.com g_3asfh@hotmail.com
بدأ العد التنازلي للعمل .....
لا اله الا الله محمد رسول الله
.: الله اكبر والعزة لله :.
| |
| |
21-08-2007, 12:28
|
المشاركة رقم: 12 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو خبير :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jun 2007 | | العضوية: | 132084 | | المشاركات: | 450 [+] | | بمعدل : | 0.21 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ بصراحة معلومات جميلة جدا جدا ... انا قرأت جزء من المووضع وان شاء الله هكمله للنهاية
جزاك الله كل خير ورحم الله والديك وجعل الله مثواك الجنة وجعله في ميزان حسناتك
وصلي الله على محمد وعلى اله وصحبه وسلم
| توقيع : مهندس أحمد فؤاد | |
اللهم اني أصبحت أشهدك و أشهد حملة عرشك انك أنت الله لا إلاه إلا أنت وحدك لا شريك لك و أن محمدا عبدك و رسولك عدد خلقك و زنة عرشك و مداد كلماتك
| |
| |
29-08-2007, 04:31
|
المشاركة رقم: 13 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jan 2005 | | العضوية: | 27741 | | المشاركات: | 975 [+] | | بمعدل : | 0.32 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ السلام عليكم و رحمة الله و بركاته
اخوي , ياريت لو تكمل بقية الدسور في اقرب وقت , و الله لهم قيمة كبيرة عندي , لاني باذن الله احاول اتعلم كسر التشفير , 
لا تبخل علينا , الله يكرمك ,
| توقيع : TheXGhost | | 
حان الاوان للهجوم من جديد <<< فهل من مجيب ؟؟ http://www.3asfh.net/vb/showthread.php?t=46674
بدأ المسير الى الهدف والحر ان بدا المسير فلن يكل و لن يقف
عاجل ::: اعلان مهم !! www.xxx.xx =========> DDOS Attack
ارجو من الاخوان الذين قاموا بلاشتراك
بالموضوع المذكور اعلاه ,
اضافة الايميل للمراسلة عليه باوقات الهجوم
و الاستعداد أو من خلال الموقع التالي : www.al-jinan.org http://www.mslamh.jeeran.com/ akram1425@hotmail.com g_3asfh@hotmail.com
بدأ العد التنازلي للعمل .....
لا اله الا الله محمد رسول الله
.: الله اكبر والعزة لله :.
| |
| |
29-08-2007, 07:15
|
المشاركة رقم: 14 | | المعلومات | | الكاتب: | | | اللقب: | .:: عضو قدير ::. | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jul 2003 | | العضوية: | 11753 | | المشاركات: | 1,053 [+] | | بمعدل : | 0.29 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ ولا يهمك أخي الغالي ،
باذن الله ، غدا سوف يكون الدرس الاول في الجزء الثاني ،
وشكرا للحضور ،
الى اللقاء.
|
| |
29-08-2007, 08:49
|
المشاركة رقم: 15 | | المعلومات | | الكاتب: | | | اللقب: | :: عضو محترف :: | | الصورة الرمزية | | | | البيانات | | التسجيل: | Jan 2005 | | العضوية: | 27741 | | المشاركات: | 975 [+] | | بمعدل : | 0.32 يوميا | | اخر زياره : | [+] | | الإتصالات | | الحالة: | | | وسائل الإتصال: | | | كاتب الموضوع :
romansy المنتدى :
منتدى لغة السي c/c++ تسلم و الله انتظرك على احر من الجمر 
و على فكرة , ياريت لو تنزل الدروس في كتاب pdf
لانه بصراحة من اقوى الدروس في العاصفة 
و لا تنزعج من قلة من يقراها فهي تهم بعض من يهتم بامن المعلومات , و على فكرة في امريكا يوجد فقط 5 مدارس تدرس هذا الموضوع , كتخصص , و هي محتكرة بشكل رهيب , ففي الاغلب يتم اختيار النخبة للعمل في NSA...و قليل هم الذين تسنح لهم الفرصة للعمل في NSA .و التمكن من الاطلاع على الامكانيات المتوفرة..
أخوي , لا تنزعج ممن ينقلون الموضوع من غير ذكر المصدر , فهم كالحمار يحمل اسفارا , اغلبهم لا يفقهون ما ينقلون الا ما رحم ربي ...
و السلام عليكم
| توقيع : TheXGhost | | 
حان الاوان للهجوم من جديد <<< فهل من مجيب ؟؟ http://www.3asfh.net/vb/showthread.php?t=46674
بدأ المسير الى الهدف والحر ان بدا المسير فلن يكل و لن يقف
عاجل ::: اعلان مهم !! www.xxx.xx =========> DDOS Attack
ارجو من الاخوان الذين قاموا بلاشتراك
بالموضوع المذكور اعلاه ,
اضافة الايميل للمراسلة عليه باوقات الهجوم
و الاستعداد أو من خلال الموقع التالي : www.al-jinan.org http://www.mslamh.jeeran.com/ akram1425@hotmail.com g_3asfh@hotmail.com
بدأ العد التنازلي للعمل .....
لا اله الا الله محمد رسول الله
.: الله اكبر والعزة لله :.
| |
| | |