3 / 5. 2

فهرست مطالب

فهرست مطالب

الگوریتم های رمز نگاری متقارن (Symmetric Encryption Algorithms)

الگوریتم های رمزنگاری متقارن یا تک کلیدی، یکی از روش های رمزنگاری میباشد.

 در این روش، فرستنده و گیرنده از کلید یکسانی برای رمزنگاری و رمزگشایی استفاده می کنند.

الگوریتم های رمز نگاری متقارن_الگوریتم های رمز نگاری متقارن

1- اصول رمزنگاری متقارن

  • الگوریتم رمزنگاری و کلید باید قوی باشند.
  • معارض نتواند با بررسی و مقایسه چند متن ساده و متن رمزشده متناظر آن، کلید را حدس بزند.
  • فرستنده و گیرنده باید به طور سری کلید رمز را بدست آورند و کلید رمز را به طور سری نگهداری کنند (کلید رمز مشترک که دو طرف از آن استفاده می کنند، باید از دسترس دیگران حفاظت شود).
  • اگر کسی کلید رمز را کشف کند و الگوریتم را نیز بداند، تمام ارتباطاتی که از طریق این کلید صورت می گیرد قابل خواندن است.
  • امنیت رمزگذاری متقارن به سری بودن کلید بستگی دارد نه به سری بودن الگوریتم.
  • با داشتن متن ساده و الگوریتم رمزنگاری یا رمزگشایی نمی توان پیام را رمزگشایی کرد.
  • جهت افزایش امنیت، لازم است که کلید مرتبا تغییر یابد.
  • معمولا هر کاربر با چندین شخص در ارتباط است، بنابراین برای هر ارتباط نیاز به یک کلید جداگانه دارد.
الگوریتم های رمز نگاری متقارن_اصول رمز نگاری متقارن
شکل 1- در رمزنگاری متقارن برای هر ارتباط نیاز به کلید مجزا داریم

2- مساله نحوه توزیع کلید در روش متقارن

روشی که با کمک آن کلید به طرف مقابل تحویل داده میشود را توزیع کلید گویند. تکنیک توزیع کلید اصلی ترین روش جهت حفظ قدرت هر سیستم رمزنگاری میباشد. 

2_1_ نکاتی که در توزیع کلید میان A و B باید رعایت گردند

  • کلید می تواند توسط یک طرف انتخاب شود و بطور فیزیکی به طرف دیگر تحویل داده شود. 
  • باید مراقب بود نفر سوم نتواند کلیدی انتخاب کند و آن را به A و B تحویل دهد. 
     اگر A و B قبلا از کلید دیگری استفاده می کردند، یک طرف می تواند کلید جدید را که با کلید قدیمی رمز شده است انتقال دهد.
  در سیستم های بزرگتر که توزیع کلید بصورت فیزیکی ممکن نیست، امکان دارد A و B برای برقراری ارتباط از یک مرکز تولید کلید(KDC[1]) کمک بگیرند.
 
الگوریتم رمزنگاری متقارن _ مساله نحوه توزیع کلید در روش متقارن
شکل 2- عملکرد KDC در رمزنگاری متقارن

3- انواع الگوریتم های رمزنگاری متقارن مدرن

3_1_رمز دنباله ای یا Stream cipher

عناصر ورودی را به طور پیوسته پردازش می کند و هر بار یک عنصر خروجی تولید می کند.

3_2_ رمز بلوکی یا قطعه ای یا Block Cipher

هر بار یک بلوک (قطعه) از عناصر را پردازش می کند و برای هر بلوک ورودی، یک بلوک خروجی تولید می کند. سایز متعارف قطعات 64 ،128 یا 256 بیت میباشد.

الگوریتم های رمز نگاری متقارن _ رمز بلوکی یا قطعه ای
شکل 3- رمزنگاری متقارن بلوکی

3_2_1_ اصول رمزنگاری قطعه ای

  • نگاشت قطعات متن واضح به قطعات متن رمزشده باید برگشت پذیر (یک به یک)باشد.
  • الگوریتم، قطعات ورودی را در چند مرحله ساده و متوالی پردازش می کندکه به این مراحل دور میگوییم.
  • هر دور عموماً مبتنی بر ترکیب اعمال ساده ای همچون جایگزینی و جایگشت استوار است.

4- ملزومات امنیتی در الگوریتم های رمزنگاری متقارن

  • کلید باید مخفی نگه داشته شود.
  • رسیده به متن اصلی، با داشتن متن رمز شده از نظر محاسباتی غیرممکن باشد.
  • اطلاع از الگوریتم رمزنگاری و در اختیار داشتن نمونه هایی از متن رمز شده، برای تعیین کلید کافی نباشد.

