840 likes | 1.29k Views
رمزنگاري متقارن. بهروز تركلاداني ladani@eng.ui.ac.ir. 1. فهرست مطالب. تعاريف رمزها ي کلاسيک الگور ي تمها ي رمزها ي متقارن و رمزها ي قطعه ا يي استانداردها ي رمزگذار ي آمريکا استاندارد رمزگذار ي پ ي شرفته AES استفاده از رمزها ي قطعه ا ي مدها ي کار ي رمزها ي قطعه ا ي.
E N D
رمزنگاري متقارن بهروز تركلاداني ladani@eng.ui.ac.ir 1
فهرست مطالب • تعاريف • رمزهاي کلاسيک • الگوريتمهاي رمزهاي متقارن و رمزهاي قطعه ايي • استانداردهاي رمزگذاريآمريکا • استاندارد رمزگذاري پيشرفته AES • استفاده از رمزهاي قطعه اي • مدهاي کاري رمزهاي قطعه اي
تعاريف • متن واضح Plaintext : • متن رمزشده Ciphertext: • Encryption/Encode/Encipher • Decryption/Decode/Decipher • C=E(P) P=D(C) P=D(E(P))
جانشيني جانشينييک حرف با حرف ديگر تک الفبايي چند الفبايي حملات شناخته شده با استفاده از: توزيع فرکانسها تعداد رخدادها حروف مشابه و احتمال کلمات تحليلpattern (الگوها) جايگشتي جابجايي بين حروف متن اصلي هدف diffusion (درهمريختگي) بيشتر است شکست رمز سختتر اما اگر يک pattern (الگو) آشکار شود، همه متن شکسته شده است. رمزهاي کلاسيک (دو روش پايهاي) • از زمان جنگ جهاني دوم مورد استفاده قرار مي گرفتند • انجام دادن با دست قبل از به وجود آمدن سيستم هاي کامپيوتري امروزي
جانشيني (سزار) send another catapult abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz K = y C = P + K (mod 26) r rdmc zmnsqds bzszotks • به خاطر سپاري آسان • مشاهده patternها به آساني رمز جانشيتي تک الفبايي
جانشيني 213 send another catapult abcdefghijklmnopqrstuvwxyz 2 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz 1 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz 3 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz Ufqf bqqukgs fcudrvov • رمز جانشيني چند الفبايي • کاهش pattern ها • استفاده از توزيع حروف براي شکست
Vigenere جدول • رمز جانشيني چند الفبايي • استفاده از کلمه در ترکيب با متن و انجام محاسبات در پيمانه 26 M = SEND ANOTHER CATAPULT K = h a i l c e a s e r h a i l c e a s e C = z e v o c r o l l v y c i e c t u d x
Rotor Machines x y i j m c k z o v o h u k g v m a e f q r g a v t d h r w تعداد الفبا = تعداد روتورها e d l s t d n l o a h z c e p i g u j q j f n w s b y w b x Enigma - German Machine had 3 rotors
رمز جايگشتي • ايجاد تغيير آرايه در متن اصليبدون تغيير حروف الفبا • هدف: ايجاد پراکندگي • امکان استفاده ترکيبي با رمز جانشيني • ايده اساسي مورداستفاده در رمزنگاري متقارن مي باشد
مثال (جايگشتي ستوني) کليد: تعداد ستونها (در اينجا 5) S E N D * A N O T H E R * C A T A P U L T * * * * SAETTENRA*NO*P*DTCU**HAL* =
انواع حملات (کلاسيک، مدرن) • Ciphertext Only : تحليلگر تنها متن رمزشده را دارد. • Known Plaintext: تحليلگر بخشي از متن اصلي و متن رمز شده متناظر با آن را دارد. • ChosenPlaintext: تحليلگرميتواند الگوريتم رمز را بر روي مقدار زيادي از متن واضح اعمال نمايد.
ايدههاي تحليل رمز کلاسيک • فراواني حروف (etanos…) • فراواني ترکيبات حروف (th, nt) • حروف (تشخيص) ابتدا و انتهاي کلمه (th___, ___nt, ___gh) • نظم موجود در الفباي زبان • متد Kasiski (الگوهاي تکراري) • حملات Brute Force
مثال (تحليل) Aerial reconnaissance reports enemy reinforcements estimated at battalion strength entering your sector PD Clarke فراواني حروف متن اصلي
مثال (تحليل) aerialreco nnaissance reportsene myreinforc ementsesti matedatbat talionstre ngthenteri ngyoursect orPDClarke ANRMEMTNNO ENEYMAAGGR RAPRETLTYP IIOENEIHOD ASRITDOEUC LSTNSANNRL RASFETSTSS ENEOSBTEER CCNRTARRCK OEECITEITE جايگشتي (10 ستوني)
مثال (تحليل) ANRMEMTNNOENEYMAAGGRRAPRETLTYPIIOENEIHODASRITDOEUCLSTNSANNRLRASFETSTSSENEOSBTEERCCNRTARRCKOEECITEITE فراواني حروف متن رمز شده
مثال (تحليل) • از مقايسه نمودارهاي قبلي مي توان فهميد در رمزنگاري جايگشتي : • فراواني متن رمزشده تفاوتي با فراواني متن اصلي ندارد. • تحليلگر نمي تواند از اين نمودارها استفاده کند. • ولي در جايگزيني تک الفبايي اين امکان وجود دارد
فراواني حروف متن رمزشده (تک الفبايي) مثال (تحليل) DHULDOUHFRQQLVVDQFHUHSRUWVHQHPBUH. . .
تابع رمزنگاري کامل(One-Time Pad) • ايده : براي رمزکردن يک داده به طول n کليدي به طول n هزينه کنيم. • در اين صورت به ازاي هر M و C داريم: P(MC) = P(M) • يعني داشتن هر تعداد متن نمونه رمزشده کمکي به تحليلگر نمي کند. • امنيت اين روش به تصادفي بودن کليد بستگي دارد.
تابع رمزنگاري کامل(One-Time Pad) • در عمل استفاده از چنين روشي مقدور نيست • توليد کليد تصادفي با حجم بالا از نظر عملي دشوار است. • توزيع امن کليد : اگر بتوانيم کانال امني براي توزيع کليدي با اين حجم پيدا کنيم، آيا بهتر نيست از همين کانال براي انتقال داده اصلي استفاده کنيم؟! • در عمل از روشهايي استفاده مي کنيم که شکستن رمز را براي تحليلگر با توجه به تکنولوژيهاي موجود و در زمان محدود غيرممکن سازد.
رمزنگاري متقارن • دو طرف به دنبال برقراري ارتباط محرمانه هستند. • ارتباط بر روي محيط نا امن انجام ميپذيرد. • طرفين پيامهاي خود را رمز ميکنند. • رمز نگاري متقارن: الگوريتمهاي رمز نگاري آنها تابع اطلاعات مخفي است که فقط خود از آنها مطلع ميباشند. براي تبادل اين اطلاعات مخفي نياز به کانال امن است. کليد مخفي
K کليد متقارن Adversary EVE Bob محرمانگي شبکه ناامن 0 1 1 0 1 ... Alice به طور امن منتقل ميشود
الگوريتمهاي رمزهاي متقارن • رمزهاي متقارن را مي توان با ابزارهاي متفاوتي توليد کرد • ابزارهاي مهم : • رمزهاي قطعه اي (قالبي) • پردازش پيغام ها بصورت قطعه به قطعه • سايز متعارف قطعات 64، 128 يا 256 بيت • رمزهاي دنباله اي • پردازش پيغام ها بصورت پيوسته
رمزهاي قطعه اي متن واضح (تقسيم شده به قطعات) قطعات خروجي
اصول رمزهاي قطعه ايي • نگاشت قطعات متن واضح به قطعات متن رمزشده بايد برگشت پذير (يك به يك)باشد. • الگوريتم قطعات ورودي را در چند مرحله ساده و متوالي پردازش ميکند. به اين مراحل دور ميگوييم. • هر دور عموماً مبتني بر تركيب اعمال ساده اي همچون جايگزينيو جايگشت استوار است.
استانداردهاي رمزهاي قطعه ايآمريکا • رمزهاي قطعه اي استاندارد • استاندارد رمزگذاري داده DES • استاندارد رمزگذاري پيشرفته AES • تحت نظارت National Institute of Science and Technology (NIST)
استاندارد رمزگذاري داده DES • مرور • در سال 1974 توسط IBM توليد شد • پس از انجام تغييراتي توسط NSA، در سال 1976NIST آن را پذيرفت. • اساس الگوريتم تركيبي از عمليات جايگزينيو جايگشت ميباشد. • مشخصات: • طول كليد56 بيت • طول قطعههاي ورودي و خروجي : 64 بيت • تعداد دورها: 16 دور • الگوريتمهاي رمزگذاري و رمزگشايي عمومي هستند, ولي مباني رياضي و اصول طراحي آنها فاش نشد. • در گذشته بسيار پر استفاده بود.
DES از رده خارج شده است • در ژانويه 1999 اين الگوريتم توسط آزمون جامع فضاي کليد در 23 ساعت شکسته شد! • بيش از هزار کامپيوتر بر روي اينترنت هر يک بخش کوچکي از کار جستجو را انجام دادند. • به الگوريتمهاي امن تر با طول کليد بالاتر نياز داريم. • DES طراحي شفاف و روشن ندارد.
استاندارد رمزگذاري پيشرفته AES • NIST در سال 1997 مسابقه اي دو مرحله اي براي طراحي استاندارد جديد برگزار کرد. • تمام طراحي ها بايد بر اساس اصول کاملاً روشن انجام شوند. • سازمانهاي دولتي آمريکا حق هيچ گونه دخالتي در طراحي الگوريتم ندارند. • در سال 2000 رايندال (Rijndael) به عنوان برنده اعلام شد • استاندارد رمزگذاري پيشرفته AES
فيناليست هاي مسابقه AES • MARS • RC6 • Rijndael • Serpent • Twofish • مقاله زير اطلاعات بيشتر درباره مقايسه فيناليست ها ارائه مي دهد: A Performance Comparison of the Five AES Finalists B. Schneier and D. Whiting منتخب!
مشخصات استاندارد رمزگذاري پيشرفته AES • طول كليد 128، 192 و يا 256 بيت • طول قطعههاي ورودي و خروجي : 128، 192 و يا 256 بيت • تعداد دورها: بسته به طول کليد و طول قطعه، • براي 128 بيت: 9 دور
نحوه کار AES-128 • الگوريتم زمان بندي کليد نقش تهيه کليد براي هر دور بر اساس کليد اصلي را بر عهده دارد. • متن واضح 128 بيتي به شکل يک ماتريس حالت 4×4 در مي آيد. • هر درايه يک بايت از متن واضح را نشان مي دهد • اين ماتريس در انتها مولد متن رمز است.
نحوه کار AES-128 • در هر دور 4 عمل بر روي ماتريس حالت اعمال ميشود. • جايگزيني بايتها : جايگزيني درايه هاي ماتريس حالت با استفاده از يک s-box • جابجايي سطري • ترکيب ستونها: ترکيب خطي ستونها با استفاده از ضرب ماتريسي • اضافه نمودن کليد دور: جمع مبناي دو ماتريس حالت با کليد دور
s-box • تابع غير خطي • توسط يک جدول پياده سازي ميشود. • وجود مصالحه بين کارآيي و امنيت : • جدول بزرگ: الگوريتم قويتر • جدول کوچک: پياده سازي ساده تر • ورودي تابع سطر و ستون درايه جدول را معين کرده و مقدار ذخيره شده در اين درايه خروجي تابع است.
امنيت AES • کماکان در حال بررسي • از لحاظ مقايسه با DES: • فرض کنيد ماشيني وجود دارد که کليد DES را از طريق آزمون جامع در يک ثانيه باز يابي ميکند، يعني در هر ثانيه 255 کليد را امتحان ميکند. اين ماشين کليد AES را در 149×1012 سال بازيابي مينمايد.
مراجع مطالعه AES براي اطلاعات بيشتر به آدرسهاي زير رجوع کنيد: http://www.nist.gov/aes http://www.esat.kuleuven.ac.be/~rijmen/rijndael/
استفاده از رمزهاي قطعه ايي • رمزهاي قطعه اييبه طور مستقل امنيت زيادي را به ارمغان نمي آورند. • رمزهاي قطعه ايي به عنوان اجزاي سازنده الگوريتمهاي رمزنگاري استفاده ميشوند. • محرمانگي: • مدهاي کاري • احراز هويت : • کدهاي احراز تماميت پيام
استفاده از رمزهاي قطعه ايي-2 • فرض کنيم يک رمز قطعه اي امن داريم. چگونه از آن براي رسيدن به اهداف خود بهره جوييم؟ • مساله اساسي: در برخي موارد علي رغم بهره برداري از عناصر مرغوب، کيفيت نهايي دلخواه نيست. • مثال: • ساختمان ضعيف با وجود استفاده از مصالح قوي • پوشاک نامرغوب با وجود استفاده از پارچه هاي مرغوب • غذاي نا مناسب با وجود استفاده از مواد اوليه با کيفيت
وضعيت ايده آل • ساختار الگوريتم رمز نگاري متقارن(مد کاري) به گونه اي باشد که قابليت هاي عناصر سازنده خود (رمزهاي قطعه اي) را به ارث ببرد.
مدهاي کاري رمزهاي قطعه اي • برخي مدهاي کاري: • ECB: Electronic Code Book • CBC: Cipher Block Chaining • CTR: Counter Mode • CFB: Cipher Feed Back • OFB: Output Feed Back • مدهاي کاري را مي توان با AES، DES، CAST-128 ... پياده سازي کرد.
C1 P1 CN PN C2 P2 E D K K D D E E K K K K C1 P1 CN PN C2 P2 مد کاريECB • رمز نگاري: • رمز گشايي:
بررسي مد کاريECB • اشکال اساسي: هر متن واضح به ازاء کليد ثابت هميشه به يک متن رمز شده نگاشته ميشود. • دشمن ميتواند دريابد که پيامهاييکسان ارسال شده اند. اين مد امن محسوب نميشود حتي اگر از يک رمز قطعه ايي قوي استفاده کنيم. • ECB مثالي از مواردي است که علي رغم بهره برداري از عناصر مرغوب، کيفيت نهايي دلخواه نيست.
مد کاريCBC-1 • اين مد از يک مقدار دهي اوليه تصادفي،IV، بهره ميگيرد. • مقدار IV در هر بار رمز نگاري به صورت تصادفي تغيير ميکند. • IV همراه با متن رمز شده به صورت واضح ارسال ميشود. • هر متن واضح به ازاء کليد ثابت هر بار به يک متن رمز شده متفاوت نگاشته ميشود (زيرا مقدار IV تغيير مينمايد).
PN P3 P1 P2 + + + + E E E E K K K K CN-1 C2 C1 C3 CN C2 C1 C3 D D D D K K K K + + + + PN P2 P3 P1 مد کاريCBC-2 • رمز نگاري: IV CN-1 … • رمز گشايي: CN-1 IV
بررسي مد کاريCBC • ملزومات امنيتي: • IV بايد کاملاً غير قابل پيش بيني باشد (براي تضمين عدم تشابه متن رمز پيام هاي يكسان) • رمزنگاري: • عمليات رمزنگاري قابل موازي سازينيست. • مقدار IV و متن واضح بايد در دسترس باشند. • رمزگشايي: • عمليات رمزگشايي قابل موازي سازي است. • مقدار IV و متن رمزشده بايد در دسترس باشند. • طول پيام: • در برخي موارد ممکن است وادار به افزايش طول پيام بشويم. • طول پيام بايد مضربي از طول قطعه باشد. • پياده سازي: • رمز گشايي و رمز نگاري، هر دو بايد پياده سازي شوند.
رمز نگاري رمزگشايي مد کاريCTR counter + i counter + i (n) (n) E E K K (n) (n) (n) (n) (n) (n) Ci Pi Pi Ci + +
براي استفاده از رمزقطعه اي صرفا مقدار شمارنده موردنياز است. مي توان ابتدا مقدارEK(counter + i)را محاسبه نمود و سپس با رسيدن Ci متن نهايي را بازيابي کرد. براي استفاده از رمزقطعه اي صرفا مقدار شمارنده موردنياز است بررسي مد کاريCTR • ملزومات امنيتي: • مقادير شمارنده، در بازه طول عمر کليد، بايد مجزا باشند. • رمزنگاري: • عمليات رمزنگاري قابل موازي سازي است. • براي عمليات رمزنگاري نيازي به متن واضح نيست. • مقادير شمارنده براي عمليات رمزنگاري مورد نياز است. • رمزگشايي: • عمليات رمزگشايي قابل موازي سازي است. • براي عمليات رمزگشايي نيازي به متن رمز شده نيست. • مقادير شمارنده براي عمليات رمزنگاري مورد نياز است. • طول پيام: • هيچ گاه نيازي به افزايش طول پيام نداريم. • متن رمز شده ميتواند هم طول با پيام کوتاه شود. • پياده سازي: • تنها رمز نگاري بايد پياده سازي شود.
رمز نگاري رمزگشايي مد کاريCFB initialized with IV initialized with IV (s) (s) shift register (n) shift register (n) (n) (n) E E K K (n) (n) select s bits select s bits (s) (s) (s) (s) (s) (s) Pi Ci Ci Pi + +
رمز نگاري رمزگشايي مد کاريOFB initialized with IV initialized with IV (s) (s) shift register (n) shift register (n) (n) (n) E E K K (n) (n) select s bits select s bits (s) (s) (s) (s) (s) (s) Pi Ci Ci Pi + +
پيوست DES
استاندارد رمزگذاري داده DES قطعه 64 بيتي متن واضح زير کليد دور دور1 توليد زير کليدهاي 48 بيتي از کليد اصلي 56 بيتي براي هر دور دور2 دور15 دور16 قطعه 64 بيتي متن رمزشده کليد 56 بيتي