You are on page 1of 128

‫آزمایشگاه امنیت داده و شبکه‬ ‫دانشگاه صنعتی شریف‬

‫دانشکده مهندسی کامپیوتر‬


‫‪http://dnsl.ce.sharif.edu‬‬

‫رمزنگاری متقارن (مدرن)‬

‫محمد صادق دوستی‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪1 / 128‬‬


‫فهرست مطالب‬

‫• رمزهای متقارن و قالبی‬


‫• ساختار رمزهای فایستل‬
‫• استاندارد رمزگذاری داده (‪)DES‬‬
‫• الگوریتمهای رمز ‪ 2DES‬و ‪3DES‬‬
‫• استاندارد رمزگذاری پیشرفته (‪)AES‬‬
‫• رمزهای متقارن معروف‬
‫• سبکهای کاری رمزهای متقارن‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪2 / 128‬‬


‫رمزگذاری کالسیک ‪ -‬رمزگذاری مدرن‬
‫‪ ‬در روشهههای رمزگههذاری مههدرنا همزمههان ا اَعمهها جانشههی ی و‬
‫جایگشت استفاده میشود‪.‬‬
‫‪‬به عالوها توابعی ساده مان د ‪( XOR‬نماد‪ ) :‬هم مهورد اسهتفاده‬
‫قرار میگیرد‪.‬‬

‫‪ ‬مجموعه اعما فوق طی مراحهل متهوالی روی مهتو اولیهه اعمها‬


‫میشوند‪.‬‬

‫‪ ‬تک یک ماشیوهای چرخ ده الهامبخش روشهای رمزگذاری مهدرن‬


‫بوده است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪3 / 128‬‬


‫الگوریتمهای رمز متقارن‬
‫‪ ‬رمزهای قالبی یا قطعهای (‪)Block Cipher‬‬
‫‪‬پردا ش پیغامها به صورت قطعه به قطعه‬
‫‪‬اندا ه متعارف مورد استفاده برای قطعات‪64 :‬ا ‪128‬یا ‪ 256‬بیت‪.‬‬

‫‪ ‬رمزهای جریانی (‪)Stream Cipher‬‬


‫‪‬پردا ش پیغامها به صورت پیوسته (بیت به بیت)‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪4 / 128‬‬


‫رمزهای قالبی‬

‫‪ b‬بیت‬ ‫‪ b‬بیت‬
‫متو آشکار‬ ‫متو رمز‬

‫کلید‬ ‫کلید‬
‫الگوریتم رمز گذاری‬ ‫الگوریتم رمز گشایی‬
‫(‪)K‬‬ ‫(‪)K‬‬

‫متو رمز‬ ‫متو آشکار‬


‫‪ b‬بیت‬ ‫‪ b‬بیت‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪5 / 128‬‬


‫رمزهای جریانی‬

‫کلید‬ ‫الگوریتم مولد‬ ‫کلید‬ ‫الگوریتم مولد‬


‫(‪)K‬‬ ‫بیت تصادفی‬ ‫(‪)K‬‬ ‫بیت تصادفی‬

‫‪ki‬‬ ‫‪ki‬‬
‫متن آشکار‬

‫متن آشکار‬
‫متن رمز‬
‫‪pi‬‬ ‫‪ci‬‬ ‫‪ci‬‬ ‫‪pi‬‬
‫رمز گذاری‬ ‫رمز گشایی‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪6 / 128‬‬


