me&delphi
25-01-2011, 12:04 AM
السلام عليكم
معيار التشفير المتطور Advanced Encryption Standard) AES) ويعرف كدلك باسم Rijndael وهو عبارة عن تشفير من النوع الثماتلي (symmetric) يعتمد على مفتاح واحد في التشفير وفك التشفير عكس خوارزمية RSA مثلا.
و تم الاعلان عن هده الخوارزمية من طرف National Institute of Standards and Technolog) NIST ) كمعيار قياسي للمنظمات الحكومية الأمريكية ودلك بعد تقديم 15 خوارزمية منافسة أختير منا 5 خوارزميات
(MARS,Rijndael,RC6,Serpent,Twofish) ليتم انتقاءRijndael كأفضل حل مثالي خلفا ل خوارزمية DES التي أكل عليها الدهر و شرب لأنها تستعمل مفاتيح دات طول 56 Bits فقط مما يجعلها عرضة ل Brute Force المهم لن نخوض في DES لأنها ليست موضوعنا.
وبشكل رسمي تم العمل ب AES في ماي 2002 و هي من تصميم الخبيرين في مجال التشفير Vincent Rijmen و Joan Daemen الاثنان جنسية بلجيكية وهي مكونة من ثلات كتل من الشفرات AES-128 AES192 AES 256 وكل كتلة لديها حجم تابت 128 Bits أي 16 Bytes ومفاتيح 256-192-128 باحترام الترتيب .
والخوارزمية تأخد 16 Bytes كمدخل والمفتاح حسب الاختيار 128 أو 192 أو 256 وهاته الكتلة تقلب حسب جدول محدد مسبقا ثم توضع في مصفوفة مكونة من 4*4 عناصر وصفوفها Rows تخضع لعملية تدوير أو دوران الى اليمين و زيادة الدورة تتم حسب رقم الصف ثم يطبق على المصفوفة تحول خطي Linear Transformation وهو ضرب ثناني لكل عنصر في المصفوفة في Polynomes (لا أعرف الترجمة الموافة لها بالعربية) من مصفوفة أخرى مسااعدة و عملية الضرب هده تخضع لقواعد (Galois Group) والتحول الخطي يضمن انتشار Bytes في الهيكل في عدة دورات .
و أخيرا عملية XOR بين المصفوفة و مصفوفة أخري تعطينا مصفوفة و سطية .
وهده العمليات يتم تكرارها عدة مرات فالنسبة لمفتاح 128 Bits هناك 10 دورات و 192 bits هناك 12 دورة و 256 bits هناك 14 دورة.
للمزيد من المعلومات ستجدونها اخواني في Wikipedia فمنها استمدت هده المعلومات البسيطة .
وللعلم ف AES تستخدم تقريبا في كل المجالات حتى القنوات الفضائية تعتمد عليها في تشفير البث و كدلك البرنامج الشهير Winrar وهي أقل استهلاكا لموارد الجهاز و تستعمل كدلك في الشبكات حتى في تشفير الهارد وير و و ...
وفي المرفقات مثال بدلفي مع وحدة AES يجب دراستها لفهم آلية العمل وسنستعمل في المتال نوعين من تشفير الكتل bloks وهما ECB و CBC وهدا تعريف بسيط لكل واحد منهما:
ECB
Electronic Code Book
و يعتبر الأبسط من بين كل الأنواع أيجابيته الوحيدة أه يوفر ولوجا سريعا للكتل.
وهو يشفر الكتل الواحدة تلو الأخرى وعيبه الكبير أن الكتل التي لها نفس المحتوى ستشفر بنفس الطريقة.
CBC
Cipher Blok Chaining
اما هدا النوع فيطبق عملية XOR على كل كتلة مع شفرة الكتلة السابقة قبل أن يتم تشفيرها.
وهنالك عدة أنواع أخرى غير ECB و CBC .
وفي الأخير لمن لدية معلومات أخرى أو هناك أخطاء بالموضوع فليتفضل مشكورا فالموضوع جد طويل و اختصرته لأن هناك بعض المصطلحات لا أعرف مقابلها بالعربية.
وقيل أن أنسى في مايخص مجال الحماية فالخوارزمية جد قوية و هدا سبب اعتمادها و لحد الآن لم تكسر بالرغم من كسر بعض المفاتيح التي عدد دوراتها تقل عن 10 أو 9 على ما أعتقد
فان أردت أخي الكريم حماية تامة لمعلوماتك استعمل 256 Bits دو 14 دورة وكل ما كان المفتاح طويلا ومعقدا زادت صعوبة الكسر
وكدلك قبل أن أنسى بالنسبة ل طول محارف المفتاح ف :
TAESKey128 = array [0..15] of byte
TAESKey192 = array [0..23] of byte
TAESKey256 = array [0..31] of byte
أي
128 Bits تقبل 16 محرف
192 Bits تقبل 24 محرف
256 Bits تقبل 32 محرف
وهدا حسب الوحدة التي استخدمت مع دلفي رغم أني جربت Winrar وهو يقبل أكتر من هدا العدد وهدا ما سأبحث عنه ان شاء الله.
وفي المرفقات فيديو فلاش يبين طريقة التشفير + مثال الدلفي
معيار التشفير المتطور Advanced Encryption Standard) AES) ويعرف كدلك باسم Rijndael وهو عبارة عن تشفير من النوع الثماتلي (symmetric) يعتمد على مفتاح واحد في التشفير وفك التشفير عكس خوارزمية RSA مثلا.
و تم الاعلان عن هده الخوارزمية من طرف National Institute of Standards and Technolog) NIST ) كمعيار قياسي للمنظمات الحكومية الأمريكية ودلك بعد تقديم 15 خوارزمية منافسة أختير منا 5 خوارزميات
(MARS,Rijndael,RC6,Serpent,Twofish) ليتم انتقاءRijndael كأفضل حل مثالي خلفا ل خوارزمية DES التي أكل عليها الدهر و شرب لأنها تستعمل مفاتيح دات طول 56 Bits فقط مما يجعلها عرضة ل Brute Force المهم لن نخوض في DES لأنها ليست موضوعنا.
وبشكل رسمي تم العمل ب AES في ماي 2002 و هي من تصميم الخبيرين في مجال التشفير Vincent Rijmen و Joan Daemen الاثنان جنسية بلجيكية وهي مكونة من ثلات كتل من الشفرات AES-128 AES192 AES 256 وكل كتلة لديها حجم تابت 128 Bits أي 16 Bytes ومفاتيح 256-192-128 باحترام الترتيب .
والخوارزمية تأخد 16 Bytes كمدخل والمفتاح حسب الاختيار 128 أو 192 أو 256 وهاته الكتلة تقلب حسب جدول محدد مسبقا ثم توضع في مصفوفة مكونة من 4*4 عناصر وصفوفها Rows تخضع لعملية تدوير أو دوران الى اليمين و زيادة الدورة تتم حسب رقم الصف ثم يطبق على المصفوفة تحول خطي Linear Transformation وهو ضرب ثناني لكل عنصر في المصفوفة في Polynomes (لا أعرف الترجمة الموافة لها بالعربية) من مصفوفة أخرى مسااعدة و عملية الضرب هده تخضع لقواعد (Galois Group) والتحول الخطي يضمن انتشار Bytes في الهيكل في عدة دورات .
و أخيرا عملية XOR بين المصفوفة و مصفوفة أخري تعطينا مصفوفة و سطية .
وهده العمليات يتم تكرارها عدة مرات فالنسبة لمفتاح 128 Bits هناك 10 دورات و 192 bits هناك 12 دورة و 256 bits هناك 14 دورة.
للمزيد من المعلومات ستجدونها اخواني في Wikipedia فمنها استمدت هده المعلومات البسيطة .
وللعلم ف AES تستخدم تقريبا في كل المجالات حتى القنوات الفضائية تعتمد عليها في تشفير البث و كدلك البرنامج الشهير Winrar وهي أقل استهلاكا لموارد الجهاز و تستعمل كدلك في الشبكات حتى في تشفير الهارد وير و و ...
وفي المرفقات مثال بدلفي مع وحدة AES يجب دراستها لفهم آلية العمل وسنستعمل في المتال نوعين من تشفير الكتل bloks وهما ECB و CBC وهدا تعريف بسيط لكل واحد منهما:
ECB
Electronic Code Book
و يعتبر الأبسط من بين كل الأنواع أيجابيته الوحيدة أه يوفر ولوجا سريعا للكتل.
وهو يشفر الكتل الواحدة تلو الأخرى وعيبه الكبير أن الكتل التي لها نفس المحتوى ستشفر بنفس الطريقة.
CBC
Cipher Blok Chaining
اما هدا النوع فيطبق عملية XOR على كل كتلة مع شفرة الكتلة السابقة قبل أن يتم تشفيرها.
وهنالك عدة أنواع أخرى غير ECB و CBC .
وفي الأخير لمن لدية معلومات أخرى أو هناك أخطاء بالموضوع فليتفضل مشكورا فالموضوع جد طويل و اختصرته لأن هناك بعض المصطلحات لا أعرف مقابلها بالعربية.
وقيل أن أنسى في مايخص مجال الحماية فالخوارزمية جد قوية و هدا سبب اعتمادها و لحد الآن لم تكسر بالرغم من كسر بعض المفاتيح التي عدد دوراتها تقل عن 10 أو 9 على ما أعتقد
فان أردت أخي الكريم حماية تامة لمعلوماتك استعمل 256 Bits دو 14 دورة وكل ما كان المفتاح طويلا ومعقدا زادت صعوبة الكسر
وكدلك قبل أن أنسى بالنسبة ل طول محارف المفتاح ف :
TAESKey128 = array [0..15] of byte
TAESKey192 = array [0..23] of byte
TAESKey256 = array [0..31] of byte
أي
128 Bits تقبل 16 محرف
192 Bits تقبل 24 محرف
256 Bits تقبل 32 محرف
وهدا حسب الوحدة التي استخدمت مع دلفي رغم أني جربت Winrar وهو يقبل أكتر من هدا العدد وهدا ما سأبحث عنه ان شاء الله.
وفي المرفقات فيديو فلاش يبين طريقة التشفير + مثال الدلفي