DataNetSec-Dousti-04-SymmetricCiphers-v1.pdf

‫دانشگاه صنعتی شریف‬
‫دانشکده مهندسی کامپیوتر‬
‫آزمایشگاه امنیت داده و شبکه‬
‫‪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‬بیت‬
‫متو رمز‬
‫متو آشکار‬
‫الگوریتم رمز گشایی‬
‫‪5 / 128‬‬
‫کلید‬
‫(‪)K‬‬
‫الگوریتم رمز گذاری‬
‫متو آشکار‬
‫متو رمز‬
‫‪ b‬بیت‬
‫‪ b‬بیت‬
‫امنیت داده و شبکه‬
‫کلید‬
‫(‪)K‬‬
‫محمد صادق دوستی‬
‫رمزهای جریانی‬
‫کلید‬
‫(‪)K‬‬
‫الگوریتم مولد‬
‫بیت تصادفی‬
‫‪ci‬‬
‫متن رمز‬
‫متن آشکار‬
‫‪ki‬‬
‫رمز گشایی‬
‫‪pi‬‬
‫‪ci‬‬
‫رمز گذاری‬
‫امنیت داده و شبکه‬
‫متن آشکار‬
‫‪6 / 128‬‬
‫الگوریتم مولد‬
‫بیت تصادفی‬
‫‪ki‬‬
‫‪pi‬‬
‫کلید‬
‫(‪)K‬‬
‫محمد صادق دوستی‬
‫رمز قالبی آرمانی‬
‫‪ ‬تعداد نگاشتهای برگشتپذیر ا ‪ b‬بیت به ‪ b‬بیت‪:‬‬
‫‪ )2b(!‬؛ یعنی فاکتوریل «‪ 2‬به نمای ‪»b‬‬
‫‪‬هر نگاشت مت اظر یک کلید‬
‫‪‬طول کلید رمز قالبی آرمانی‪ :‬لگاریتم تعداد نگاشتها‬
‫اندازه قالب (بیت) طول تقریبی کلید (بیت)‬
‫‪64‬‬
‫‪1021‬‬
‫‪128‬‬
‫‪41040‬‬
‫‪256‬‬
‫‪31079‬‬
‫‪‬چ یو طو کلیدی قابل تحقق نیست!‬
‫‪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 ← 𝐹 𝑅𝑛 ,‬‬
‫‪11 / 128‬‬
‫‪𝑅𝑛 ← 𝐿𝑛+1‬‬
‫‪𝐿𝑛 ← 𝐹 𝐿𝑛+1 , 𝑘𝑛 ⊕ 𝑅𝑛+1‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫ساختار کامل شبکه فایستل‬
‫‪ ‬رمزگذاری‬
‫‪ :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‬‬
‫)‪(48‬‬
‫‪F‬‬
‫‪+‬‬
‫)‪(48‬‬
‫‪F‬‬
‫‪+‬‬
‫‪k2‬‬
‫)‪(48‬‬
‫‪k3‬‬
‫‪+‬‬
‫‪F‬‬
‫…‬
‫‪K‬‬
‫زمانبند کلید‬
‫‪k1‬‬
‫)‪(56‬‬
‫)‪(32‬‬
‫)‪(48‬‬
‫‪k16‬‬
‫‪+‬‬
‫‪F‬‬
‫جایگشت نهایی‬
‫)‪(64‬‬
‫‪23 / 128‬‬
‫متن رمز‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫جایگشت اولیه و نهایی‬
‫‪ ‬تأثیری در رمز ندارند‪.‬‬
‫‪ ‬صرفاً جهت تسهیل در بارگذاری قطعهها در سختافزارهای دهه ‪.1970‬‬
‫‪ ‬جایگشت نهایی معکوس جایگشت اولیه است‪.FP = IP-1 :‬‬
‫)‪IP (Initial Permutation‬‬
‫)‪FP (Final Permutation‬‬
‫‪24 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫یک دور از ‪DES‬‬
‫توسط زمانبند کلید‬
‫تولید میشود‪.‬‬
‫کلید دور‬
‫(‪ 48‬بیت)‬
‫‪ 32‬بیت‬
‫‪ 32‬بیت‬
‫‪Rn‬‬
‫‪Ln‬‬
‫‪Kn‬‬
‫‪F‬‬
‫‪Rn +1‬‬
‫‪Ln +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‬‬
‫‪0001‬‬
‫‪0010‬‬
‫‪0011‬‬
‫‪0100‬‬
‫‪01‬‬
‫‪0‬‬
‫‪15‬‬
‫‪7‬‬
‫‪4‬‬
‫‪14‬‬
‫‪2‬‬
‫‪13‬‬
‫‪1‬‬
‫‪10‬‬
‫‪6‬‬
‫‪11 12‬‬
‫‪9‬‬
‫‪5‬‬
‫‪3‬‬
‫‪8‬‬
‫‪10‬‬
‫‪4‬‬
‫‪1‬‬
‫‪8 14‬‬
‫‪13‬‬
‫‪6‬‬
‫‪2‬‬
‫‪12 15 11‬‬
‫‪9‬‬
‫‪7‬‬
‫‪3‬‬
‫‪10‬‬
‫‪5‬‬
‫‪0‬‬
‫‪11‬‬
‫‪12 15‬‬
‫‪2‬‬
‫‪4‬‬
‫‪9‬‬
‫‪1‬‬
‫‪11‬‬
‫‪3‬‬
‫‪10 14‬‬
‫‪0‬‬
‫‪6‬‬
‫‪13‬‬
‫‪29 / 128‬‬
‫‪8‬‬
‫‪0101‬‬
‫‪0111‬‬
‫‪1000‬‬
‫‪1001‬‬
‫‪1010‬‬
‫‪1011‬‬
‫‪1100‬‬
‫‪1101‬‬
‫‪1110‬‬
‫‪1111‬‬
‫‪00‬‬
‫‪14‬‬
‫‪4‬‬
‫‪13‬‬
‫‪1‬‬
‫‪2‬‬
‫‪11 15‬‬
‫‪8‬‬
‫‪3‬‬
‫‪10‬‬
‫‪6‬‬
‫‪12‬‬
‫‪5‬‬
‫‪9‬‬
‫‪0‬‬
‫‪7‬‬
‫‪0110‬‬
‫شماره‬
‫سطر↓‬
‫‪7‬‬
‫امنیت داده و شبکه‬
‫‪5‬‬
‫محمد صادق دوستی‬
‫‪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‬‬
‫‪Adi Shamir‬‬
‫‪38 / 128‬‬
‫امنیت داده و شبکه‬
‫‪Eli Biham‬‬
‫محمد صادق دوستی‬
‫مفهوم تفاضل و حمله تفاضلی‬
‫‪ ‬یک وج متو آشکار ‪ 𝑋, 𝑋′‬با تفاضل 𝑋‪.Δ‬‬
‫‪‬در ‪DES‬ا مقیود ا تفاضل ‪ XOR‬است‪.Δ𝑋 = 𝑋 ⊕ 𝑋′ :‬‬
‫‪‬در سایر رمزها مفهوم تفاضل مت اسباً تعریع میشود‪.‬‬
‫‪ ‬با دادن متون آشکار ‪ 𝑋, 𝑋′‬به الگوریتم رمهزا متهون رمهز شهده‬
‫‪ 𝑌, 𝑌′‬به دست میآید که تفاضل آن 𝑌‪ Δ‬است‪.‬‬
‫‪ ‬با توجه به مقدار 𝑌‪:Δ‬‬
‫‪‬احتما برخی یر کلیدها بیشتر ا بقیه است‪.‬‬
‫‪39 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫تابع دور ‪ DES‬و تحلیل تفاضلی‬
‫‪X‬‬
‫با توجه به دانستن ‪ Y ،X´ ،X‬و ´‪:Y‬‬
‫کلیه مقادیر ‪X‬ا ‪A‬ا ‪B‬ا ‪ C‬و ‪Y‬‬
‫برای ما مشخص است‪.‬‬
‫‪X‬‬
‫‪E‬‬
‫) ‪E (X‬‬
‫‪ki‬‬
‫‪A‬‬
‫‪B = A‬‬
‫‪S-Box‬‬
‫‪C‬‬
‫‪P‬‬
‫‪Y‬‬
‫‪Y‬‬
‫‪40 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مثال از تحلیل تفاضلی ‪1 -‬‬
‫‪=0‬‬
‫‪=L‬‬
‫‪ki‬‬
‫‪=0‬‬
‫‪F‬‬
‫‪=0‬‬
‫‪=L‬‬
‫‪=0‬‬
‫با احتما ‪1‬‬
‫‪41 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مثال از تحلیل تفاضلی ‪2 -‬‬
‫‪=X‬‬
‫‪=L‬‬
‫‪ki‬‬
‫‪=X‬‬
‫‪F‬‬
‫‪=Y‬‬
‫‪ = L Y‬‬
‫‪=X‬‬
‫‪X = 0x04000000‬‬
‫‪Y = 0x40080000‬‬
‫با احتما ‪%25‬‬
‫‪42 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مشخصه (‪)Characteristic‬‬
‫‪ ‬مشخصه‪ :‬لیسهتی ا تفاضهل ورودیا تفاضهلهای میهانی و تفاضهل‬
‫نهایی‪.‬‬
‫‪ ‬برخی مشخیهها با احتما باالتری رخ میده د‪.‬‬
‫‪ ‬مشخیهها را میتوان ترکی کرد (اسالید بعد)‪.‬‬
‫‪ ‬با استفاده ا یک مشخیه با احتما‬
‫‪‬‬
‫یر کلید دور ‪ 16‬با احتما‬
‫یاد‪:‬‬
‫یاد بدست میآید (‪ 48‬بیت)‪.‬‬
‫‪ 8‬بیت دیگر کلید را میتوان با جستجوی جامع محاسبه کرد‪.‬‬
‫‪43 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫ترکیب مشخصهها در ‪ 2‬دور از ‪DES‬‬
‫‪=X‬‬
‫‪=Y‬‬
‫‪ki‬‬
‫‪=X‬‬
‫‪=0‬‬
‫‪X = 0x04000000‬‬
‫‪Y = 0x40080000‬‬
‫‪=Y‬‬
‫‪=X‬‬
‫‪ki +1‬‬
‫‪=0‬‬
‫با احتما ‪%25‬‬
‫‪=0‬‬
‫‪44 / 128‬‬
‫‪F‬‬
‫امنیت داده و شبکه‬
‫‪F‬‬
‫‪=0‬‬
‫‪=X‬‬
‫محمد صادق دوستی‬
‫نتایج حمله تفاضلی روی ‪ 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‬‬
‫)‪E(K1,P) = X = D(K2,C‬‬
‫))‪C = E(K2, E(K1,P‬‬
‫‪ ‬با داشتو یک وج )‪(P, C‬ا‬
‫‪ P‬را با ‪ 256‬کلید ممکو برای ‪ K1‬رمز و مقادیر ‪ X‬را ذخیره کو‪.‬‬
‫‪ C‬را با ‪ 256‬کلید ممکو برای ‪ K2‬رمز و مقادیر حاصهله بها مقهادیر‬
‫ذخیره شده مقایسه کو‪.‬‬
‫‪‬در صورت تطابقا درستی وج کلید یافت شده را چک کو‪.‬‬
‫‪ ‬معاد آ مون جامع برای ‪ 257‬حالت است‪  .‬میالحه بیو مان و‬
‫حافظه (‪)Time-Memory Tradeoff‬‬
‫‪53 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫الگوریتم ‪ 3DES‬با دو کلید‬
‫‪ ‬حل مشکل ‪ 2DES‬با سه مرحله رمزگذاری با ‪DES‬‬
‫‪ ‬امکان بهرهگیری ا ‪ 3‬بار ‪ DES‬با دو کلید به صورت یر‪:‬‬
‫)))‪= E(K1, D(K2, E(K1, P‬‬
‫)))‪D(K1, E(K2, D(K1, C‬‬
‫‪54 / 128‬‬
‫امنیت داده و شبکه‬
‫‪C‬‬
‫=‪P‬‬
‫محمد صادق دوستی‬
‫الگوریتم ‪ 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‬به ع وان برنده اعالم شد‪.‬‬
‫]‪ Dutch pronunciation: [ɛi‬‬
‫‪57 / 128‬‬
‫امنیت داده و شبکه‬
‫‪ ij‬‬
‫محمد صادق دوستی‬
‫معیارهای ارزیابی مسابقه ‪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‬بیت محدود شده است‪.‬‬
‫‪60 / 128‬‬
‫طو کلید‬
‫‪256 192 128‬‬
‫طو قطعه ورودی و خروجی‬
‫‪128 128 128‬‬
‫تعداد دور‬
‫‪10‬‬
‫طو کلید هر دور‬
‫‪128 128 128‬‬
‫امنیت داده و شبکه‬
‫‪12‬‬
‫‪14‬‬
‫محمد صادق دوستی‬
‫مشخصات استاندارد ‪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‬‬
‫‪63 / 128‬‬
‫‪e0‬‬
‫‪31‬‬
‫‪88‬‬
‫‪32‬‬
‫‪37‬‬
‫‪31‬‬
‫‪5a‬‬
‫‪43‬‬
‫‪07‬‬
‫‪98‬‬
‫‪30‬‬
‫‪f6‬‬
‫‪34‬‬
‫‪a2‬‬
‫‪8d‬‬
‫‪a8‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مراحل رمزگذاری ‪AES-128‬‬
‫‪ ‬در هر دور ‪ 4‬عمل برگشتپذیر روی ماتریس حالت اِعما میشود‪.‬‬
‫‪‬جانشینی بایتها‪ :‬جانشی ی درایه های ماتریس حالت با استفاده ا‬
‫یک ‪S-Box‬‬
‫‪‬شیفت سطری‪ :‬شیفت دورانی سطرهای ماتریس حالت‬
‫‪‬ترکیب ستونها‪ :‬ترکی‬
‫خطی ستونهای ماتریس حالت با استفاده‬
‫ا ضرب ماتریسی‬
‫‪‬اضافه نمودن کلید دور‪ XOR :‬ماتریس حالت با کلید دور‬
‫‪64 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫رمزگذاری در ‪AES-128‬‬
‫‪65 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫رمزگذاری و رمزگشایی در ‪AES-128‬‬
‫‪66 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫جانشینی بایتها (‪ )S-Box‬در ‪AES‬‬
‫‪ ‬نوعی تابع غیرخطی محسوب میشود‬
‫‪ ‬توسط یک ماتریس ‪ 44‬بایت پیادهسا ی میشود‪.‬‬
‫‪5‬‬
‫‪9‬‬
‫}‪{2A‬‬
‫‪67 / 128‬‬
‫}‪{95‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫جانشینی بایتها (‪ )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)‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪j‬‬
‫‪36‬‬
‫‪1B‬‬
‫‪80‬‬
‫‪40‬‬
‫‪20‬‬
‫‪10‬‬
‫‪08‬‬
‫‪04‬‬
‫‪02‬‬
‫‪01‬‬
‫]‪RC[j‬‬
‫‪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‬‬
‫دستورالعمل‬
‫‪AESENC‬‬
‫‪AESENCLAST‬‬
‫‪AESDEC‬‬
‫‪AESDECLAST‬‬
‫‪AESKEYGENASSIST‬‬
‫‪AESIMC‬‬
‫‪PCLMULQDQ‬‬
‫توصیف‬
‫اجرای یک دور عادی ا رمزگذاری ‪AES‬‬
‫اجرای دور آخر ا رمزگذاری ‪AES‬‬
‫اجرای یک دور عادی ا رمزگشایی ‪AES‬‬
‫اجرای دور آخر ا رمزگشایی ‪AES‬‬
‫کمک در تولید کلید دور ‪AES‬‬
‫کمک در عملیات ‪Inverse Mix Columns‬‬
‫ضرب بدون رقم نقلی (عملیات در میدانهای مت اهی)‬
‫‪ ‬مجموعه دستورالعمل های مشابهی برای سایر معماریههای ‪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 :‬بیت‬
‫‪‬طول قالب‪ 64 :‬بیت‬
‫‪‬تعداد دور‪32 :‬‬
‫‪92 / 128‬‬
‫پیچیدگی بهتریو حمله به ‪:GOST‬‬
‫‪2101‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫‪FEAL‬‬
‫‪data Encipherment ALgorithm‬‬
‫‪ Fast‬‬
‫‪ ‬طراحی در ‪ 1987‬توسط پژوهشگران ‪ NTT‬ژاپو‬
‫‪‬به ع وان جایگزیو سریعی برای ‪DES‬‬
‫‪ ‬ساختار‪ :‬شبکه فایستل‬
‫‪‬طول کلید‪ 64 :‬بیت‬
‫‪‬طول قالب‪ 64 :‬بیت‬
‫‪‬تعداد دور‪4 :‬‬
‫‪93 / 128‬‬
‫‪‬بسیار ضعیع؛ به سادگی شکست‪.‬‬
‫‪‬اما سب پیشهرفت رمزنگهاری (بهه‬
‫ویژه حمله تفاضلی شد)‪.‬‬
‫‪‬نسههخههههای ‪ FEAL-N/NX‬در‬
‫سا ‪ 1990‬ارائه شهد کهه بها ههم‬
‫شکست‪.‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫‪IDEA‬‬
‫‪Data Encryption Algorithm‬‬
‫‪ International‬‬
‫‪ ‬ابداع شده توسط ‪ Lai‬و ‪ Massey‬در سا ‪1990‬‬
‫‪ ‬سرعت بسیار بیشتر نسبت به ‪( DES‬در پیاده سا ی نرم افزاری)‬
‫‪James Massey‬‬
‫)‪(1934 – 2013‬‬
‫‪94 / 128‬‬
‫امنیت داده و شبکه‬
‫‪Xuejia Lai‬‬
‫) – ‪(1954‬‬
‫محمد صادق دوستی‬
‫ویژگیهای ‪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‬رمز جریانی معروف‬
‫‪ :RC5‬رمز قالبی – ‪1994‬‬
‫‪Ronald Linn Rivest‬‬
‫) – ‪(1947‬‬
‫‪ :RC6‬رمز قالبی – ‪( 1998‬فی الیست ‪)AES‬‬
‫‪101 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫‪RC5‬‬
‫‪ ‬ساختار‪ :‬شبکه فایستل‬
‫‪‬طول کلید‪ 0 :‬تا ‪ 2040‬بیت (توصیه‪)128 :‬‬
‫‪‬طول قالب‪32 :‬ا ‪64‬ا یا ‪( 128‬توصیه‪)64 :‬‬
‫‪‬تعداد دور‪ 1 :‬تا ‪( 255‬توصیه‪)12 :‬‬
‫‪ Patent ‬شده توسط ‪RSA Security‬‬
‫‪ ‬بهتریو حمله (مطابق پارامترهای توصیه)‪:‬‬
‫‪‬حمله تفاضلی با ‪ 244‬متو آشکار م تخ‬
‫‪102 / 128‬‬
‫امنیت داده و شبکه‬
‫یک دور (دو نیمدور)‬
‫از ‪RC5‬‬
‫محمد صادق دوستی‬
‫‪RC6‬‬
‫‪ ‬سوواختار‪ :‬شههبکه فایسههتل‬
‫(نوع ‪)2‬‬
‫‪‬طول کلید‪128 :‬ا ‪192‬ا‬
‫یا ‪ 256‬بیت‬
‫‪‬طول قالب‪ 128 :‬بیت‬
‫‪‬تعداد دور‪20 :‬‬
‫‪ Patent ‬شده توسط ‪RSA Security‬‬
‫تابع دور ‪RC6‬‬
‫‪ ‬مان د ‪RC5‬ا میشود پارامترهای دلخواهی نیز داشته باشد‪.‬‬
‫‪103 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫‪CAST-128‬‬
‫‪ ‬ابداع توسط آدامز و تاوار در سا ‪1996‬‬
‫‪‬استاندارد شده توسط دولت کانادا برای ارتباطات امو‬
‫‪ ‬ساختار‪ :‬شبکه فایستل‬
‫‪‬طول کلید‪ 40 :‬تا ‪ 128‬بیت‬
‫‪‬طول قالب‪ 64 :‬بیت‬
‫‪‬تعداد دور‪ 12 :‬یا ‪16‬‬
‫‪ ‬نوع پیشرفته‪CAST-256 :‬‬
‫‪‬فایستل نوع ‪1‬‬
‫‪104 / 128‬‬
‫‪Stafford E. Tavares‬‬
‫امنیت داده و شبکه‬
‫‪Carlisle M.‬‬
‫‪Adams‬‬
‫محمد صادق دوستی‬
‫‪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
RC6
IDEA
BLOWFISH-448
TWOFISH
BLOWFISH-128
AES (Rijndael)
CAST
SERPENT
DES
GOST
3DES
‫محمد صادق دوستی‬
1638.4
806.5
806.5
641
641
531.9
531.9
458.7
290.7
267.4
245.1
96.9
‫امنیت داده و شبکه‬
1638.4
1024
806.5
641
641
531.9
485.4
458.7
295.9
266
246.3
94
109 / 128
‫فهرست مطالب‬
‫• رمزهای متقارن و قالبی‬
‫• ساختار رمزهای فایستل‬
‫• استاندارد رمزگذاری داده (‪)DES‬‬
‫• الگوریتمهای رمز ‪ 2DES‬و ‪3DES‬‬
‫• استاندارد رمزگذاری پیشرفته (‪)AES‬‬
‫• رمزهای متقارن معروف‬
‫• سبکهای کاری رمزهای متقارن‬
‫‪110 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫انگیزه‬
‫‪ ‬رمزنگاری یک پیام طوالنی (بزرگتر ا اندا ه قال )؟‬
‫‪‬قال ب دی پیاما و رمزنگاری هر قال به طور مستقل‪.‬‬
‫‪‬نتیجه‪:‬‬
‫رمز خوب‬
‫‪111 / 128‬‬
‫رمز بد!‬
‫امنیت داده و شبکه‬
‫پیام‬
‫محمد صادق دوستی‬
‫سبکهای کاری (‪)Modes of Operation‬‬
‫‪ ‬امرو ه سبکهای کاری با توجه به ام یت قابل اثبات طراحی میشوند‪.‬‬
‫‪ ‬سبکهای کاری میتوان د ا رمزهای قالبی دلخواه استفاده ک د‪.‬‬
‫‪ ‬برخی سبکهای کاری پر اهمیت عبارت د ا ‪:‬‬
‫‪112 / 128‬‬
‫‪ECB: Electronic Codebook‬‬
‫‪‬‬
‫‪CBC: Cipher Block Chaining‬‬
‫‪‬‬
‫‪CTR: Counter Mode‬‬
‫‪‬‬
‫‪CFB: Cipher Feed Back‬‬
‫‪‬‬
‫‪OFB: Output Feed Back‬‬
‫‪‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫سبک کاری ‪ECB‬‬
‫‪ ‬رمزگذاری‪:‬‬
‫‪PN‬‬
‫‪E‬‬
‫‪P2‬‬
‫‪K‬‬
‫‪CN‬‬
‫‪E‬‬
‫‪P1‬‬
‫‪K‬‬
‫‪C2‬‬
‫‪E‬‬
‫‪K‬‬
‫‪C1‬‬
‫‪ ‬رمزگشایی‪:‬‬
‫‪CN‬‬
‫‪D‬‬
‫‪PN‬‬
‫‪113 / 128‬‬
‫‪C2‬‬
‫‪K‬‬
‫‪D‬‬
‫‪P2‬‬
‫امنیت داده و شبکه‬
‫‪C1‬‬
‫‪K‬‬
‫‪D‬‬
‫‪K‬‬
‫‪P1‬‬
‫محمد صادق دوستی‬
‫بررسی سبک کاری ‪ECB‬‬
‫‪ ‬اشکال اساسی‪ :‬هر متو آشکار به ا اء کلید ثابت همیشه به یهک‬
‫متو رمز شده نگاشته میشود‪.‬‬
‫‪‬دشمو میتواند دریابد که پیامهای یکسان ارسا شدهاند‪.‬‬
‫‪ ‬ایو سبک امو محسوب نمیشود حتی اگر ا یک رمز قهالبی قهوی‬
‫استفاده ک یم‪.‬‬
‫‪ ECB ‬مثالی ا مواردی است که علیرغهم بههرهبهرداری ا ع اصهر‬
‫مرغوبا کیفیت نهایی دلخواه نیست‪.‬‬
‫‪114 / 128‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫سبک کاری ‪CBC‬‬
‫‪ ‬رمزگذاری‪:‬‬
‫‪PN‬‬
‫‪+‬‬
‫‪CN-1‬‬
‫‪E‬‬
‫‪K‬‬
‫…‬
‫‪CN‬‬
‫‪P3‬‬
‫‪P2‬‬
‫‪P1‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪IV‬‬
‫‪E‬‬
‫‪K‬‬
‫‪E‬‬
‫‪K‬‬
‫‪C3‬‬
‫‪E‬‬
‫‪K‬‬
‫‪C1‬‬
‫‪C2‬‬
‫‪ ‬رمزگشایی‪:‬‬
‫‪CN‬‬
‫‪D‬‬
‫‪K‬‬
‫‪+‬‬
‫‪CN-1‬‬
‫‪PN‬‬
‫‪115 / 128‬‬
‫‪C3‬‬
‫…‬
‫‪D‬‬
‫‪C2‬‬
‫‪D‬‬
‫‪K‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪IV‬‬
‫‪P3‬‬
‫‪P2‬‬
‫‪P1‬‬
‫‪K‬‬
‫امنیت داده و شبکه‬
‫‪D‬‬
‫‪C1‬‬
‫‪K‬‬
‫محمد صادق دوستی‬
‫سبک کاری ‪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‬‬
‫‪E‬‬
‫‪E‬‬
‫‪K‬‬
‫)‪(b‬‬
‫‪Ci‬‬
‫‪123 / 128‬‬
‫)‪(b‬‬
‫‪+‬‬
‫‪K‬‬
‫)‪(b‬‬
‫)‪(b‬‬
‫‪Pi‬‬
‫‪Pi‬‬
‫امنیت داده و شبکه‬
‫)‪(b‬‬
‫‪+‬‬
‫)‪(b‬‬
‫‪Ci‬‬
‫محمد صادق دوستی‬
‫بررسی سبک کاری ‪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‬‬
‫‪...‬‬
‫‪ ‬برخی سبکهای رمزنگاری معروف‪:‬‬
‫‪CCM, CFB, CMC, CTR, CWC, EAX,‬‬
‫‪ CBC,‬‬
‫‪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‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