رمز و رمزنگاری
الگوریتم‌های رمزنگاری > رمزنگاری کلید خصوصی(Private Key)

متداولترین نوع رمزنگاری مبتنی بر کلید، رمزنگاری "کلید خصوصی" است. به این نوع رمزنگاری، متقارن، سنتی، رمز مشترک، کلید رمز نیز گفته می‌شود. در این نوع رمزنگاری، فرستنده و گیرنده از کلید استفاده شده به منظور رمزنگاری اطلاعات آگاهی دارند. رمزنگاری کلیدخصوصی، گزینه‌ای مناسب به منظور مبادله اطلاعات بر روی اینترنت یا ذخیره‌سازی اطلاعات حساس در یک بانک اطلاعاتی یا یک فایل می‌باشد. از روش فوق، به منظورایمن‌سازی ارسال اطلاعات در شبکه‌های عمومی استفاده می‌گردد (از گذشته تا کنون). ایده اولیه و اساسی در چنین سیستم هائی، "اشتراک یک رمز" بوده و دو گروه شرکت‌کننده در مبادله اطلاعات، بر روی یک "کلید رمزمشترک "، با یکدیگر توافق می‌نمایند. بدین ترتیب امکان رمزنگاری و رمزگشائی پیام‌ها برای هر یک از آنان با توجه به آگاهی از "کلید رمز "، فراهم می‌گردد.
رمزنگاری متقارن (کلید خصوصی) چندین نقطه ضعف دارد. مبادله کلیدهای رمز در شبکه‌های بزرگ امری دشوار و مشکل است. علاوه بر این، اشتراک کلیدهای رمز، مستلزم این واقعیت است که فرستندگان و گیرندگان می‌بایست معتبر بوده و قبل از برقراری ارتباط، آشنائی لازم را نسبت به یکدیگر داشته باشند (با تمام افرادی‌که قصد ارتباط ایمن با آنان وجود دارد). همچنین، این نوع سیستم‌های رمزنگاری، نیازمند استفاده از یک کانال ایمن به منظور توزیع کلیدهای «رمز» می‌باشند.
الگوریتم متقارن از یک کلید برای رمزنگاری و رمزگشایی استفاده می‌کند. بیشترین شکل استفاده از رمزنگاری که در کارت‌های هوشمند و البته در بیشتر سیستم‌های امنیت اطلاعات وجود دارد Data Encryption Algorithm یا DEA است که بیشتر به عنوان DES شناخته می‌شود. DES محصول دولت ایالات متحده‌است که امروزه به‌طور وسیعی به عنوان یک استاندارد بین‌المللی شناخته می‌شود. بلوک‌های ۶۴بیتی دیتا توسط یک کلید، که معمولاً ۵۶ بیت طول دارد، رمزنگاری و رمزگشایی می‌شوند. DES از نظر محاسباتی ساده‌است و به راحتی می‌تواند توسط پردازنده‌های کند (بخصوص آن‌هایی که در کارت‌های هوشمند وجود دارند) به‌کار گرفته شوند.
این روش بستگی به مخفی‌بودن کلید دارد؛ بنابراین استفاده از این روش در دو وضعیت زیر مناسب است:
۱- هنگامی که کلیدها می‌توانند با یک روش قابل اعتماد و امن توزیع و ذخیره شوند.
۲- زمانی که کلید بین دو سیستم مبادله می‌شود، قبلاً هویت همدیگر را تأیید کرده باشند.
عمر کلیدها بیشتر از مدت تراکنش آن‌ها طول نمی‌کشد. رمزنگاری DES عموماً برای حفاظت دیتا از شنود در طول انتقال استفاده می‌شود.
کلیدهای DES ۴۰بیتی امروزه در عرض چندین ساعت توسط کامپیوترهای معمولی شکسته می‌شوند و بنابراین نباید برای محافظت از اطلاعات مهم و جهت اعتبار طولانی مدت از آن‌ها استفاده شود. کلید ۵۶بیتی عموماً توسط سخت‌افزار یا شبکه‌های بخصوصی شکسته می‌شوند. رمزنگاری DESسه‌تایی عبارتست از کد کردن دیتای اصلی با استفاده از الگوریتم DES که در سه مرتبه انجام می‌گیرد (دو مرتبه با استفاده از یک کلید به سمت جلو (رمزنگاری) و یک مرتبه به سمت عقب (رمزگشایی) با کلید دیگر).
در زمینه رمزنگاری متقارن الگوریتم‌های استاندارد مختلفی وجود دارد. الگوریتمهایی مانند Blowfish و IDEA در موارد مختلف مورد استفاده قرار گرفته‌اند اما هیچ‌کدام پیاده‌سازی سخت‌افزاری نشدند؛ بنابراین به عنوان رقیبی برای DES جهت استفاده در کاربردهای میکروکنترلی مطرح نبوده‌اند. استاندارد رمزنگاری پیشرفته دولت ایالات متحده آمریکا (AES) الگوریتم Rijndael را برای جایگزینی DES به عنوان الگوریتم رمزنگاری اولیه انتخاب کرده‌است. همچنین الگوریتم Twofish مشخصا برای پیاده‌سازی در پردازنده‌های توان‌پایین مثلاً در کارت‌های هوشمند طراحی شد.
در ۱۹۹۸ وزارت دفاع آمریکا تصمیم گرفت که الگوریتم‌ها Skipjack و مبادله کلید را که در کارت‌های Fortezza استفاده شده بود، از محرمانگی خارج سازد. یکی از دلایل این امر تشویق برای پیاده‌سازی بیشتر کارت‌های هوشمند برپایه این الگوریتم‌ها بود.
برای رمزنگاری جریانی (streaming encryption) (که شامل رمزنگاری دیتا در حین ارسال می‌باشد، یعنی به جای اینکه دیتای کد شده و در یک فایل مجزا قرار گیرد، در هنگام ارسال رمزنگاری صورت می‌گیرد) الگوریتم DES معمولاً از کلیدهای ۶۴ بیتی برای رمزنگاری و رمزگشایی استفاده می‌کند. این الگوریتم، متن اولیه را به بلوک‌های ۶۴ بیتی می‌شکند و آن‌ها را یکی‌یکی رمز می‌کند.
الگوریتم پیشرفته‌تر ۳DES است که در آن الگوریتم DES سه بار اعمال می‌شود. نسخه دیگری از این الگوریتم (پایدارتر از قبلی‌ها) از کلیدهای ۵۶بیتی و کلیدهای ۱۶۸بیتی استفاده می‌کند و سه بار عملیات رمزنگاری را انجام می‌دهد.