مروري برالگوريتمهاي رمز متقارن(كليد پنهان) علی فانیان a.fanian@cc.iut.ac.ir فهرست مطالب • معماري اليه اي امنيت • اصول الگوريتمهاي رمزنگاري • انواع الگوريتمهاي رمز متقارن(كليد پنهان) • الگوريتمهاي رمزنگاري قالبي • نحوه هاي بکارگيري رمزهاي قطعه اي فهرست مطالب • معماري اليه اي امنيت • اصول الگوريتمهاي رمزنگاري • انواع الگوريتمهاي رمز متقارن(كليد پنهان) • الگوريتمهاي رمزنگاري قالبي • نحوه هاي بکارگيري رمزهاي قطعه اي معماري اليه اي امنيت كاربرد امنيتي پروتكل امنيتي الگوريتم ها فهرست مطالب • معماري اليه اي امنيت • اصول الگوريتمهاي رمزنگاري • انواع الگوريتمهاي رمز متقارن(كليد پنهان) • الگوريتمهاي رمزنگاري قالبي • نحوه هاي بکارگيري رمزهاي قطعه اي Terminology plaintext, cleartext: an “unhidden message” encrypt: transform a message to hide its meaning ciphertext: encrypted message cipher: cryptographic algorithm decrypt: recover meaning from encrypted message cryptography: art/science of keeping message secure cryptanalysis: art/science of breaking ciphertext cryptology: study of both cryptography and cryptanalysis Encryption and Decryption plaintext, cleartext ciphertext Encryption Method Decryption Method ciphertext plaintext, cleartext Common Mathematical Symbols P plaintext (here is a binary value) C ciphertext (also binary) E encryption function D decryption function E(P) = C encrypting plaintext yields ciphertext D(C) = P decrypting ciphertext yields plaintext D(E(P)) = P decrypting encrypted plaintext yields plaintext Restricted Algorithm The security of a restricted algorithm requires keeping the algorithm secret! Simple Restricted Algorithm Encryption algorithm Multiply the plaintext by 2 Decryption algorithm Divide the ciphertext by 2 plaintext = SECRET = 19 5 3 18 5 20 Ciphertext = 38 10 6 35 10 40 Key-Based Algorithm The security of key-based algorithms is based on the secrecy of the algorithm, the key(s), or both Simple Key-Based Algorithm Encryption algorithm Multiply the plaintext by 2 and add key Decryption algorithm Subtract the key and divide the ciphertext by 2 plaintext = SECRET = 19 5 3 18 5 20 Key = 3 Ciphertext = 41 13 9 39 13 43 Secret (Symmetric) Key Algorithms Decryption key = encryption key Key agreed in advance between parties Key kept secret Like a locked room Need the key to lock up document Need the key to unlock room and get document Public (Asymmetric) Key Algorithms Encryption and decryption keys are different Encryption key is public (usually) Decryption key is private One key locks, the other unlocks Symmetric Key Algorithms Exchanging Messages with Symmetric Cryptography Alice Agree on cryptosystem plaintext Agree on key Bob key cipher text CS key CS plaintext Crypto-Attacks Adversary goal to break cryptosystem Assume adversary knows algorithm, but not key two general approaches to attacking a conventional encryption scheme Cryptanalysis : rely on the nature of the algorithm plus perhaps some knowledge of the general characteristics of the plaintext or even some sample plaintext–ciphertext pairs Brute-force attack : The attacker tries every possible key on a piece of ciphertext until an intelligible translation into plaintext is obtained Crypto-Attacks 3 types of attacks: • ciphertext only: adversary has ciphertext; goal to find plaintext and key • known plaintext: adversary has ciphertext, corresponding plaintext; goal to find key • Chosen Text • Plaintext message chosen by cryptanalyst, together with its corresponding ciphertext generated with the secret key • Ciphertext chosen by cryptanalyst, together with its corresponding decrypted plaintext generated with the secret key Crypto-Attacks Two definitions are worthy of note. unconditionally secure no matter how much ciphertext is available no matter how much time an opponent has it is impossible for opponent to decrypt the ciphertext there is no encryption algorithm that is unconditionally secure exception of a scheme known as the one-time pad computationally secure The cost of breaking the cipher exceeds the value of the encrypted information. The time required to break the cipher exceeds the useful lifetime of the information. Crypto-Attacks فهرست مطالب • معماري اليه اي امنيت • اصول الگوريتمهاي رمزنگاري • انواع الگوريتمهاي رمز متقارن(كليد پنهان) • الگوريتمهاي رمزنگاري قالبي • نحوه هاي بکارگيري رمزهاي قطعه اي انواع الگوريتمهاي رمز متقارن الگوريتمهاي رمز متقارن بر دو دسته اند: • رمزهاي قالبي يا قطعه اي )(Block Cipher – پردازش پيغام ها بصورت قطعه به قطعه – اندازه متعارف قطعات 128 ،64يا 256بيت • رمزهاي پي در پي يا دنباله اي )(Stream Cipher – پردازش پيغام ها بصورت پيوسته (بدون تقطيع) رمز قطعه اي متن واضح (تقسيم شده به قطعات) K K K K قطعات خروجي K K K رمز دنباله اي مولد دنباله شبه تصادفي Ci + (الف) مولد دنباله شبه تصادفي K Pi Pi + (ب ) K Ci تابع رمزنگاري کامل()One-Time Pad • ايده :براي رمزکردن يک داده به طول nکليدي به طول nهزينه کنيم. Ki Ci • يعني داشتن هر تعداد متن نمونه رمزشده کمکي به تحليلگر نمي کند. • امنيت اين روش به تصادفي بودن کليد بستگي دارد. – در صورت تصادفي بودن کليد امنيت الگوريتم غير قابل شكست است. + Pi رمز دنباله اي :چند الگوريتم نمونه -Physical processes -LSFR ( Linear Feedback Shift Register ) -BBS( Blum-Blum-Shub) Linear Feedback Shift Register Linear shift feedback register with 4 bit register فهرست مطالب • معماري اليه اي امنيت • اصول الگوريتمهاي رمزنگاري • انواع الگوريتمهاي رمز متقارن(كليد پنهان) • الگوريتمهاي رمزنگاري قالبي • نحوه هاي بکارگيري رمزهاي قطعه اي اصول رمزهاي قطعه اي • نگاشت قطعات متن واضح به قطعات متن رمزشده بايد برگشت پذير (يك به يك) باشد. • الگوريتم قطعات ورودي را در چند مرحله ساده و متوالي پردازش ميکند .به اين مراحل دور ميگوييم. ً • هر دور عموما مبتني بر تركيب اعمال ساده ايي همچون جايگزيني و جايگشت استوار است. دو بلوک پايه براي عمليات رمز گذاري • جانشيني Substitution • جایگيزینی یک سمبل با سمبل دیگر • ممکن است هم طول نباشند • جابگشت Permutation • ترتيب قرار گرفتن حروف در متن اصلي جابجا ميشود استانداردهاي رمزهاي قطعه اي آمريکا : • رمزهاي قطعه اي استاندارد – استاندارد رمزگذاري داده DES – استاندارد رمزگذاري پيشرفته AES • تحت نظارت )National Institute of Science and Technology (NIST استاندارد رمزگذاري داده DES • مرور – – – – – در سال 1974توسط IBMتوليد شد • پس از انجام تغييراتي توسط National Security ( NSA ، )Agencyدر سال NIST 1976آن را پذيرفت. اساس الگوريتم تركيبي از عمليات جانشيني و جايگشتي ميباشد. مشخصات: • طول كليد 56بيت • طول قالبهاي ورودي و خروجي 64 :بيت • تعداد دورها 16 :دور الگوريتمهاي رمزگذاري و رمزگشايي عمومي هستند ,ولي مباني رياض ي و اصول طراحي آنها فاش نشد. در گذشته بسيار پر استفاده بود و هنوز هم از رده خارج نشده است. استاندارد رمزگذاري دادهDES Initial and final permutation steps in DES DES uses 16 rounds. A round in DES (encryption site) DES Function The heart of DES is the DES function. The DES function applies a 48-bit key to the rightmost 32 bits to produce a 32-bit output. DES function Expansion P-box Since RI−1 is a 32-bit input and KI is a 48-bit key, we first need to expand RI−1 to 48 bits. Expansion permutation S-Boxes The S-boxes do the real mixing (confusion). DES uses 8 S-boxes, each with a 6-bit input and a 4-bit output. S-boxes S-box rule DES cipher and reverse cipher for the first approach DESبايد از رده خارج شود • در ژانويه 1999اين الگوريتم توسط حمله جستجوي جامع فضاي کليد در 23ساعت شکسته شد! – بيش از 1000کامپيوتر بر روي اينترنت هر يک بخش کوچکي از کار جستجو را انجام دادند. • به الگوريتمهاي امن تر با طول کليد باالتر نياز داريم. • DESطراحي شفاف و روشن ندارد. 2DES and 3DES • مسئله : – آسيب پذيري DESدر مقابل حمله آزمون جستجوي كامل • راه حل : – استفاده از الگوريتم هاي رمزنگاري ديگر – پيچيده كردن الگوريتم DESاز طريق اضافه كردن مراحل رمزنگاري و افزايش طول كليد 2DES A pair of semi-weak keys in encryption and decryption Meet-in-the-Middle Attack However, using a known-plaintext attack called meet-inthe-middle attack proves that double DES improves this vulnerability slightly (to 257 tests), but not tremendously (to 2112). Continued Tables for meet-in-the-middle attack 6.45 3DES • استفاده از الگوريتم 3DES – از دو مرحله رمزنگاري و يك مرحله رمزگشايي با سه كليد مجزا استفاده مي شود – فضاي كليد به 168بيت گسترش مي يابد – در صورت استفاده از يك كليد يكسان 3DES،با DESمطابقت مي كند – نسبت به الگوريتمهاي ديگر مانند Blowfishو RC5سرعت كمتري دارد – تا كنون حمله اي عليه آن گزارش نشده است Triple DES with two keys استاندارد رمزگذاري پيشرفته 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 فهرست مطالب • معماري اليه اي امنيت • اصول الگوريتمهاي رمزنگاري • انواع الگوريتمهاي رمز متقارن(كليد پنهان) • الگوريتمهاي رمزنگاري قالبي • نحوه هاي بکارگيري رمزهاي قطعه اي نحوه هاي بکارگيري رمزهاي قطعه اي • ECB: Electronic Code Book • CBC: Cipher Block Chaining • CFB: Cipher Feed Back • OFB: Output Feed Back • CTR: CounTeR mode نحوه بكارگيري ECB • رمز نگاري: PN E P2 K CN • رمز گشايي: PN K C2 CN D E P1 C1 C2 K D P2 E K C1 K D K P1 • اشکال اساس ي :هر متن واضح به ازاء کليد ثابت هميشه به يک متن رمز شده نگاشته ميشود. – دشمن ميتواند دريابد که پيامهاي يکسان ارسال شده اند. CBC نحوه بكارگيري P1 P2 P3 IV + + + K E K C1 E K C2 E :• رمز نگاري PN … CN-1 + K E C3 CN-1 :• رمز گشايي C1 K IV D C2 K D C3 K CN D K D CN-1 + + + + P1 P2 P3 PN مد کاري CBC • اين مد از يك مقدار دهي اوليه تصادفي )(IVبهره مي گيرد • مقدار IVدر هر بار رمزگذاري به صورت تصادفي تغيير مي كند • بهتر است IVنيز رمز شده ارسال گردد • هر متن آشكار به ازاء كليد ثابت هر بار به يك متن رمز شده متفاوت نگاشته مي شود نحوه بكارگيري CBC • ملزومات امنيتي: – • رمزنگاري: – – • عمليات رمزنگاري قابل موازي سازي نيست. مقدار IVو متن واضح بايد در دسترس باشند. رمزگشايي: – – • ً IVبايد کامال غير قابل پيش بيني و غير قابل دستكاري باشد عمليات رمزگشايي قابل موازي سازي است. مقدار IVو متن رمزشده بايد در دسترس باشند. طول پيام: – در برخي موارد ممکن است وادار به افزايش طول پيام بشويم. • • طول پيام بايد مضربي از طول قطعه باشد. پياده سازي: – رمز گشايي و رمز نگاري ،هر دو بايد پياده سازي شوند. CFB نحوه بكارگيري • رمز نگاري • رمزگشايي initialized with IV initialized with IV (s) (s) shift register (n) shift register (n) (n) (n) E K E K (n) (n) select s bits select s bits (s) (s) Pi (s) + (s) Ci Ci (s) + (s) Pi OFB نحوه بكارگيري • رمز نگاري • رمزگشايي initialized with IV initialized with IV (s) shift register (n) (n) (n) E K E K (n) (n) select s bits select s bits (s) (s) Pi (s) + (s) shift register (n) (s) Ci Ci (s) + (s) Pi مقايسه CFBو OFB • موارد استفاده CFBو OFB – رمز جرياني – کاربردهاي بالدرنگ • عيب : CFBانتشار خطاي انتقال – OFBاين عيب را برطرف مي کند CTR نحوه بكارگيري • رمز نگاري • رمزگشايي counter + i counter + i (n) K (n) E K (n) Pi (n) + E (n) (n) Ci Ci (n) + (n) Pi مقايسه کاربرد انواع مدهاي کاري لغت نامه Meet-in-the-Middle attack Round Symmetric Encryption Scheme Stream Cipher Block Cipher Authentication حمله مالقات در ميانه دور Brute Force (رمزهاي قالبي(قطعه اي جستجوي كامل AES استاندارد رمزگذاري پيشرفته DES استاندارد رمزگذاري داده رمزنگاري متقارن )رمزهاي پي درپي(دنباله اي احراز اصالت Padding افزايش طول پيام Provable Security امنيت قابل اثبات Symmetric Cipher رمزهاي متقارن Differential cryptanalysis Key Schedule زمان بندي کليد linear cryptanalysis تحليل تفاضلي تحليل خطي plaintext متن واضح Substitution جانشيني Confidentiality محرمانگي Permutation جايگشت parallelization موازي سازي MAC: Message authentication code NSA: National Security Agency کد احراز اصالت پيام Timing Attack حمله زماني