الگوریتم کلید متقارن
الگوریتم کلید متقارن()، یک کلاس از الگوریتم ها، برای رمزنگاری است که با استفاده از کلیدهای رمزنگاری مشابه برای هر دو رمزگذاری متنی و رمزگشایی متن رمز استفاده می‌شود. کلیدها ممکن است مشابه باشند یا ممکن است رابطه‌ای ساده بین دو کلید وجود داشته باشد. کلید، در عمل، نشان دهنده یک راز مشترک بین دو یا چند طرف است که می‌تواند برای حفظ اطلاعات خصوصی مورد استفاده قرار گیرد. این نیاز که هر دو طرف، دسترسی به کلیدهای مخفی داشته باشند یکی از اشکالات اصلی رمزنگاری کلید متقارن، در مقایسه با رمزنگاری کلید عمومی است.
در رمزنگاری کلید متقارن می‌توانید از رمز جریانی یا رمز قالبی استفاده کنید. در رمزگذاری رمزهای جریانی، رقمی (معمولاً بیت) از یک پیام را در یک زمان رمز می‌کنند. . به عنوان مثال رمزگذاری Vigenère. در رمزگذاری رمزهای قالبی (بلوکی)، تعدادی بیت را در قالب یک واحد رمزگذاری می‌کنند. متن اصلی را بهم می زنند تا این تعداد از اندازه بلوک باشد. از بلوک های 64 بیتی معمولاً استفاده می شد. الگوریتم تأیید شده توسط NIST در دسامبر سال ۲۰۰۱ به وسیله استاندارد رمزگذاری پیشرفته (AES) با استفاده از بلوک‌های ۱۲۸ بیتی، تأیید شد. همچنین الگوریتم‌های رمزجریانی سرعت بهتری نسبت به الگوریتم‌های رمز قالبی دارند. چون رمزهای جریانی دارای پیچیدگی درالگوریتم نیستند.
نمونه‌هایی از الگوریتم‌های متقارن محبوب و شناخته شده عبارتند از Twofish، Serpent ، AES ، Blowfish، CAST5، RC4، DES، و IDEAKuznyechik 3DES, Skipjack, Safer,
شکلهای هندسی اولیه رمزنگاری بر اساس رمزهای متقارن اغلب برای رسیدن به شکلهای هندسی اولیه رمزنگاری و نه فقط رمزگذاری استفاده می‌شوند. رمزگذاری یک پیام تضمین نمی‌کند که این پیام رمزگذاری شده در طول مسیرانتقال، تغییر نیافته‌است. ازاین رو اغلب یک کد تأیید هویت پیام به متن رمزنگاری اضافه می‌شود تا اطمینان حاصل شود که متن اصلی، کاملاً توسط گیرنده ذکر شده‌است. کد تأیید هویت پیام را می‌توان با کمک رمزهای متقارن ساخت. با این حال، رمزهای متقارن نیز می‌تواند برای مقاصد غیرانکار نیز استفاده شود.استاندارد ISO 13،888-2 را ببینید. برای ساخت توابع هش نیز از رمزهای بلوک استفاده می‌شود. تابع one-way compression را برای توصیف چندین روش از این نوع ببینید.
ساختار بسیاری از رمزنگاری‌های بلوک مدرن توسط Horst Feistel ارائه شده‌است. ساختار هورست امکان ساخت توابع معکوس از روی دیگر توابع که خودشان معکوس نیستند را می‌دهد.
رمزنگاری متقارن در طول تاریخ در معرض ابتلا به حملات known-plaintext، chosen-plaintext، رمزنگاری دیفرانسیل و رمزنگاری خطی هستند. ساختار دقیق توابع برای هر مرحله تا حد زیادی می‌تواند احتمال یک حمله موفق را کاهش دهد.
الگوریتم های کلید متقارن هم به فرستنده و هم به گیرنده پیام نیاز دارند که یک کلید مخفی یکسان داشته باشند. همه سیستمهای رمزنگاری اولیه یکی از این افراد را ملزم به دریافت یک نسخه از آن کلید مخفی از طریق کانال ایمنی فیزیکی می کردند.
تقریباً همه سیستمهای رمزنگاری مدرن هنوز از الگوریتم های کلید متقارن در داخل استفاده می کنند تا بخش عمده ای از پیام ها را رمزگذاری کنند، اما آنها با استفاده از تبادل کلید Diffie-Hellman یا برخی پروتکل های کلید عمومی دیگر ، نیاز به یک کانال امن فیزیکی را از بین می برند تا با اطمینان از کلید جدید تازه مخفی برای هر پیام (ارسال محرمانه) توافق کنند.
هنگامی که از رمزنگاری نامتقارن برای انتقال کلید استفاده می‌شود، مولدهای شبه تصادفی کلید تقریباً همیشه برای تولید کلید رمزنگاری متقارن استفاده می‌شود. با این حال، عدم تصادفی بودن مولدها یا بردار دهی اولیه خود، فاجعه‌آمیز است و در گذشته به شکست در رمزنگاری انجامید. بنابراین، یک پیاده‌سازی با استفاده از یک منبع انحطاط تدریجی و محتوم بالا، برای مقدار دهی اولیه آن ضروری است
رمزنگاری دوجانبه رمزنگاری است که همانطور که یک نفر متن اصلی را برای گرفتن متن رمزشده به سیستم وارد می کند، یک نفر می تواند متن رمزشده را برای به دست آوردن متن اصلی در همان محل در سیستم وارد کند.رمزنگاری دوجانبه هم چنین گاهی اوقات به self-reciprocal برمی گردد. عملاً همه دستگاه های رمزگذاری مکانیکی یک رمزنگاری متقابل را اجرا می کنند، یک پیش بینی ریاضی بر روی هر حرف تایپ شده است. به جای طراحی دو نوع ماشین، یکی برای رمزگذاری و دیگری برای رمزگشایی، همه دستگاهها می توانند یکسان باشند و به همان روش قابل تنظیم (کلیددار) باشند.
نمونه هایی از رمزهای دوجانبه عبارتند از:
·        Atbash
·        Beaufort cipher
·        Enigma machine
·        Marie Antoinette and Axel von Fersen communicated with a self-reciprocal cipher.
·        the Porta polyalphabetic cipher is self-reciprocal.
·        Purple cipher
·        RC4
·        ROT13
·        XOR cipher
·        Vatsyayana cipher
تقریباً همه رمزنگاری های مدرن را می توان به عنوان رمزنگاری جریان طبقه بندی کرد که بیشتر آنها از یک ترکیب کننده رمزگذاری XOR دوجانبه یا رمزگذاری بلوک استفاده می کنند که بیشتر آنها از رمزگذاری Feistel یا طرح   Lai–Massey استفاده می کنند با تغییر دوجانبه ای که در هر دور دارند.