‫رمز قالبی آرمانی‬
‫‪ ‬تعداد نگاشتهای برگشتپذیر ا ‪ b‬بیت به ‪ b‬بیت‪:‬‬
‫‪ )2b(!‬؛ یعنی فاکتوریل «‪ 2‬به نمای ‪»b‬‬

‫‪‬هر نگاشت مت اظر یک کلید‬


‫‪‬طول کلید رمز قالبی آرمانی‪ :‬لگاریتم تعداد نگاشتها‬

‫اندازه قالب (بیت) طول تقریبی کلید (بیت)‬


‫‪1021‬‬ ‫‪64‬‬
‫‪41040‬‬ ‫‪128‬‬
‫‪31079‬‬ ‫‪256‬‬

‫‪‬چ یو طو کلیدی قابل تحقق نیست!‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪7 / 128‬‬


‫فهرست مطالب‬

‫• رمزهای متقارن و قالبی‬


‫• ساختار رمزهای فایستل‬
‫• استاندارد رمزگذاری داده (‪)DES‬‬
‫• الگوریتمهای رمز ‪ 2DES‬و ‪3DES‬‬
‫• استاندارد رمزگذاری پیشرفته (‪)AES‬‬
‫• رمزهای متقارن معروف‬
‫• سبکهای کاری رمزهای متقارن‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪8 / 128‬‬


‫رمز جایگزین برای رمز قالبی آرمانی‬
‫‪ ‬نیا به کاهش طو کلید و ایجاد تقریبی ا رمز قالبی آرمانی‬
‫‪‬ایده رمز فایستل‬

‫‪ ‬هورسْت فایستل (‪)Horst Feistel‬‬


‫‪ 1915‬الی ‪1990‬‬
‫‪‬رمزنگار آلمانی – طراح رمز در ‪IBM‬‬
‫‪‬مقاله «‪»Cryptography and Computer Privacy‬‬
‫‪‬مجله ‪ – Scientific Amertican‬سا ‪1973‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪9 / 128‬‬


‫ساختار رمز فایستل‬
‫‪ ‬ایده رمز محصولی (‪ :)Product Cipher‬الگوریتم رمزا قطعه‬
‫ورودی را در چ د مرحله ساده و متوالی پردا ش میک د‪.‬‬
‫‪‬به ایو مراحل دور میگوییم‪.‬‬

‫‪ ‬هر دور مبت هی بهر ترکیه اعمها سهادهای همچهون جانشهی ی و‬


‫جایگشت استوار است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪10 / 128‬‬


‫شبکه فایستل‬
‫‪ ‬شبکه فایستل هر قطعه ورودی را به دو نیمه تقسیم میک د‪.‬‬

‫‪ ‬یک دور ا شبکه فایستل‪:‬‬


‫رمزگشایی‪:‬‬ ‫رمزگذاری‪:‬‬
‫‪𝑅𝑛 ← 𝐿𝑛+1‬‬ ‫𝑛𝑅 ← ‪𝐿𝑛+1‬‬
‫‪𝐿𝑛 ← 𝐹 𝐿𝑛+1 , 𝑘𝑛 ⊕ 𝑅𝑛+1‬‬ ‫𝑛𝐿 ⊕ 𝑛𝑘 ‪𝑅𝑛+1 ← 𝐹 𝑅𝑛 ,‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪11 / 128‬‬


‫ساختار کامل شبکه فایستل‬
‫‪ ‬رمزگذاری‬
‫‪ :F‬تابع دور (در تمام دورها ثابت است)‬
‫‪ k0‬تا ‪ :kn‬یر کلیدها‬
‫یر کلیدها ا کلید اصلی مشتق میشوند‪.‬‬ ‫‪‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪12 / 128‬‬


‫عوامل مؤثر در ساخت رمزهای مبتنی بر شبکه فایستل‬
‫‪ ‬اندا ه قطعه‬

‫‪ ‬طو کلید‬

‫‪ ‬تعداد دورها‬

‫‪ ‬الگوریتم تولید یرکلیدها (کلیدهای دور)‬

‫‪ ‬تابع دور (‪)F‬‬


‫‪‬ال م نیست برگشتپذیر باشد‪.‬‬
‫‪‬برگشتناپذیری ‪ F‬بر ام یت رمز میافزاید!‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪13 / 128‬‬


‫فهرست مطالب‬

‫• رمزهای متقارن و قالبی‬


‫• ساختار رمزهای فایستل‬
‫• استاندارد رمزگذاری داده (‪)DES‬‬
‫• الگوریتمهای رمز ‪ 2DES‬و ‪3DES‬‬
‫• استاندارد رمزگذاری پیشرفته (‪)AES‬‬
‫• رمزهای متقارن معروف‬
‫• سبکهای کاری رمزهای متقارن‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪14 / 128‬‬


‫تاریخچه ‪1 - DES‬‬
‫‪ ‬در سا ‪1972‬ا مؤسسه استاندارد آمریکا (‪ )NBS‬نیا های ام یهت‬
‫رایانهای در دولت آمریکا را بررسی نمود‪.‬‬

‫‪ ‬مشخص شد که دولت نیا به الگوریتم استانداردی دارد کهه بها آن‬


‫اطالعات غیر طبقهب دی شده ولی حساس را رمز نماید‪.‬‬

‫‪ ‬در سا ‪ 1973‬فراخوانی برای پیش هاد الگوریتم رمز داده شدا ولی‬
‫هیچیک ا پیش هادها م اس نبودند‪.‬‬

‫‪ ‬در سا ‪ 1974‬فراخوان دیگری داده شدا و ایو بار ‪ IBM‬پیش هاد‬


‫م اسبی ارائه کرد‪.‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪15 / 128‬‬
‫تاریخچه ‪2 - DES‬‬
‫‪ ‬پیش هاد ‪ IBM‬مبت ی بر الگهوریتم لوسهیفر (‪ )Lucifer‬بهود کهه‬
‫توسط فایستل ابداع شده بود‪.‬‬
‫‪‬تیمی ا افراد سرش اس پس ا بهبهود لوسهیفر پیشه هاد ‪ IBM‬را‬
‫تهیه کردند‪.‬‬

‫‪ ‬در ‪1975‬ا پیش هاد ‪ IBM‬در مجله رسمی دولت آمریکا بهه چها‬
‫رسههیدا و در ‪ 1976‬دو کارگههاه تخییههی بههرای بررسههی اسههتاندارد‬
‫پیش هادی برگزار شد‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪16 / 128‬‬


‫تاریخچه ‪3 - DES‬‬
‫‪ ‬برخی انتقاد داشت د که کاهش طهو کلیهد اسهتاندارد پیشه هادی‬
‫نسبت به لوسیفرا و ‪S-Box‬های مرمو آن نشان ا دخالت آژانس‬
‫ام یت ملی (‪ )NSA‬در طراحی دارد‪.‬‬

‫‪ ‬ایو بهدگمانی وجهود داشهت کهه ‪ NSA‬بهه گونههای الگهوریتم را‬


‫دستکاری کرده که خودش (و نه هیچکس دیگهر) بتوانهد پیامهها را‬
‫رمزگشایی نماید‪.‬‬

‫ما ‪S-Box‬ها را به واش گتو فرستادیم‪ .‬جواب برگشت و آنها کامالً تغییر کرده بودند!‬
‫آلن کُنهایم؛ از طراحان ‪DES‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪17 / 128‬‬


‫تاریخچه ‪4 - DES‬‬
‫‪ ‬نتیجه کمیته ویژه اطالعاتی س ا در بررسهی مسههله ایهو بهود کهه‬
‫‪NSA‬ا ‪ IBM‬را قانع کرده که طهو کلیهد کهاهش یافتهه کهافی‬
‫استا ولی به طور غیر مستقیم در طراحی ‪S-Box‬ها دخیل بهوده‬
‫است‪.‬‬

‫‪ ‬بعدها (در دهه ‪ )1990‬مشخص شد که ‪ IBM‬و ‪ NSA‬ا تک یک‬


‫تحلیل رمزی به نام «تحلیل تفاضلی» اطالع داشتهاندا و ‪S-Box‬ها‬
‫را به گونهای طراحی کردند که مانع ا ایو حمله شود‪.‬‬
‫‪ NSA‬ا ‪ IBM‬خواسته بود که تک یک را مخفی نگه دارد‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪18 / 128‬‬


‫تاریخچه ‪5 - DES‬‬
‫‪ ‬سرانجام در نوامبر ‪1976‬ا پیش هاد ‪ IBM‬تحت ع وان «اسهتاندارد‬
‫رمزگهذاری داده» (‪ )Data Encryption Standard‬یها ‪DES‬‬
‫تیوی شد‪.‬‬

‫‪ ‬استاندارد در ژانویه ‪ 1977‬با ع وان ‪ FIPS PUB 46‬م تشر شد‪.‬‬


‫‪ FIPS‬کوتهه نوشهت ‪Federal Information Processing‬‬
‫‪ Standards‬است‪.‬‬

‫‪‬استانداردها پهردا ش اطالعهات (شهامل رمزنگهاری) در ایهو قاله‬


‫م تشر میشوند‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪19 / 128‬‬


‫مشخصات عمومی ‪DES‬‬
‫‪ ‬طول کلید‪ 56 :‬بیت‬

‫‪ ‬طول قطعههای ورودی و خروجی‪ 64 :‬بیت‬

‫تعداد دورها‪ 16 :‬دور‬ ‫‪‬‬

‫‪ ‬آ مون جامع روی کلید ‪ DES‬با فرض امتحان هر کلیهد در ‪ 1‬نهانو‬
‫مان نیا دارد‪.‬‬ ‫ثانیه به حدود ‪ 2‬سا‬
‫‪‬با اجرای موا ی میتوان ایو مان را به طور معقولی کم کرد‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪20 / 128‬‬


‫چالشهای ‪DES‬‬
‫‪ ‬شرکت ‪ RSA Security‬مسابقه «چالشههای ‪ »DES‬را در ‪1997‬‬
‫برگزار نمودا که در آن به هرکس میتوانست کلید ‪ DES‬را بدست‬
‫آورد جایزه ‪ 10,000‬دالری اهدا میکرد‪.‬‬
‫‪ :1997‬چههالش ‪ I‬توسههط گههروه ‪ DESCHALL‬طههی ‪ 96‬رو‬
‫شکست‪.‬‬
‫‪ :1998‬چهههالش ‪ II-1‬توسهههط ‪ distributed.net‬طهههی ‪ 39‬رو‬
‫شکست‪ :distributed.net( .‬شبکه ای جهانی و تو یع شهده بهرای‬
‫استفاده ا مان بیکاری ‪CPU‬ها و ‪GPU‬ها‪).‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪21 / 128‬‬


‫چالشهای ‪ DES‬و ‪Deep Crack‬‬
‫‪ EFF :1998 ‬سخت افزار ویژهای با هزی ه ‪ 250,000‬دالر طراحهی‬
‫کرد و چالش ‪ II-2‬را طی ‪ 56‬ساعت شکست‪.‬‬

‫‪ distributed.net :1998 ‬با سختافزار ‪ EFF‬توانست چالش ‪III‬‬


‫را در پس ا ‪ 22/5‬ساعت بشک د‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪22 / 128‬‬


‫ساختار فایستل رمز ‪DES‬‬
‫متن آشکار‬ ‫)‪(64‬‬

‫جایگشت اولیه‬
‫)‪(32‬‬ ‫)‪(32‬‬

‫‪+‬‬ ‫‪F‬‬ ‫)‪(48‬‬


‫‪k1‬‬

‫‪+‬‬ ‫‪F‬‬ ‫)‪(48‬‬

‫‪k2‬‬

‫زمانبند کلید‬
‫)‪(56‬‬

‫‪+‬‬ ‫‪F‬‬ ‫)‪(48‬‬ ‫‪K‬‬


‫‪k3‬‬
‫…‬

‫‪+‬‬ ‫‪F‬‬ ‫)‪(48‬‬

‫‪k16‬‬
‫جایگشت نهایی‬
‫متن رمز‬ ‫)‪(64‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪23 / 128‬‬


‫جایگشت اولیه و نهایی‬
‫‪ ‬تأثیری در رمز ندارند‪.‬‬

‫‪ ‬صرفاً جهت تسهیل در بارگذاری قطعهها در سختافزارهای دهه ‪.1970‬‬

‫‪ ‬جایگشت نهایی معکوس جایگشت اولیه است‪.FP = IP-1 :‬‬

‫)‪IP (Initial Permutation‬‬

‫)‪FP (Final Permutation‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪24 / 128‬‬


‫یک دور از ‪DES‬‬

‫توسط زمانبند کلید‬


‫‪ 32‬بیت‬ ‫‪ 32‬بیت‬
‫تولید میشود‪.‬‬
‫‪Ln‬‬ ‫‪Rn‬‬
‫کلید دور‬
‫‪Kn‬‬ ‫(‪ 48‬بیت)‬
‫‪F‬‬

‫‪Ln +1‬‬ ‫‪Rn +1‬‬

‫𝑛𝑅 ← ‪𝐿𝑛+1‬‬
‫𝑛𝐿 ⊕ 𝑛𝑘 ‪𝑅𝑛+1 ← 𝐹 𝑅𝑛 ,‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪25 / 128‬‬


‫ساختار داخلی تابع دور ‪DES‬‬

‫‪Expansion‬‬
‫‪Box‬‬

‫‪ 48‬بیت‬

‫‪ 6‬بیت‬
‫‪Substitution‬‬
‫)‪Box (S-Box‬‬

‫‪ 4‬بیت‬ ‫‪32‬بیت‬
‫‪Permutation‬‬
‫)‪Box (P-Box‬‬

‫‪32‬بیت‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪26 / 128‬‬
‫جعبه توسعه (‪)Expansion Box‬‬

‫تبدیل ‪ 32‬بیت به ‪ 48‬بیت با‬


‫تکرار برخی بیتها در خروجی‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪27 / 128‬‬


‫‪S-Box‬‬
‫‪ ‬استفاده ا ‪ 8‬عدد ‪ S-Box‬کهه ههر یهک بهر اسهاس یهک جهدو‬
‫‪164‬ا ‪ 6‬بیت ورودی را به ‪ 4‬بیت خروجی تبدیل میک د‪.‬‬
‫‪‬بیتهای ‪ 1‬و ‪ 6‬ورودی‪ :‬انتخاب یکی ا ‪ 4‬سطر جدو‬
‫‪‬بیتهای ‪ 2‬تا ‪ 5‬ورودی‪ :‬انتخاب یکی ا ‪ 16‬ستون جدو‬
‫‪‬برگرداندن عدد موجود در آن خانه ا جدو به ع وان خروجی‬

‫‪ ‬در مجمههوع ‪ 48‬بیههت ورودی ا هشههت ‪ S-Box‬مختلههع عبههور‬


‫میک د و ‪ 32‬بیت برمیگردان د‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪28 / 128‬‬


‫یک ‪ S-Box‬از ‪DES‬‬
‫‪ ‬نخستیو ‪ S-Box‬در ‪( DES‬یع ی ‪)S1‬‬
‫‪‬مثال‪ :‬ورودی ‪  011001‬خروجی‪)1001( 9 :‬‬

‫شماره ستون‬
‫شماره‬

‫‪0000‬‬
‫‪1010‬‬
‫‪1001‬‬
‫‪1000‬‬

‫‪0101‬‬
‫‪0100‬‬

‫‪0010‬‬
‫‪0001‬‬
‫‪0110‬‬
‫‪1101‬‬
‫‪1100‬‬
‫‪1011‬‬

‫‪0011‬‬
‫‪1110‬‬

‫‪0111‬‬
‫‪1111‬‬

‫سطر↓‬
‫‪7‬‬ ‫‪0‬‬ ‫‪9‬‬ ‫‪5‬‬ ‫‪12‬‬ ‫‪6‬‬ ‫‪10‬‬ ‫‪3‬‬ ‫‪8‬‬ ‫‪11 15‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪13‬‬ ‫‪4‬‬ ‫‪14‬‬ ‫‪00‬‬
‫‪8‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪9‬‬ ‫‪11 12‬‬ ‫‪6‬‬ ‫‪10‬‬ ‫‪1‬‬ ‫‪13‬‬ ‫‪2‬‬ ‫‪14‬‬ ‫‪4‬‬ ‫‪7‬‬ ‫‪15‬‬ ‫‪0‬‬ ‫‪01‬‬
‫‪0‬‬ ‫‪5‬‬ ‫‪10‬‬ ‫‪3‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12 15 11‬‬ ‫‪2‬‬ ‫‪6‬‬ ‫‪13‬‬ ‫‪8 14‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪10‬‬
‫‪13‬‬ ‫‪6‬‬ ‫‪0‬‬ ‫‪10 14‬‬ ‫‪3‬‬ ‫‪11‬‬ ‫‪5‬‬ ‫‪7‬‬ ‫‪1‬‬ ‫‪9‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪8‬‬ ‫‪12 15‬‬ ‫‪11‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪29 / 128‬‬


‫‪P-Box‬‬
‫‪ P-Box ‬آخریو گام ا تابع ‪ F‬در ‪ DES‬است‪.‬‬

‫‪ ‬در ‪P-Box‬ا ‪ 32‬بیت ورودی به ‪ 32‬بیت خروجهی جایگشهت داده‬


‫میشوند‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪30 / 128‬‬


‫چند نکته‬
‫‪E-Box ‬ا ‪S-Box‬ههها و ‪ P-Box‬در تمههام دورهههای ‪ DES‬ثابههت‬
‫هست د‪.‬‬
‫‪‬ت ها چیزی که در هر دور تغییر میک دا ورودی و کلید دور است‪.‬‬

‫‪ E-Box ‬و ‪ P-Box‬برگشتپذیر هست د‪.‬‬


‫‪‬ا روی خروجی آنها میتوان ورودی را محاسبه نمود‪.‬‬

‫‪ S-Box ‬برگشتپذیر نیست‪.‬‬


‫‪‬چرا که تعداد بیت خروجی (‪ )32‬کمتر ا تعداد بیهت ورودی (‪)48‬‬
‫است‪.‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪31 / 128‬‬
‫ترکیب خطی‬
‫‪ Y ‬را ترکی خطی ا ‪x1‬ا ‪...‬ا ‪ xn‬مینامیم اگر اعدادی چون ‪a1‬ا ‪...‬ا‬
‫‪ an‬وجود داشته باش د به قسمی که‪:‬‬
‫𝑛‬
‫=𝑌‬ ‫𝑖𝑥 𝑖𝑎‬
‫‪𝑖=1‬‬

‫‪ ‬به سادگی میتوان تحقیهق کهرد کهه ت هها بخشهی ا تهابع ‪ F‬کهه‬
‫ترکی خطی ا ورودی نیستا ‪ S-Box‬است‪.‬‬
‫‪‬اگر ‪S-Box‬ها نبودندا متو رمز تابعی خطی ا متو آشکار شهده و‬
‫شکستو ‪ DES‬بسیار آسان میشد‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪32 / 128‬‬


‫زمانبندی کلید‬
‫‪ ‬هر بیت کلید حدوداً در ‪ 14‬دور ا ‪ 16‬دور استفاده میشود‪.‬‬

‫‪48 ∗ 16‬‬
‫‪≈ 13.7‬‬
‫‪56‬‬
‫مانب د کلیدا یک مقدار ‪ 64‬بیتی را به ع وان کلید میپذیرد‪.‬‬ ‫‪‬‬

‫‪ ‬ولی فقط ‪ 56‬بیت مشخص ا آن را استفاده میک د‪.‬‬

‫‪ ‬بقیه بیتها به ع وان ‪ parity‬کلید مورد استفاده قرار میگیرند‪.‬‬


‫‪‬بیت هشتم ا هر بایتا ‪ parity‬آن بایت است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪33 / 128‬‬


‫ساختار درونی زمانبند کلید‬

‫‪PC: Permuted Choice‬‬


‫هدف‪ :‬جایگشت دادن و انتخاب برخی بیتها‬

‫‪ :PC1‬جایگشت و انتخاب ‪ 56‬بیت ا ‪ 64‬بیت ورودی‬


‫‪ :PC2‬جایگشت و انتخاب ‪48‬بیت ا ‪ 56‬بیت ورودی‬

‫• نماد چهرخش بهه چه ( ‪Rotate‬‬


‫‪ )Left‬بیتها‬
‫• در دورهههای ‪1‬ا ‪2‬ا ‪ 9‬و ‪ 16‬فقههط ‪1‬‬
‫بیت چرخش‬
‫• در سایر دورها ‪ 2‬بیت چرخش‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪34 / 128‬‬


‫‪ PC1‬و ‪PC2‬‬

‫‪PC1‬‬

‫‪PC2‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪35 / 128‬‬


‫اثر بهمنی (‪)Avalanche Effect‬‬
‫‪ ‬اثر بهمنی‪ :‬با تغییر کوچک در بیتهای کلید یا متو آشکارا تغییهر‬
‫یادی در بیتهای متو رمز رخ دهد‪.‬‬

‫‪ ‬اثر بهمنی اکید (‪ )Strict Avalanche Criterion‬یا ‪:SAC‬‬


‫‪‬صوریسا ی (‪ )Formalization‬مفهوم فوق‬
‫‪‬با ‪ NOT‬کردن هر بیت در ورودیا هر یک ا بیتهای خروجهی بها‬
‫احتما حدوداً ‪ 50‬درصد ‪ NOT‬شوند‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪36 / 128‬‬


‫چرایی تعداد دور ‪DES‬‬
‫‪ ‬چرا تعداد دور ‪ DES‬برابر ‪ 16‬است؟‬
‫‪‬بعد ا ‪ 5‬دورا هر بیت ا متو رمز تابعی ا تمام بیتهای متو آشکار‬
‫و تمام بیتهای کلید است‪.‬‬
‫‪‬بعد ا ‪ 8‬دورا خاصیت ‪ SAC‬برقرار است‪.‬‬

‫‪ ‬در حمله تفاضلی (اسالیدهای بعد) ثابت میشود که اگر تعداد دور‬
‫کمتر یا مساوی ‪ 15‬بودا میتوانستیم ‪ DES‬را با یک حملهه مهتو‬
‫آشکار معلوم (‪ )KPA‬سریعتر ا حمله جامع بشک یم‪.‬‬
‫‪‬طراحان ‪ DES‬سالها قبل ا کشع حمله تفاضلی با آن آش ا بودند‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪37 / 128‬‬


‫تحلیل تفاضلی علیه ‪DES‬‬
‫‪ ‬تحلیل تفاضلی (‪)Differential Cryptanalysis‬‬
‫‪‬ابداع توسط «بیهام» و «شامیر» در اواخر ‪ 1980‬و اوایل ‪1990‬‬
‫‪‬ماهیت کامالً نظری (حمله غیر قابل اجرا در عمل)‬
‫‪‬ا نوع «متو آشکار انتخابی» (‪)CPA‬‬
‫‪‬قابل توسعه به «متو آشکار معلوم» (‪)KPA‬‬

‫‪‬نشان دادن برخی ا شرایط در طراحی‬


‫‪DES‬‬

‫‪Eli Biham‬‬ ‫‪Adi Shamir‬‬


‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪38 / 128‬‬
‫مفهوم تفاضل و حمله تفاضلی‬
‫‪ ‬یک وج متو آشکار ‪ 𝑋, 𝑋′‬با تفاضل 𝑋‪.Δ‬‬
‫‪‬در ‪DES‬ا مقیود ا تفاضل ‪ XOR‬است‪.Δ𝑋 = 𝑋 ⊕ 𝑋′ :‬‬

‫‪‬در سایر رمزها مفهوم تفاضل مت اسباً تعریع میشود‪.‬‬

‫‪ ‬با دادن متون آشکار ‪ 𝑋, 𝑋′‬به الگوریتم رمهزا متهون رمهز شهده‬
‫‪ 𝑌, 𝑌′‬به دست میآید که تفاضل آن 𝑌‪ Δ‬است‪.‬‬

‫‪ ‬با توجه به مقدار 𝑌‪:Δ‬‬


‫‪‬احتما برخی یر کلیدها بیشتر ا بقیه است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪39 / 128‬‬


‫تابع دور ‪ DES‬و تحلیل تفاضلی‬
‫‪X‬‬
‫با توجه به دانستن ‪ Y ،X´ ،X‬و ´‪:Y‬‬
‫‪X‬‬ ‫کلیه مقادیر ‪X‬ا ‪A‬ا ‪B‬ا ‪ C‬و ‪Y‬‬
‫‪E‬‬ ‫برای ما مشخص است‪.‬‬

‫) ‪E (X‬‬ ‫‪ki‬‬
‫‪A‬‬
‫‪B = A‬‬
‫‪S-Box‬‬

‫‪C‬‬

‫‪P‬‬

‫‪Y‬‬

‫‪Y‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪40 / 128‬‬
‫مثال از تحلیل تفاضلی ‪1 -‬‬
‫‪=L‬‬ ‫‪=0‬‬
‫‪ki‬‬

‫‪=0‬‬
‫‪F‬‬ ‫‪=0‬‬

‫‪=L‬‬ ‫‪=0‬‬

‫با احتما ‪1‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪41 / 128‬‬


‫مثال از تحلیل تفاضلی ‪2 -‬‬
‫‪=L‬‬ ‫‪=X‬‬
‫‪ki‬‬

‫‪=Y‬‬
‫‪F‬‬ ‫‪=X‬‬

‫‪ = L Y‬‬ ‫‪=X‬‬

‫‪X = 0x04000000‬‬
‫‪Y = 0x40080000‬‬

‫با احتما ‪%25‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪42 / 128‬‬


‫مشخصه (‪)Characteristic‬‬
‫‪ ‬مشخصه‪ :‬لیسهتی ا تفاضهل ورودیا تفاضهلهای میهانی و تفاضهل‬
‫نهایی‪.‬‬

‫‪ ‬برخی مشخیهها با احتما باالتری رخ میده د‪.‬‬

‫‪ ‬مشخیهها را میتوان ترکی کرد (اسالید بعد)‪.‬‬

‫یاد‪:‬‬ ‫‪ ‬با استفاده ا یک مشخیه با احتما‬


‫یاد بدست میآید (‪ 48‬بیت)‪.‬‬ ‫یر کلید دور ‪ 16‬با احتما‬ ‫‪‬‬
‫‪ 8‬بیت دیگر کلید را میتوان با جستجوی جامع محاسبه کرد‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪43 / 128‬‬


‫ترکیب مشخصهها در ‪ 2‬دور از ‪DES‬‬
‫‪=Y‬‬ ‫‪=X‬‬
‫‪ki‬‬

‫‪=Y‬‬
‫‪F‬‬ ‫‪=X‬‬

‫‪=X‬‬ ‫‪=0‬‬
‫‪ki +1‬‬
‫‪X = 0x04000000‬‬

‫‪=0‬‬
‫‪F‬‬ ‫‪=0‬‬
‫‪Y = 0x40080000‬‬

‫با احتما ‪%25‬‬


‫‪=X‬‬ ‫‪=0‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪44 / 128‬‬
‫نتایج حمله تفاضلی روی ‪ DES‬با تعداد دور مختلف‬
‫‪ ‬بهتریو حمله تفاضلی روی ‪ DES‬با ‪ 16‬دور‪:‬‬
‫‪ 247‬متو آشکار م تخ‬
‫‪‬به عالوه حمله آ مون جامع روی ‪ 8‬بیت کلید (‪ 28‬عمل) ‪255‬‬
‫‪‬قابل تبدیل به ‪ 255‬متو آشکار معلوم‬

‫‪ 17 ‬یا ‪ 18‬دور ‪ DES‬معاد حمله آ مون جامع‬


‫‪ 19 ‬یا بیشتر دور ‪:DES‬‬
‫‪‬نیا به بیش ا ‪ 264‬متو آشکار‬
‫‪‬غیر ممکو ‪ ‬طو قالبهای ‪ DES‬برابر ‪ 64‬است‪.‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪45 / 128‬‬
‫حمله کلید مرتبط ‪1 -‬‬
‫‪ ‬حمله کلید مرتبط (‪ :)Related Key‬نوعی حمله متو م تخ‬
‫‪‬مهاجم میتواند متو آشکار و‪/‬یا متو رمز را انتخاب نمایدا و ‪...‬‬
‫‪‬مهاجم میتواند درخواست دهد که متون دلخواه خود با کلیهدهایی‬
‫مرتبط با کلید اصلی رمزگذاری ‪ /‬رمزگشایی شوند‪.‬‬
‫‪‬مهاجم مقدار کلید اصلی یا مقدار کلیدهای مرتبط را نمیداند‪.‬‬
‫‪‬فقط رابطه کلیدهای مرتبط با کلید اصلی معلوم است‪.‬‬
‫‪‬مثال‪ :‬میدانیم که ‪ 10‬بیت سمت راست کلید مرتبط و اصلی یکی‬
‫است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪46 / 128‬‬


‫حمله کلید مرتبط ‪2 -‬‬
‫‪ ‬حمله مشابه حمله تفاضلی است؛ م تها بهه جهای بررسهی تفاضهل‬
‫متون آشکارا تفاضل کلیدها بررسی میشود‪.‬‬

‫‪ ‬در یک پروتکل تباد کلید ضعیفا ممکهو اسهت مههاجم بتوانهد‬


‫رابطهای را بیو کلیدهای نشست ایجاد ک د‪.‬‬

‫‪ ‬سپس به الگوریتم رمز مورد استفاده در تباد پیهاما حملهه کلیهد‬


‫مرتبط نماید‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪47 / 128‬‬


‫حمله کلید مرتبط به ‪DES‬‬
‫مانب د کلید در ‪ DES‬در هر دور ‪ 2‬چرخش به چ دارد؛ به جز‬ ‫‪‬‬
‫دورهای ‪1‬ا ‪2‬ا ‪ 9‬و ‪ 16‬که ‪ 1‬چرخش به چ دارد‪.‬‬

‫‪ ‬اگر استث ای فوق وجود نداشت (همواره ‪ 2‬دور چرخش به چ )‪:‬‬


‫‪‬حمله کلید مرتبط به ‪ DES‬با ‪ 217‬متو آشکار م تخ ‪.‬‬
‫‪‬حمله مستقل ا تعداد دور ‪ DES‬است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪48 / 128‬‬


‫حمله خطی (‪)Linear‬‬
‫‪ ‬ت ها بخش غیر خطی ‪DES‬ا بخش ‪ S-Box‬است‪.‬‬

‫‪ ‬تالش در تقری ‪S-Box‬های ‪ DES‬با توابع خطی‬


‫‪‬ابداع توسط ‪ Mitsuru Matsui‬در ‪1994‬‬

‫‪ ‬م ظور ا تقری ا روابطی خطی میان برخی بیتههای مهتو آشهکارا‬
‫متو رمز شده و کلید در هر دور است که با احتما نزدیک به ‪ 0‬یا‬
‫نزدیک به ‪ 1‬برقرار است‪.‬‬

‫‪ ‬نیا به ‪ 243‬متو آشکار معلوم برای ‪DES‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪49 / 128‬‬


‫فهرست مطالب‬

‫• رمزهای متقارن و قالبی‬


‫• ساختار رمزهای فایستل‬
‫• استاندارد رمزگذاری داده (‪)DES‬‬
‫• الگوریتمهای رمز ‪ 2DES‬و ‪3DES‬‬
‫• استاندارد رمزگذاری پیشرفته (‪)AES‬‬
‫• رمزهای متقارن معروف‬
‫• سبکهای کاری رمزهای متقارن‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪50 / 128‬‬


‫مسئله آسیبپذیری ‪ DES‬در مقابل حمله آزمون جامع‬
‫‪ ‬راه حل‪:‬‬
‫‪‬استفاده ا الگوریتم های رمزنگاری دیگر‬
‫‪‬پیچیههده کههردن الگههوریتم ‪ DES‬ا طریههق اضههافه کههردن مراحههل‬
‫رمزنگاری و افزایش طو کلید‬
‫‪‬چ د مرتبه تکرار ‪ DES‬با کلیدهای مستقل‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪51 / 128‬‬


‫الگوریتم ‪( 2DES‬دابل – دز)‬
‫‪ ‬دو مرتبه رمزنگاری با دو کلید مستقل‬

‫‪ ‬طو کلید = ‪ 112‬بیت‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪52 / 128‬‬


‫حمله مالقات در میانه (‪)Meet-in-the-Middle‬‬
‫))‪C = E(K2, E(K1,P‬‬ ‫)‪E(K1,P) = X = D(K2,C‬‬

‫‪ ‬با داشتو یک وج )‪(P, C‬ا‬


‫‪ P‬را با ‪ 256‬کلید ممکو برای ‪ K1‬رمز و مقادیر ‪ X‬را ذخیره کو‪.‬‬
‫‪ C‬را با ‪ 256‬کلید ممکو برای ‪ K2‬رمز و مقادیر حاصهله بها مقهادیر‬
‫ذخیره شده مقایسه کو‪.‬‬
‫‪‬در صورت تطابقا درستی وج کلید یافت شده را چک کو‪.‬‬

‫‪ ‬معاد آ مون جامع برای ‪ 257‬حالت است‪  .‬میالحه بیو مان و‬


‫حافظه (‪)Time-Memory Tradeoff‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪53 / 128‬‬
‫الگوریتم ‪ 3DES‬با دو کلید‬
‫‪ ‬حل مشکل ‪ 2DES‬با سه مرحله رمزگذاری با ‪DES‬‬

‫‪ ‬امکان بهرهگیری ا ‪ 3‬بار ‪ DES‬با دو کلید به صورت یر‪:‬‬

‫‪C‬‬ ‫)))‪= E(K1, D(K2, E(K1, P‬‬

‫=‪P‬‬ ‫)))‪D(K1, E(K2, D(K1, C‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪54 / 128‬‬


‫الگوریتم ‪ 3DES‬با سه کلید‬
‫‪ ‬استفاده ا سه کلید مختلع‬

‫)))‪C = E(K3, D(K2, E(K1, P‬‬

‫‪ ‬طو کلید = ‪ 168‬بیت‬

‫‪ ‬تا ک ون روی ‪ 3DES‬دو یا سه کلیدی حمله عملی گزارش نشهده‬


‫است‪  .‬ولی بسیار ک د است!‬

‫‪ ‬استفاده ا ترتی ‪ EDE‬برای رمزگذاری‪:‬‬


‫‪‬با مساوی قرار دادن هر سه کلید به یک ‪ DES‬معمولی میرسیم‪.‬‬
‫• سا گاری با تجهیزاتی که ‪ 3DES‬را نمیفهم د‪.‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪55 / 128‬‬
‫فهرست مطالب‬

‫• رمزهای متقارن و قالبی‬


‫• ساختار رمزهای فایستل‬
‫• استاندارد رمزگذاری داده (‪)DES‬‬
‫• الگوریتمهای رمز ‪ 2DES‬و ‪3DES‬‬
‫• استاندارد رمزگذاری پیشرفته (‪)AES‬‬
‫• رمزهای متقارن معروف‬
‫• سبکهای کاری رمزهای متقارن‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪56 / 128‬‬


‫استاندارد رمزگذاری پیشرفته ‪AES‬‬
‫‪( NIST ‬مؤسسههه ملههی علههم و ف ههاوری آمریکهها) در سهها ‪1997‬‬
‫مسابقهای دو مرحلهای برای طراحی استاندارد پیشرفته رمزنگهاری‬
‫(‪ )Advanced Encryption Standard‬برگزار کرد‪.‬‬
‫‪‬تمام طراحیها باید بر اساس اصو کامالً روشو انجام شوند‪.‬‬
‫‪‬سا مانهای دولتهی آمریکها حهق ههیچ گونهه دخهالتی در طراحهی‬
‫الگوریتم ندارند‪.‬‬

‫‪ ‬در سا ‪ 2000‬رِیْ دا (‪ )Rijndael‬به ع وان برنده اعالم شد‪.‬‬

‫‪ ij‬‬ ‫]‪ Dutch pronunciation: [ɛi‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪57 / 128‬‬


‫معیارهای ارزیابی مسابقه ‪AES‬‬
‫‪ ‬معیارهای اولیه‪:‬‬
‫‪‬ام یت‬
‫‪‬هزی ه محاسباتی‬
‫‪‬مشخیه های الگوریتم و پیادهسا ی آن‬
‫‪ ‬معیارهای نهایی‪:‬‬
‫‪‬ام یت عمومی‬
‫‪‬سادگی پیادهسا ی نرمافزاری و سختافزاری‬
‫‪‬حمالت وارده به پیادهسا ی‬
‫‪‬انعطافپذیری (در رمزگذاری و رمزگشاییا کلید و غیره)‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪58 / 128‬‬


‫فینالیست های مسابقه ‪AES‬‬
‫‪ 5 ‬الگوریتم قرار گرفته در لیست نهایی (به ترتی رأی)‪:‬‬
‫‪( Rijndael ‬توسط ‪ Rijmen‬و ‪)Daemen‬‬
‫‪( Serpent‬توسط ‪Anderson‬ا ‪Biham‬ا و ‪)Knudsen‬‬
‫‪( Twofish ‬توسط ‪)Schneier‬‬
‫‪( RC6‬ا آ مایشگاه ‪)RSA‬‬
‫‪( MARS‬ا ‪)IBM‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪59 / 128‬‬


‫مشخصات استاندارد ‪AES‬‬
‫‪ ‬در الگوریتم اصلی ‪ Rijndael‬طو قطعه مهی توانهد ‪128‬ا ‪ 192‬و‬
‫یا ‪ 256‬بیت باشدا ولی در استاندارد ‪ FIPS PUB 197‬طهو آن‬
‫به ‪128‬بیت محدود شده است‪.‬‬

‫‪256 192 128‬‬ ‫طو کلید‬

‫‪128 128 128‬‬ ‫طو قطعه ورودی و خروجی‬

‫‪14‬‬ ‫‪12‬‬ ‫‪10‬‬ ‫تعداد دور‬

‫‪128 128 128‬‬ ‫طو کلید هر دور‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪60 / 128‬‬


‫مشخصات استاندارد ‪AES-128‬‬
‫‪ ‬مبت ی بر ساختار رمز فایستل نیست و کهل قطعهه داده پهردا ش‬
‫میشود‪.‬‬

‫‪ ‬کلید ‪ 128‬بیتی (‪ 4‬کلمههای)ا بهه یهک آرایهه ‪ w‬بها ‪ 44‬ع یهر ا‬


‫کلمات ‪ 32‬بیتی بسط داده میشود‪.‬‬

‫‪ ‬کلید هر دور ‪ 4‬ع یر ایو آرایه (‪ 128‬بیت) است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪61 / 128‬‬


‫نحوه کار ‪AES-128‬‬
‫‪ ‬الگوریتم مان ب دی کلید نقش تهیه کلید برای هر دور بهر اسهاس‬
‫کلید اصلی را بر عهده دارد‪.‬‬

‫‪ ‬برخالف ‪ DES‬و بسهیاری ا رمزههای دیگهرا اَعمها ال م بهر روی‬


‫بایتها انجام می شود نه بیتها‪.‬‬

‫‪ ‬متو آشکار ‪ 128‬بیتی به شکل یک ماتریس حالت ‪ 4×4‬در میآید‪.‬‬


‫‪‬هر درایه یک بایت ا متو آشکار را نشان میدهد‪.‬‬
‫‪‬ایو ماتریس به صورت ستونی پر میشود‪.‬‬
‫‪‬ایو ماتریس در انتها شامل متو رمز خواهد بود‪.‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪62 / 128‬‬
‫نحوه کار ‪AES-128‬‬
‫‪ ‬متو آشکار ورودی به صهورت سهتونی در مهاتریس حالهت ذخیهره‬
‫میشود‪.‬‬

‫‪Input = 32 43 f6 a8 88 5a 30 8d‬‬
‫‪31 31 98 a2 e0 37 07 34‬‬

‫‪32‬‬ ‫‪88‬‬ ‫‪31‬‬ ‫‪e0‬‬

‫‪43‬‬ ‫‪5a‬‬ ‫‪31‬‬ ‫‪37‬‬

‫‪f6‬‬ ‫‪30‬‬ ‫‪98‬‬ ‫‪07‬‬

‫‪a8‬‬ ‫‪8d‬‬ ‫‪a2‬‬ ‫‪34‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪63 / 128‬‬


‫مراحل رمزگذاری ‪AES-128‬‬
‫‪ ‬در هر دور ‪ 4‬عمل برگشتپذیر روی ماتریس حالت اِعما میشود‪.‬‬
‫‪‬جانشینی بایتها‪ :‬جانشی ی درایه های ماتریس حالت با استفاده ا‬
‫یک ‪S-Box‬‬

‫‪‬شیفت سطری‪ :‬شیفت دورانی سطرهای ماتریس حالت‬


‫خطی ستونهای ماتریس حالت با استفاده‬ ‫‪‬ترکیب ستونها‪ :‬ترکی‬
‫ا ضرب ماتریسی‬
‫‪‬اضافه نمودن کلید دور‪ XOR :‬ماتریس حالت با کلید دور‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪64 / 128‬‬


‫رمزگذاری در ‪AES-128‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪65 / 128‬‬


‫رمزگذاری و رمزگشایی در ‪AES-128‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪66 / 128‬‬


‫جانشینی بایتها (‪ )S-Box‬در ‪AES‬‬
‫‪ ‬نوعی تابع غیرخطی محسوب میشود‬

‫‪ ‬توسط یک ماتریس ‪ 44‬بایت پیادهسا ی میشود‪.‬‬


‫‪5‬‬

‫‪9‬‬

‫}‪{95‬‬ ‫}‪{2A‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪67 / 128‬‬


‫جانشینی بایتها (‪ )S-Box‬در ‪AES‬‬
‫‪ ‬ورودی تابع سطر و ستون درایهه جهدو را معهیو کهرده و مقهدار‬
‫ذخیره شده در ایو درایه خروجی تابع است‪.‬‬

‫‪ ‬با داشتو یک ع یر ا ماتریس حالت‬


‫‪‬سطر جدو = ‪ 4‬بیت سمت چ ع یر‬
‫‪‬ستون جدو = ‪ 4‬بیت سمت راست ع یر‬

‫‪ ‬برای رمزگشایی ا جدو معکوس استفاده می شود‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪68 / 128‬‬


‫جدول جانشینی در ‪AES‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪69 / 128‬‬


‫جدول جانشینی معکوس در ‪AES‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪70 / 128‬‬


‫شیفت سطری در ‪AES‬‬
‫‪ ‬شیفت چرخشی به چ که در آن‪:‬‬
‫‪‬سطر او بدون تغییر‬
‫‪‬سطر دوم یک بایت شیفت چرخشی به چ‬
‫‪‬سطر سوم دو بایت شیفت چرخشی به چ‬
‫‪‬سطر چهارم سه بایت شیفت چرخشی به چ‬

‫‪ ‬در رمزگشاییا شیفت چرخشی به راست انجام میشود‪.‬‬

‫‪ ‬ا آنجا که داده به صورت ستونی در ماتریس حالهت ذخیهره شهدها‬


‫لذا ایو مرحله یک جایگشت بیو ستونها انجام میدهد‪.‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪71 / 128‬‬
‫شیفت سطری در ‪AES‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪72 / 128‬‬


‫ترکیب ستونها در ‪AES‬‬
‫‪ ‬هر ستون جداگانه پردا ش می شود‪.‬‬

‫‪ ‬با ضرب یک ماتریس در کل ستون‬


‫‪‬ضرب و جمعا ضرب و جمع عادی نیست د‪.‬‬
‫‪‬ضرب و جمع در میدان مت اهی با اندا ه ‪ :28‬مشابه ضهرب و جمهع‬
‫چ د جملهایها‬
‫‪‬هدف‪ :‬برگشتپذیر بودن‬

‫‪ ‬برای رمزگشایی ا ماتریس دیگری در ضرب استفاده میشود‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪73 / 128‬‬


‫ترکیب ستونها در ‪AES‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪74 / 128‬‬


‫افزودن کلید دور در ‪AES‬‬
‫‪ ‬ماتریس حالت با کلید دور ‪ XOR‬میشود‪.‬‬

‫‪ ‬به صورت ستونی انجام میشود‪.‬‬

‫‪ ‬برای رمزگشایی نیز همیو عمل انجام میشود‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪75 / 128‬‬


‫دیدگاه کلی از یک دور ‪AES‬‬
‫• یک دور الگوریتم ‪AES‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪76 / 128‬‬


‫بسط کلید در ‪AES-128‬‬
‫‪ ‬یک کلید ‪ 128‬بیتی (‪ 16‬بایتی) دریافت میک هد و آن را بهه یهک‬
‫آرایه ‪ 44‬ع یره (ا کلمات ‪ 32‬بیتی) بسط میدهد‪.‬‬

‫‪ ‬شروع‪ :‬کپی کلید در ‪ 4‬ع یر (کلمه) او آرایه‬

‫‪ ‬تکرار‪ :‬تولید هر ع یر (کلمه ]‪ )w[i‬بر اساس ]‪w[i-1‬و ]‪w[i-4‬‬

‫‪ ‬ع اصر موجود در درایه های مضرب ‪ 4‬با تابع پیچیهده ‪ g‬محاسهبه‬
‫میشوند‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪77 / 128‬‬


‫بسط کلید در ‪AES‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪78 / 128‬‬


‫بسط کلید در ‪AES‬‬
‫‪ ‬تابع پیچیده ‪ g‬شامل یرتوابع یر است‪:‬‬
‫‪ )RotWord(‬شیفت چرخشی به چ به اندا ه یک بایت‬
‫‪ )SubWord(‬جانشی ی هر بایت بر اساس جدو ‪ S-Box‬مهورد‬
‫استفاده در رمزگذاری‬
‫‪‬ترکی ‪ XOR‬مقدار حاصل ا انجام اَعما ‪ 1‬و ‪ 2‬بها مقهدار ثابهت‬
‫]‪Rcon[i/4‬‬

‫‪Rcon[i/4] = (RC[i/4], 0, 0, 0)‬‬


‫‪j‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪8‬‬ ‫‪9‬‬ ‫‪10‬‬
‫]‪RC[j‬‬ ‫‪01‬‬ ‫‪02‬‬ ‫‪04‬‬ ‫‪08‬‬ ‫‪10‬‬ ‫‪20‬‬ ‫‪40‬‬ ‫‪80‬‬ ‫‪1B‬‬ ‫‪36‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪79 / 128‬‬


‫امنیت ‪AES‬‬
‫‪ ‬بهتریو حمله به ‪ AES-128‬پیچیدگی ‪ 2126.1‬دارد‪.‬‬
‫‪‬عمالً معاد آ مون جامع‬

‫‪ ‬ا لحاظ مقایسه با ‪:DES‬‬


‫‪‬فرض ک ید ماشی ی وجود دارد که کلید ‪ DES‬را ا طریق آ مون‬
‫جامع در یک ثانیه با یابی میک دا یع ی در ههر ثانیهه ‪ 256‬کلیهد را‬
‫امتحان میک هد‪ .‬ایهو ماشهیو کلیهد ‪ AES‬را در ‪ 1/51014‬سها‬
‫با یابی مینماید‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪80 / 128‬‬


‫جنبههای پیادهسازی ‪AES‬‬
‫‪ ‬قابلیت پیادهسا ی روی پردا ندههای ‪ 8‬بیتی‬

‫‪ ‬قابلیت پیادهسا ی کارا روی پردا ندههای ‪ 32‬بیتی‬

‫‪ ‬همه اَعمها بها شهیفتا ‪ XOR‬و اسهتفاده ا یهک سهری جهداو‬


‫‪ look-up‬قابل انجام است‪.‬‬

‫‪ ‬به اعتقاد طراحان آنا قابلیت پیادهسها ی بسهیار کهارای آن باعه‬


‫انتخاب آن شده است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪81 / 128‬‬


‫مجموعه دستورالعمل ‪AES‬‬
‫‪ ‬ای تههل در سهها ‪ 2008‬مجموعههه دسههتورالعملهای ‪ AES‬را بههه‬
‫‪CPU‬های خود افزود ‪ ‬افزایش چشمگیر سرعت ‪AES‬‬
‫توصیف‬ ‫دستورالعمل‬
‫اجرای یک دور عادی ا رمزگذاری ‪AES‬‬ ‫‪AESENC‬‬
‫اجرای دور آخر ا رمزگذاری ‪AES‬‬ ‫‪AESENCLAST‬‬
‫اجرای یک دور عادی ا رمزگشایی ‪AES‬‬ ‫‪AESDEC‬‬
‫اجرای دور آخر ا رمزگشایی ‪AES‬‬ ‫‪AESDECLAST‬‬
‫کمک در تولید کلید دور ‪AES‬‬ ‫‪AESKEYGENASSIST‬‬
‫کمک در عملیات ‪Inverse Mix Columns‬‬ ‫‪AESIMC‬‬
‫ضرب بدون رقم نقلی (عملیات در میدانهای مت اهی)‬ ‫‪PCLMULQDQ‬‬

‫‪ ‬مجموعه دستورالعمل های مشابهی برای سایر معماریههای ‪CPU‬‬


‫نظیر ‪ ARM‬وجود دارد‪.‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪82 / 128‬‬
‫فهرست مطالب‬

‫• رمزهای متقارن و قالبی‬


‫• ساختار رمزهای فایستل‬
‫• استاندارد رمزگذاری داده (‪)DES‬‬
‫• الگوریتمهای رمز ‪ 2DES‬و ‪3DES‬‬
‫• استاندارد رمزگذاری پیشرفته (‪)AES‬‬
‫• رمزهای متقارن معروف‬
‫• سبکهای کاری رمزهای متقارن‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪83 / 128‬‬


‫انواع شبکه فایستل – فایستل کالسیک‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪84 / 128‬‬


‫انواع شبکه فایستل – فایستل نامتوازن‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪85 / 128‬‬


‫انواع شبکه فایستل – فایستل نامتوازن عددی‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪86 / 128‬‬


‫انواع شبکه فایستل – فایستل متناوب‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪87 / 128‬‬


‫انواع شبکه فایستل – فایستل متناوب عددی‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪88 / 128‬‬


‫انواع شبکه فایستل – فایستل نوع ‪1‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪89 / 128‬‬


‫انواع شبکه فایستل – فایستل نوع ‪2‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪90 / 128‬‬


‫انواع شبکه فایستل – فایستل نوع ‪3‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪91 / 128‬‬


‫‪GOST‬‬
‫‪ :GOST 28147-89 ‬رمز مورد استفاده در شوروی سهابق (دههه‬
‫‪)70‬‬
‫‪‬تغییر وضعیت ا بسیار محرمانه به محرمانه در ‪1990‬‬
‫‪‬غیر محرمانهسا ی در ‪ 1994‬پس ا فروپاشی شوروی‬

‫‪ ‬ساختار مشابه ‪( DES‬شبکه فایستل)‬


‫‪‬طول کلید‪ 256 :‬بیت‬

‫پیچیدگی بهتریو حمله به ‪:GOST‬‬ ‫‪‬طول قالب‪ 64 :‬بیت‬


‫‪2101‬‬ ‫‪‬تعداد دور‪32 :‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪92 / 128‬‬
‫‪FEAL‬‬
‫‪ Fast‬‬ ‫‪data Encipherment ALgorithm‬‬

‫‪ ‬طراحی در ‪ 1987‬توسط پژوهشگران ‪ NTT‬ژاپو‬


‫‪‬به ع وان جایگزیو سریعی برای ‪DES‬‬

‫‪‬بسیار ضعیع؛ به سادگی شکست‪.‬‬ ‫‪ ‬ساختار‪ :‬شبکه فایستل‬


‫‪‬اما سب پیشهرفت رمزنگهاری (بهه‬ ‫‪‬طول کلید‪ 64 :‬بیت‬
‫ویژه حمله تفاضلی شد)‪.‬‬
‫‪‬طول قالب‪ 64 :‬بیت‬
‫‪‬نسههخههههای ‪ FEAL-N/NX‬در‬
‫سا ‪ 1990‬ارائه شهد کهه بها ههم‬ ‫‪‬تعداد دور‪4 :‬‬
‫شکست‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪93 / 128‬‬


‫‪IDEA‬‬
‫‪ International‬‬ ‫‪Data Encryption Algorithm‬‬

‫‪ ‬ابداع شده توسط ‪ Lai‬و ‪ Massey‬در سا ‪1990‬‬

‫‪ ‬سرعت بسیار بیشتر نسبت به ‪( DES‬در پیاده سا ی نرم افزاری)‬

‫‪Xuejia Lai‬‬ ‫‪James Massey‬‬


‫) – ‪(1954‬‬ ‫)‪(1934 – 2013‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪94 / 128‬‬
‫ویژگیهای ‪IDEA‬‬
‫‪ ‬شبکه ‪Lai-Massey‬‬
‫‪‬مشابه شبکه فایستل‬

‫‪ ‬طول کلید‪ 128 :‬بیت‬

‫‪ ‬طول بالک‪ 64 :‬بیت‬

‫‪ ‬تعداد دورها‪ 8/5 :‬دور‬


‫‪‬نیم دور برای تبدیل خروجی‬

‫‪ ‬انجام عملیات روی عملوندهای ‪ 16‬بیتی‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪95 / 128‬‬


‫تحلیل ‪ – IDEA‬استفاده از ‪IDEA‬‬
‫‪ ‬طو کلید ‪ 128‬بیتی حمله آ مون جامع را غیرممکو میک د‪.‬‬

‫‪ ‬بهتریو حمله‪ :‬سا ‪2012‬‬


‫‪‬پیچیدگی‪ – 2126.1 :‬عمالً معاد آ مون جامع‬

‫‪ ‬تا همیو اواخرا ‪ IDEA‬یک نام تجاری بوده و اسهتفاده تجهاری ا‬


‫آن ممکو نبود‪.‬‬
‫‪‬آخریو ‪ patent‬در سا ‪ 2012‬م قضی شد‪.‬‬
‫‪‬اک ون ‪ IDEA‬را میتوان مجاناً استفاده کرد‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪96 / 128‬‬


‫‪Blowfish‬‬
‫‪ ‬ماهی بادکنکی؛ طراحی شده در سا ‪ 1993‬توسط اش ایر‬

‫‪ ‬رمز مبت ی بر شبکه فایستل‬

‫‪ ‬تابع دور‪:‬‬

‫‪Bruce Schneier‬‬
‫) – ‪(1963‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪97 / 128‬‬
‫ویژگیهای ‪Blowfish‬‬
‫‪ ‬تعداد دورها‪ 16 :‬دور‬

‫‪ ‬طول کلید متغیر‪ 32 :‬تا ‪ 448‬بیت‬

‫‪S-Box ‬های وابسته به کلید‬

‫‪ ‬طول قطعه‪ 64 :‬بیت‬


‫‪‬با توجه به طو قطعه کوچکا استفاده ا آن برای فایلهای بزرگتهر‬
‫ا ‪ 4 Gb‬توصیه نمیشود‪.‬‬
‫‪‬بهتر است ا ‪ Twofish‬یا ‪ Threefish‬استفاده شود‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪98 / 128‬‬


‫‪Twofish‬‬
‫‪ ‬فی الیست ‪( AES‬سا ‪)1998‬‬
‫‪ ‬ساختار‪ :‬شبکه فایستل‬
‫‪‬طووول کلیوود‪128 :‬ا‬
‫‪192‬ا یا ‪ 256‬بیت‬
‫‪‬طول قالب‪ 128 :‬بیت‬
‫‪‬تعداد دور‪16 :‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪99 / 128‬‬


‫‪Threefish‬‬
‫‪ ‬طراحی‪2008 :‬‬

‫‪ ‬ساختار‪ :‬غیر فایستلی‬


‫‪‬طوووول کلیووود‪256 :‬ا‬
‫‪512‬ا یا ‪1024‬بیت‬
‫‪‬طول قالب‪ :‬مثل طهو‬
‫کلید‬
‫‪‬تعوووداد دور‪80( 72 :‬‬
‫برای قال ‪ 1024‬بیتی)‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪100 / 128‬‬


‫خانواده رمزهای ‪RC‬‬
‫‪ ‬طراحی شده توسط رایوست (طراحی ‪RSA‬ا ‪MD5‬ا ‪)...‬‬
‫‪ RC‬کوتهنوشت ‪ Rivest Cipher‬یا ‪Ron’s Code‬‬
‫‪ ‬شامل رمزهای یر‪:‬‬
‫‪ :RC1‬هرگز م تشر نشد‪.‬‬
‫‪ :RC2‬رمز قالبی – ‪1987‬‬
‫‪ :RC3‬حیو طراحی شکسته شد!‬
‫‪ :RC4‬رمز جریانی معروف‬
‫‪Ronald Linn Rivest‬‬
‫) – ‪(1947‬‬ ‫‪ :RC5‬رمز قالبی – ‪1994‬‬
‫‪ :RC6‬رمز قالبی – ‪( 1998‬فی الیست ‪)AES‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪101 / 128‬‬
‫‪RC5‬‬
‫‪ ‬ساختار‪ :‬شبکه فایستل‬
‫‪‬طول کلید‪ 0 :‬تا ‪ 2040‬بیت (توصیه‪)128 :‬‬
‫‪‬طول قالب‪32 :‬ا ‪64‬ا یا ‪( 128‬توصیه‪)64 :‬‬
‫‪‬تعداد دور‪ 1 :‬تا ‪( 255‬توصیه‪)12 :‬‬

‫‪ Patent ‬شده توسط ‪RSA Security‬‬

‫‪ ‬بهتریو حمله (مطابق پارامترهای توصیه)‪:‬‬


‫‪‬حمله تفاضلی با ‪ 244‬متو آشکار م تخ‬
‫یک دور (دو نیمدور)‬
‫از ‪RC5‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪102 / 128‬‬
‫‪RC6‬‬
‫‪ ‬سوواختار‪ :‬شههبکه فایسههتل‬
‫(نوع ‪)2‬‬
‫‪‬طول کلید‪128 :‬ا ‪192‬ا‬
‫یا ‪ 256‬بیت‬
‫‪‬طول قالب‪ 128 :‬بیت‬
‫‪‬تعداد دور‪20 :‬‬
‫تابع دور ‪RC6‬‬
‫‪ Patent ‬شده توسط ‪RSA Security‬‬

‫‪ ‬مان د ‪RC5‬ا میشود پارامترهای دلخواهی نیز داشته باشد‪.‬‬


‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪103 / 128‬‬
‫‪CAST-128‬‬
‫‪ ‬ابداع توسط آدامز و تاوار در سا ‪1996‬‬
‫‪‬استاندارد شده توسط دولت کانادا برای ارتباطات امو‬

‫‪ ‬ساختار‪ :‬شبکه فایستل‬


‫‪‬طول کلید‪ 40 :‬تا ‪ 128‬بیت‬
‫‪‬طول قالب‪ 64 :‬بیت‬
‫‪‬تعداد دور‪ 12 :‬یا ‪16‬‬

‫‪ ‬نوع پیشرفته‪CAST-256 :‬‬


‫‪Carlisle M.‬‬ ‫‪Stafford E. Tavares‬‬ ‫‪‬فایستل نوع ‪1‬‬
‫‪Adams‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪104 / 128‬‬
‫‪MARS‬‬
‫‪ ‬ابداع توسط تیمی در ‪ IBM‬در سا ‪1998‬‬
‫‪‬تیم شامل کاپر اسمی ا ا طراحان اصلی ‪( DES‬در ک ار فایستل)‬
‫‪‬فی الیست ‪AES‬‬

‫‪ ‬ساختار‪ :‬شبکه فایستل نوع ‪3‬‬


‫‪‬طول کلید‪128 :‬ا ‪192‬ا یا ‪ 256‬بیت‬
‫‪‬طول قالب‪128 :‬بیت‬
‫‪‬تعداد دور‪32 :‬‬
‫‪Don Coppersmith‬‬
‫) – ‪(1950‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪105 / 128‬‬
‫‪Serpent‬‬
‫‪ ‬ابداع توسط اندرسونا بیهام و ک ودسو در سا ‪1998‬‬
‫‪‬فی الیست ‪AES‬‬

‫‪ ‬ساختار‪ :‬شبکه جانشی ی‪ -‬جایگشتی‬


‫‪‬طول کلید‪128 :‬ا ‪192‬ا یا ‪ 256‬بیت‬
‫‪‬طول قالب‪128 :‬بیت‬
‫‪‬تعداد دور‪32 :‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪106 / 128‬‬


‫‪Camellia‬‬
‫‪ ‬طراحی در سا ‪ 2000‬توسط میتسوبیشی و ‪ NTT‬ژاپو‬
‫‪‬پروژه ‪ CRYPTREC‬در ژاپو‬
‫‪‬پروژه ‪ NESSIE‬اتحادیه اروپا‬
‫‪ ‬ساختار فایستل‬
‫‪‬طول کلید‪128 :‬ا ‪192‬ا یا ‪ 256‬بیت‬
‫‪‬طول قالب‪128 :‬بیت‬
‫‪‬تعداد دور‪ 18 :‬یا ‪24‬‬
‫‪ ‬بخشی ا پشته رمز پروتکل ‪)RFC 4132( TLS‬‬
‫‪ Patent‬دارد؛ ولی استفاده ا آن مجانی است‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪107 / 128‬‬


‫سایر رمزهای قالبی‪...‬‬
‫‪https://en.wikipedia.org/wiki/Block_cipher‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪108 / 128‬‬


)CBC ‫ – سبک‬BestCrypt( ‫مقایسه سرعت الگوریتمها‬

Algorithm Encrypt (MB/s) Decrypt (MB/s)


AES (Rijndael) Hardware 1638.4 1638.4
RC6 806.5 1024
IDEA 806.5 806.5
BLOWFISH-448 641 641
TWOFISH 641 641
BLOWFISH-128 531.9 531.9
AES (Rijndael) 531.9 485.4
CAST 458.7 458.7
SERPENT 290.7 295.9
DES 267.4 266
GOST 245.1 246.3
3DES 96.9 94
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ 109 / 128
‫فهرست مطالب‬

‫• رمزهای متقارن و قالبی‬


‫• ساختار رمزهای فایستل‬
‫• استاندارد رمزگذاری داده (‪)DES‬‬
‫• الگوریتمهای رمز ‪ 2DES‬و ‪3DES‬‬
‫• استاندارد رمزگذاری پیشرفته (‪)AES‬‬
‫• رمزهای متقارن معروف‬
‫• سبکهای کاری رمزهای متقارن‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪110 / 128‬‬


‫انگیزه‬
‫‪ ‬رمزنگاری یک پیام طوالنی (بزرگتر ا اندا ه قال )؟‬
‫‪‬قال ب دی پیاما و رمزنگاری هر قال به طور مستقل‪.‬‬
‫‪‬نتیجه‪:‬‬

‫پیام‬ ‫رمز بد!‬ ‫رمز خوب‬


‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪111 / 128‬‬
‫سبکهای کاری (‪)Modes of Operation‬‬
‫‪ ‬امرو ه سبکهای کاری با توجه به ام یت قابل اثبات طراحی میشوند‪.‬‬

‫‪ ‬سبکهای کاری میتوان د ا رمزهای قالبی دلخواه استفاده ک د‪.‬‬

‫‪ ‬برخی سبکهای کاری پر اهمیت عبارت د ا ‪:‬‬

‫‪‬‬ ‫‪ECB: Electronic Codebook‬‬

‫‪‬‬ ‫‪CBC: Cipher Block Chaining‬‬

‫‪‬‬ ‫‪CTR: Counter Mode‬‬

‫‪‬‬ ‫‪CFB: Cipher Feed Back‬‬


‫‪‬‬ ‫‪OFB: Output Feed Back‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪112 / 128‬‬
‫سبک کاری ‪ECB‬‬
‫‪ ‬رمزگذاری‪:‬‬
‫‪P1‬‬ ‫‪P2‬‬ ‫‪PN‬‬

‫‪K‬‬ ‫‪E‬‬ ‫‪K‬‬ ‫‪E‬‬ ‫‪K‬‬ ‫‪E‬‬

‫‪C1‬‬ ‫‪C2‬‬ ‫‪CN‬‬

‫‪ ‬رمزگشایی‪:‬‬
‫‪C1‬‬ ‫‪C2‬‬ ‫‪CN‬‬

‫‪K‬‬ ‫‪D‬‬ ‫‪K‬‬ ‫‪D‬‬ ‫‪K‬‬ ‫‪D‬‬

‫‪P1‬‬ ‫‪P2‬‬ ‫‪PN‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪113 / 128‬‬


‫بررسی سبک کاری ‪ECB‬‬
‫‪ ‬اشکال اساسی‪ :‬هر متو آشکار به ا اء کلید ثابت همیشه به یهک‬
‫متو رمز شده نگاشته میشود‪.‬‬
‫‪‬دشمو میتواند دریابد که پیامهای یکسان ارسا شدهاند‪.‬‬

‫‪ ‬ایو سبک امو محسوب نمیشود حتی اگر ا یک رمز قهالبی قهوی‬
‫استفاده ک یم‪.‬‬

‫‪ ECB ‬مثالی ا مواردی است که علیرغهم بههرهبهرداری ا ع اصهر‬


‫مرغوبا کیفیت نهایی دلخواه نیست‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪114 / 128‬‬


‫سبک کاری ‪CBC‬‬
‫‪ ‬رمزگذاری‪:‬‬
‫‪P1‬‬ ‫‪P2‬‬ ‫‪P3‬‬ ‫‪PN‬‬

‫‪IV‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫‪CN-1‬‬ ‫‪+‬‬

‫‪K‬‬ ‫‪E‬‬ ‫‪K‬‬ ‫‪E‬‬ ‫‪K‬‬ ‫‪E‬‬ ‫…‬ ‫‪K‬‬ ‫‪E‬‬

‫‪C1‬‬ ‫‪C2‬‬ ‫‪C3‬‬ ‫‪CN‬‬

‫‪ ‬رمزگشایی‪:‬‬
‫‪C1‬‬ ‫‪C2‬‬ ‫‪C3‬‬ ‫‪CN‬‬

‫‪K‬‬ ‫‪D‬‬ ‫‪K‬‬ ‫‪D‬‬ ‫‪K‬‬ ‫‪D‬‬ ‫‪K‬‬ ‫‪D‬‬


‫…‬
‫‪IV‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫‪CN-1‬‬ ‫‪+‬‬

‫‪P1‬‬ ‫‪P2‬‬ ‫‪P3‬‬ ‫‪PN‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪115 / 128‬‬


‫سبک کاری ‪CBC‬‬
‫‪ ‬ایو سبک ا یک ‪ )IV( Initialization Vector‬بهره میگیرد‪.‬‬

‫‪ ‬مقدار ‪ IV‬در هر بار رمزگذاری به صورت تیادفی تغییر میک د‪.‬‬

‫‪ IV ‬همراه با متو رمز شده ارسا میشود‪.‬‬


‫‪‬ارسا ‪ IV‬به صهورت آشهکار ا ام یهت نمهیکاههد (درس نظریهه‬
‫رمزنگاری!)‬

‫‪ ‬هر متو آشکار به ا ای کلید ثابت هر بار بهه یهک مهتو رمهز شهده‬
‫متفاوت نگاشته میشود ( یرا مقدار ‪ IV‬تغییر مینماید)‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪116 / 128‬‬


‫بررسی سبک کاری ‪CBC‬‬
‫‪ ‬ملزومات ام یتی‪:‬‬
‫‪ IV‬باید کامالً غیر قابل پیشبی ی باشد‪.‬‬

‫‪ ‬رمزگذاری‪:‬‬
‫‪‬عملیات رمزگذاری قابل موا یسا ی نیست‪.‬‬
‫‪‬مقدار ‪ IV‬و متو آشکار باید در دسترس باش د‪.‬‬

‫‪ ‬رمزگشایی‪:‬‬
‫‪‬عملیات رمزگشایی قابل موا یسا ی است‪.‬‬
‫‪‬مقدار ‪ IV‬و متو رمزشده باید در دسترس باش د‪.‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪117 / 128‬‬
‫سبک کاری ‪ - CFB‬رمزگذاری‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪118 / 128‬‬


‫سبک کاری ‪ - CFB‬رمزگشایی‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪119 / 128‬‬


‫سبک کاری ‪ - OFB‬رمزگذاری‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪120 / 128‬‬


‫سبک کاری ‪ - OFB‬رمزگشایی‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪121 / 128‬‬


‫مقایسه ‪ CFB‬و ‪OFB‬‬
‫‪ ‬موارد استفاده ‪ CFB‬و ‪OFB‬‬
‫‪‬رمز جریانی‬
‫‪‬کاربردهای بی درنگ (مثل ‪)SSH‬‬

‫‪ ‬عی ‪ :CFB‬انتشار خطای انتقا‬

‫‪ OFB ‬ایو عی را برطرف میک د‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪122 / 128‬‬


‫سبک کاری ‪CTR‬‬
‫‪ ‬رمز گذاری‬
‫‪‬شمارندهای با طو قطعه (‪ b‬بیت) به تیادف انتخاب میشود‪.‬‬
‫‪‬برای هر قطعه به شمارنده یک واحد اضافه میشود (در پیمانه ‪)2b‬‬

‫رمزگشایی‬ ‫رمزگذاری‬
‫‪counter + i‬‬ ‫‪counter + i‬‬
‫)‪(b‬‬ ‫)‪(b‬‬

‫‪K‬‬ ‫‪E‬‬ ‫‪K‬‬ ‫‪E‬‬


‫)‪(b‬‬ ‫)‪(b‬‬

‫)‪(b‬‬ ‫)‪(b‬‬ ‫)‪(b‬‬ ‫)‪(b‬‬


‫‪Ci‬‬ ‫‪+‬‬ ‫‪Pi‬‬ ‫‪Pi‬‬ ‫‪+‬‬ ‫‪Ci‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪123 / 128‬‬


‫بررسی سبک کاری ‪CTR‬‬
‫‪ ‬ملزومات ام یتی‪:‬‬
‫‪‬مقادیر شمارندها در با ه طو عمر کلیدا باید مجزا باش د‪.‬‬

‫‪ ‬رمزگذاری‪:‬‬
‫‪‬عملیات رمزگذاری قابل موا ی سا ی است‪.‬‬
‫‪‬برای عملیات رمزگذاری نیا ی به متو آشکار نیست‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪124 / 128‬‬


‫بررسی سبک کاری ‪CTR‬‬
‫‪ ‬رمزگشایی‪:‬‬
‫‪‬عملیات رمزگشایی قابل موا ی سا ی است‪.‬‬
‫‪‬برای عملیات رمزگشایی نیا ی به متو رمز شده نیست‪.‬‬

‫‪ ‬پیادهسا ی‪:‬‬
‫‪‬به شکل کارایی میتواند پیادهسا ی سختافزاری و نرمافزاری شود‪.‬‬
‫‪‬ا پردا ش موا ی میتوان در آن استفاده کرد‪.‬‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪125 / 128‬‬


‫مقایسه کاربرد انواع سبکهای کاری‬

‫کاربرد‬ ‫سبک کاری‬


‫ارسا مقادیر کوچک مان د کلید‬ ‫‪ECB‬‬
‫)‪(Electronic Code Book‬‬
‫ارسا قطعه‪-‬گرای هر گونه داده‬ ‫‪CBC‬‬
‫)‪(Cipher Block Chaining‬‬
‫تیدیق صحت‬
‫ارسا جریانی هر گونه داده‬ ‫‪CFB‬‬
‫)‪(Cipher Feed Back‬‬
‫تیدیق صحت‬
‫ارسا جریانی بر روی کانا نویزی (مان د ارتباطات‬ ‫‪OFB‬‬
‫ماهوارهای)‬ ‫)‪(Output Feed Back‬‬

‫ارسا قطعه‪-‬گرای هر گونه داده‬ ‫‪CTR‬‬


‫)‪(Counter‬‬
‫م اس برای ارسا با سرعت باال‬

‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪126 / 128‬‬


‫سایر سبکهای کاری‬
‫‪ ‬امرو ه تعداد یادی سبک کاری برای اهداف مختلع ابداع شدهاند‪.‬‬
‫‪‬رمزنگاری دیسک سخت‬
‫‪‬رمزنگاری تیدیق صحت شده (‪)Authenticated Encryption‬‬

‫‪...‬‬

‫‪ ‬برخی سبکهای رمزنگاری معروف‪:‬‬

‫‪ CBC,‬‬ ‫‪CCM, CFB, CMC, CTR, CWC, EAX,‬‬


‫‪ECB, EME, GCM, IACBC, IAPM, LRW, OCB,‬‬
‫‪OFB, XCBC, XEX, XTS‬‬
‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪127 / 128‬‬
‫پایان‬
‫صفحه درس‪:‬‬

‫‪http://ce.sharif.edu/courses/94-95/1/ce442-1/‬‬

‫مراجعه حضوری جهت رفع اشکال‪ :‬ش بهها ‪ 15‬الی ‪16‬‬

‫آسانسور)‬ ‫(طبقه پ جم دانشکدها درب شیشهای ج‬

‫یا در زمانهای دیگر با قرار قبلی‬

‫یا به وسیله رایانامه‪dousti@ce :‬‬


‫محمد صادق دوستی‬ ‫امنیت داده و شبکه‬ ‫‪128 / 128‬‬

You might also like