5- استاندارد های رمزنگاری متقارن متقارن

5_1_استاندارد رمزگذاری داده DES[1]

  • در سال 1974 توسط IBM ارائه شد و پس از انجام تغییراتی توسط NSA[1] ،در سال 1976 ،NIST آن را پذیرفت.
  • اساس الگوریتم، ترکیبی از عملیات جایگزینی و جایگشت میباشد.
  • در این الگوریتم طول کلید 56 بیت، و طول قطعه های ورودی و خروجی، 64 بیت و تعداد دورها 16 است.
  • الگوریتم های رمزنگاری و رمزگشایی عمومی هستند، ولی مبانی ریاضی و اصول طراحی آنها فاش نشد.

5_2_استاندارد رمزگذاری داده سه گانه (TDES[1])

  • در سال 1985 برای امنیت بیشتر در کاربردهای مالی مطرح شد.
  • TDESاز سه بار اجرای الگوریتم DES (با سه کلید جداگانه) استفاده می کند که امنیتی به مراتب بالاتر از DES  معمولی دارد.

5_3_ استاندارد رمزگذاری پیشرفته [1]AES

  • توسط NIST در سال 1997 مطرح و در سال ۲000 توسط رایندال (Rijndael) به منظور جایگزینی برای DES  ارائه گردید.
  • از کلیدها و بلوک های 1۲8 ،19۲ و ۲56 بیتی استفاده می کند.
  • بر حسب اندازه بلوک متن ساده و اندازه کلید، شامل 10 الی 14 دور میباشد.

6- رمزنگاری متقارن-بلوکی فیستل (Fistel)

6_1_ خصوصیات و ویژگی ها

  • در سال 1973 توسط هورست فیستل در شرکت IBM ارائه شد.
  • این روش، در چندین دور (معمولا بین 10تا 3۲ دور)، جانشینی و جابجایی هایی را انجام می دهد.
  • رمزهای قطعه ای اغلب مبتنی بر مبنای ساختار رمز فیستل عمل می کنند.
  • ماهیت عملیات تمام دورها یکسان و در هر دور فقط کلید دور تغییر می کند.
  • ورودی به دو نیمه چپ و راست تقسیم میشود.
  • پس از هر دور جای دو نیمه عوض میشود.
  • کلید هر دور باید متفاوت با کلید دور قبلی باشد.
  • کلیدهای دور از روی شاه کلید توسط الگوریتم تولید میشود.
  • الگوریتم تولید کلید مستقل از الگوریتم رمزنگاری است.
  • الگوریتم تولید کلید باید یک الگوریتم یکطرفه باشد.
  • طول کلید بایدآنقدر زیاد باشدکه نتوان با سعی و خطا، فضای کلید را جستجو نمود.
  • بسیاری از الگوریتم های نوین رمز متقارن از معماری فیستل تبعیت می کنند.

6_2_ عملکرد رمزنگاری متقارن-بلوکی فیستل

6_2_1_عملیات رمزنگاری

با دریافت متن ساده به طول 2w بیت بعنوان ورودی آغاز میگردد.  

بلوک متن ساده به دو بخش چپ (L)و راست (R) تقسیم شده مراحل n دور تکرار میشود. 

در دور iام از کلید (ki)  استفاده می کند. در هر مرحله یک عملیات جابجایی F روی نیمه سمت راست انجام میشود.

سپس با نیمه سمت چپ XOR میشود. پس از آن نیمه سمت راست و چپ با هم تعویض شده و متن رمز شده بعنوان خروجی الگوریتم حاصل میگردد. 

** هرچه تعداد دورها(معمولا 16 دور) یا اندازه کلید(تعداد بیت ها) بیشتر باشد، امنیت بالاتر است.

الگوریتم های رمز نگاری متقارن _ عملیات رمزنگاری
شکل 4- عملیات رمزنگاری در فیستل

6_2_2_ عملیات رمزگشایی

مهمترین ویژگی این الگوریتم آن است که عملیاتی رمزگشایی همانند عملیات رمزنگاری میباشد و لازم نیست که تابع F معکوس پذیر باشد (معمولا تحلیل توابع معکوس پذیر ساده تر است). 

در عملیات رمزگشایی ترتیب استفاده از زیر کلیدها معکوس میشود. 

در رمزگشایی، در هر دور کلیدهای ki بصورت معکوس استفاده میشوند. 

یعنی در دور اول کلیدKn ، در دور دوم کلید Kn-1 و به همین ترتیب تا آخرین دور که از K1 استفاده میشود.

الگوریتم های رمز نگاری متقارن _ عملیات رمزگشایی
شکل 5- عملیات رمزگشایی در فیستل
مطالب مرتبط و تکمیلی: