رمزنگاری

رمزنگاری دانشی است که به بررسی و شناخت اصول و روش‌های انتقال یا ذخیره اطلاعات به صورت امن (حتی اگر مسیر انتقال اطلاعات و کانال‌های ارتباطی یا محل ذخیره اطلاعات ناامن باشند) می‌پردازد.
رمزنگاری استفاده از تکنیک‌های ریاضی، برای برقراری امنیت اطلاعات است. دراصل رمزنگاری دانش تغییر دادن متن پیام یا اطلاعات به کمک کلید رمز و با استفاده از یک الگوریتم رمز است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد و شخصی که از یکی یا هر دوی آن‌ها اطلاع ندارد، نتواند به اطلاعات دسترسی پیدا کند.
دانش رمزنگاری بر پایه مقدمات بسیاری از قبیل تئوری اطلاعات، نظریه اعداد و آمار بنا شده‌است و امروزه به‌طور خاص در علم مخابرات مورد بررسی و استفاده قرار می‌گیرد.
معادل رمزنگاری در زبان انگلیسی کلمه Cryptography است، که برگرفته از لغات یونانی kryptos به مفهوم «محرمانه» و graphien به معنای «نوشتن» است.
رمزنگاری، پنهان‌نگاری، کدگذاری
در رمزنگاری، وجود اطلاعات یا ارسال شدن پیام به هیچ وجه مخفی نمی‌باشد، بلکه ذخیره اطلاعات یا ارسال پیام مشخص است، اما تنها افراد مورد نظر می‌توانند اطلاعات اصلی را بازیابی کنند. بالعکس در پنهان‌نگاری، اصل وجود اطلاعات یا ارسال پیام محرمانه، مخفی نگاه داشته می‌شود و غیر از طرف ارسال‌کننده و طرف دریافت‌کننده کسی از ارسال پیام آگاه نمی‌شود.
در رمزنگاری محتویات یک متن به صورت حرف به حرف و در بعضی موارد بیت به بیت تغییر داده می‌شود و هدف تغییر محتوای متن است نه تغییر ساختار زبان‌شناختی آن. در مقابل کدگذاری تبدیلی است که کلمه‌ای را با یک کلمه یا نماد دیگر جایگزین می‌کند و ساختار زبان‌شناختی متن را تغییر می‌دهد.
ریشه واژه Cryptography برگرفته از یونانی به معنای «محرمانه نوشتن متون» است. رمزنگاری پیشینه طولانی و درخشان دارد که به هزاران سال قبل برمی گردد. متخصصین رمزنگاری بین رمز و کد تمایز قائل می‌شوند. رمز عبارتست از تبدیل کاراکتر به کاراکتر یا بیت به بیت بدون آن که به محتویات زبان شناختی آن پیام توجه شود. در طرف مقابل، کد تبدیلی است که کلمه‌ای را با یک کلمه یا علامت دیگر جایگزین می‌کند. امروزه از کدها استفاده چندانی نمی‌شود اگر چه استفاده از آن پیشینه طولانی و پرسابقه‌ای دارد. موفق‌ترین کدهایی که تاکنون نوشته شده ابداع شده‌اند توسط ارتش ایالات متحده و در خلال جنگ جهانی دوم در اقیانوس آرام بکار گرفته شد.
اصول ششگانه کرشهف
آگوست کرشهف شهرت خود را از پژوهشهای زبانشناسی و کتابهایی که در این خصوص و زبان ولاپوک نوشته بود بدست آورد. او در سال ۱۸۸۳ دو مقاله با عنوان «رمز نگاری نظامی» منتشر کرد. در این دو مقاله شش اصل اساسی وجود داشت که اصل دوم آن به عنوان یکی از قوانین رمز نگاری هنوز هم مورد استفاده دانشمندان در رمز نگاری پیشرفته‌است:
سیستم رمزنگاری اگر نه به لحاظ تئوری که در عمل غیرقابل شکست باشد.
سیستم رمز نگاری باید هیچ نکته پنهان و محرمانه‌ای نداشته باشد. بلکه تنها چیزی که سری است کلید رمز است.
کلید رمز باید به گونه‌ای قابل انتخاب باشد که اولا بتوان براحتی آن را عوض کرد و ثانیا بتوان آن را به خاطر سپرد و نیازی به یاداشت کردن کلید رمز نباشد.
متون رمز نگاری باید از طریق خطوط تلگراف قابل مخابره باشند.
دستگاه رمز نگاری یا اسناد رمز شده باید توسط یکنفر قابل حمل و نقل باشد.
سیستم رمزنگاری باید به سهولت قابل راه‌اندازی باشد.
در توضیح قانون دوم کرشهف باید عنوان کرد که به چند دلیل عمده کلید رمز باید تنها اطلاعات محرمانه در یک سیستم رمزنگاری باشد:
۱- محرمانه نگه داشتن یک رشته بیت ۵۱۲ تایی (به‌طور معمول) بسیار ساده‌تر و عملی‌تر از محرمانه نگه داشتن یک الگوریتم یا روش پیاده‌سازی است.
۲- اگر کلید رمز افشا شود تنها با اتخاذ یک کلید جدید می‌توان مجددا به یک سیستم رمزنگاری جدید و امن دست پیدا کرد در صورتی‌که اگر امنیت سیستم رمزنگاری وابسته به الگوریتم و روش پیاده‌سازی باشد با افشای این اطلاعات بازتولید یک سیستم رمزنگاری جدید و امن بسیار دشوار خواهد بود.
۳- وقتی که کلید رمز تنها اطلاعات محرمانه یک سیستم رمزنگاری باشد می‌توان از یک سیستم مشترک (با کلیدهای متفاوت) برای ارتباط با گیرنده/فرستنده‌های مختلف استفاده کرد در صورتی که اگر غیر از این می‌بود برای ارتباط با هر فرستنده/گیرنده به یک الگوریتم و روش پیاده‌سازی جدید نیاز می‌بود.
۴- وقتی که الگوریتم و روش پیاده‌سازی برای همگان قابل دسترسی باشد مشکلات و حفره‌های امنیتی الگوریتم پیش از آنکه توسط یک حمله گر مورد سوء استفاده قرار بگیرد توسط محققان امنیتی مورد بررسی قرار گرفته و رفع می‌شود و بنابراین سیستم‌های رمزنگاری‌ای که بر اساس الگوریتم‌های روشن و قابل دسترسی عمل می‌کنند معمولا قابل اعتمادتر هستند.
رمزنگاری پیشرفته
با پدید آمدن رایانه‌ها و افزایش قدرت محاسباتی آنها، دانش رمزنگاری وارد حوزه علوم رایانه گردید و این پدیده، موجب بروز سه تغییر مهم در مسائل رمزنگاری شد:
وجود قدرت محاسباتی بالا این امکان را پدید آورد که روش‌های پیچیده‌تر و موثرتری برای رمزنگاری به وجود آید.
روش‌های رمزنگاری که تا قبل از آن اصولا برای رمز کردن پیام به کار می‌رفتند، کاربردهای جدید و متعددی پیدا کردند.
تا قبل از آن، رمزنگاری عمدتا روی اطلاعات متنی و با استفاده از حروف الفبا انجام می‌گرفت؛ اما ورود رایانه باعث شد که رمزنگاری روی انواع اطلاعات و بر مبنای بیت انجام شود.
تعاریف و اصطلاحات
عناصر مهمی که در رمزنگاری مورد استفاده قرار می‌گیرند به شرح زیر می‌باشد:
متن آشکار
پیام و اطلاعات را در حالت اصلی و قبل از تبدیل شدن به حالت رمز، متن آشکار یا اختصارا پیام می‌نامند. در این حالت اطلاعات قابل فهم توسط انسان است.
متن رمز
به پیام و اطلاعات بعد از تبدیل شدن به حالت رمز، گفته می‌شود. اطلاعات رمز شده توسط انسان قابل فهم نیست.
رمزگذاری (رمز کردن)
عملیاتی است که با استفاده از کلید رمز، پیام را به رمز تبدیل می‌کند.
رمزگشایی (بازکردن رمز)
عملیاتی است که با استفاده از کلید رمز، پیام رمز شده را به پیام اصلی بازمی‌گرداند. از نظر ریاضی، این الگوریتم عکس الگوریتم رمز کردن است.
کلید رمز
اطلاعاتی معمولا عددی است که به عنوان پارامتر ورودی به الگوریتم رمز داده می‌شود و عملیات رمزگذاری و رمزگشایی با استفاده از آن انجام می‌گیرد. انواع مختلفی از کلیدهای رمز در رمزنگاری تعریف و استفاده می‌شود.
رمزنگاری دانش گسترده‌ای است که کاربردهای متنوعی دارد. در این حوزه وسیع، تعاریف زیر از اهمیت ویژه‌ای برخوردار هستند :
سرویس رمزنگاری
به‌طور کلی، سرویس رمزنگاری، به قابلیت و امکانی اطلاق می‌شود که بر اساس فنون رمزنگاری حاصل می‌گردد. قبل از ورود رایانه‌ها به حوزه رمزنگاری، تقریبا کاربرد رمزنگاری محدود به رمز کردن پیام و پنهان کردن مفاد آن می‌شده‌است. اما در رمزنگاری پیشرفته سرویس‌های مختلفی از جمله موارد زیر ارائه گردیده‌است:
حفظ محرمانگی یا امنیت محتوا: ارسال یا ذخیره اطلاعات به نحوی که تنها افراد مجاز بتوانند از محتوای آن مطلع شوند، که همان سرویس اصلی و اولیه پنهان کردن مفاد پیام است.
حفظ صحت داده‌ها یا سلامت محتوا
به معنای ایجاد اطمینان از صحت اطلاعات و عدم تغییر محتوای اولیه آن در حین ارسال است. تغییر محتوای اولیه اطلاعات ممکن است به صورت اتفاقی (در اثر مشکلات مسیر ارسال) یا به صورت عمدی باشد.
احراز هویت یا اصالت سنجی محتوا
به معنای تشخیص و ایجاد اطمینان از هویت ارسال‌کننده اطلاعات و عدم امکان جعل هویت افراد می‌باشد.
عدم انکار
به این معنی است که ارسال‌کننده اطلاعات نتواند در آینده ارسال آن را انکار یا مفاد آن را تکذیب نماید.
چهار مورد بالا، سرویس‌های اصلی رمزنگاری تلقی می‌شوند و دیگر اهداف و سرویس‌های رمزنگاری، با ترکیب چهار مورد بالا قابل حصول می‌باشند.
این سرویس‌ها مفاهیم جامعی هستند و می‌توانند برای کاربردهای مختلف پیاده‌سازی و استفاده شوند. به عنوان مثال سرویس اصالت محتوا هم در معاملات تجاری اهمیت دارد و هم در مسائل نظامی و سیاسی مورد استفاده قرار می‌گیرد. برای ارائه کردن هر یک از سرویس‌های رمزنگاری، بسته به نوع کاربرد، از پروتکل‌های مختلف رمزنگاری استفاده می‌شود.
پروتکل رمزنگاری
به‌طور کلی، یک پروتکل رمزنگاری، مجموعه‌ای از قواعد و روابط ریاضی است که چگونگی ترکیب کردن الگوریتم‌های رمزنگاری و استفاده از آن‌ها به منظور ارائه یک سرویس رمزنگاری خاص در یک کاربرد خاص را فراهم می‌سازد.
معمولا یک پروتکل رمزنگاری مشخص می‌کند که
اطلاعات موجود در چه قالبی باید قرار گیرند
چه روشی برای تبدیل اطلاعات به عناصر ریاضی باید اجرا شود
کدامیک از الگوریتم‌های رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند
روابط ریاضی چگونه به اطلاعات عددی اعمال شوند
چه اطلاعاتی باید بین طرف ارسال‌کننده و دریافت‌کننده رد و بدل شود
چه مکانیسم ارتباطی برای انتقال اطلاعات مورد نیاز است
به عنوان مثال می‌توان به پروتکل تبادل کلید دیفی-هلمن برای ایجاد و تبادل کلید رمز مشترک بین دو طرف اشاره نمود.
الگوریتم رمزنگاری
الگوریتم رمزنگاری، به هر الگوریتم یا تابع ریاضی گفته می‌شود که به علت دارا بودن خواص مورد نیاز در رمزنگاری، در پروتکل‌های رمزنگاری مورد استفاده قرار گیرد. اصطلاح الگوریتم رمزنگاری یک مفهوم جامع است و لازم نیست هر الگوریتم از این دسته، به‌طور مستقیم برای رمزگذاری اطلاعات مورد استفاده قرار گیرد، بلکه صرفا وجود کاربرد مربوط به رمزنگاری مد نظر است.
در گذشته سازمان‌ها و شرکت‌هایی که نیاز به رمزگذاری یا سرویس‌های دیگر رمزنگاری داشتند، الگوریتم رمزنگاری منحصربه‌فردی را طراحی می‌نمودند. به مرور زمان مشخص گردید که گاهی ضعف‌های امنیتی بزرگی در این الگوریتم‌ها وجود دارد که موجب سهولت شکسته شدن رمز می‌شود.
به همین دلیل امروزه رمزنگاری مبتنی بر پنهان نگاه داشتن الگوریتم رمزنگاری منسوخ شده‌است و در روش‌های جدید رمزنگاری، فرض بر این است که اطلاعات کامل الگوریتم رمزنگاری منتشر شده‌است و آنچه پنهان است فقط کلید رمز است.
بنا بر این تمام امنیت حاصل شده از الگوریتم‌ها و پروتکل‌های رمزنگاری استاندارد، متکی به امنیت و پنهان ماندن کلید رمز است و جزئیات کامل این الگوریتم‌ها و پروتکل‌ها برای عموم منتشر می‌گردد.
بر مبنای تعریف فوق، توابع و الگوریتم‌های مورد استفاده در رمزنگاری به دسته‌های کلی زیر تقسیم می‌شوند:
توابع بدون کلید
توابع درهم‌ساز
تبدیل‌های یک‌طرفه
توابع مبتنی بر کلید
الگوریتم‌های کلید متقارن
الگوریتم‌های رمز قالبی
الگوریتم‌های رمز دنباله‌ای
توابع تصدیق پیام
الگوریتم‌های کلید نامتقارن
الگوریتم‌های مبتنی بر تجزیه اعداد صحیح
الگوریتم‌های مبتنی بر لگاریتم گسسته
الگوریتم‌های مبتنی بر منحنی‌های بیضوی
الگوریتم‌های امضای رقومی
الگوریتمهای رمزنگاری بسیار متعدد هستند، اما تنها تعداد اندکی از آن‌ها به صورت استاندارد درآمده‌اند.
رمزنگاری کلید متقارن
رمزنگاری کلید متقارن یا تک کلیدی، به آن دسته از الگوریتم‌ها، پروتکل‌ها و سیستم‌های رمزنگاری گفته می‌شود که در آن هر دو طرف رد و بدل اطلاعات از یک کلید رمز یکسان برای عملیات رمزگذاری و رمزگشایی استفاده می‌کنند. در این قبیل سیستم‌ها، یا کلیدهای رمزگذاری و رمزگشایی یکسان هستند یا با رابطه‌ای بسیار ساده از یکدیگر قابل استخراج می‌باشند و رمزگذاری و رمزگشایی اطلاعات نیز دو فرایند معکوس یکدیگر می‌باشند.
واضح است که در این نوع از رمزنگاری، باید یک کلید رمز مشترک بین دو طرف تعریف گردد. چون کلید رمز باید کاملا محرمانه باقی بماند، برای ایجاد و رد و بدل کلید رمز مشترک باید از کانال امن استفاده نمود یا از روش‌های رمزنگاری نامتقارن استفاده کرد. نیاز به وجود یک کلید رمز به ازای هر دو نفر درگیر در رمزنگاری متقارن، موجب بروز مشکلاتی در مدیریت کلیدهای رمز می‌گردد.
رمزنگاری کلید نامتقارن
رمزنگاری کلید نامتقارن، در ابتدا با هدف حل مشکل انتقال کلید در روش متقارن و در قالب پروتکل تبادل کلید دیفی-هلمن پیشنهاد شد. در این نوع از رمزنگاری، به جای یک کلید مشترک، از یک زوج کلید به نام‌های کلید عمومی و کلید خصوصی استفاده می‌شود. کلید خصوصی تنها در اختیار دارنده آن قرار دارد و امنیت رمزنگاری به محرمانه بودن کلید خصوصی بستگی دارد. کلید عمومی در اختیار کلیه کسانی که با دارنده آن در ارتباط هستند قرار داده می‌شود.
به مرور زمان، به غیر از حل مشکل انتقال کلید در روش متقارن، کاربردهای متعددی برای این نوع از رمزنگاری مطرح گردیده‌است. در سیستم‌های رمزنگاری نامتقارن، بسته به کاربرد و پروتکل مورد نظر، گاهی از کلید عمومی برای رمزگذاری و از کلید خصوصی برای رمزگشایی استفاده می‌شود و گاهی نیز، بر عکس، کلید خصوصی برای رمزگذاری و کلید عمومی برای رمزگشایی به کار می‌رود.
دو کلید عمومی و خصوصی با یکدیگر متفاوت هستند و با استفاده از روابط خاص ریاضی محاسبه می‌گردند. رابطه ریاضی بین این دو کلید به گونه‌ای است که کشف کلید خصوصی با در اختیار داشتن کلید عمومی، عملا ناممکن است.
مقایسه رمزنگاری کلید متقارن و کلید نامتقارن
اصولا رمزنگاری کلید متقارن و کلید نامتقارن دارای دو ماهیت متفاوت هستند و کاربردهای متفاوتی نیز دارند. بنا بر این مقایسه این دو نوع رمزنگاری بدون توجه به کاربرد و سیستم مورد نظر کار دقیقی نخواهد بود.
اما اگر معیار مقایسه، به‌طور خاص، حجم و زمان محاسبات مورد نیاز باشد، باید گفت که با در نظر گرفتن مقیاس امنیتی معادل، الگوریتم‌های رمزنگاری متقارن خیلی سریع‌تر از الگوریتم‌های رمزنگاری نامتقارن می‌باشند.
تجزیه و تحلیل رمز
تجزیه و تحلیل رمز یا شکستن رمز، به کلیه اقدامات مبتنی بر اصول ریاضی و علمی اطلاق می‌گردد که هدف آن از بین بردن امنیت رمزنگاری و در نهایت باز کردن رمز و دستیابی به اطلاعات اصلی باشد.
در تجزیه و تحلیل رمز، سعی می‌شود تا با بررسی جزئیات مربوط به الگوریتم رمز یا پروتکل رمزنگاری مورد استفاده و به کار گرفتن هرگونه اطلاعات جانبی موجود، ضعف‌های امنیتی احتمالی موجود در سیستم رمزنگاری یافته شود و از این طریق به نحوی کلید رمز به دست آمده یا محتوای اطلاعات رمز شده استخراج گردد.
تجزیه و تحلیل رمز، گاهی به منظور شکستن امنیت یک سیستم رمزنگاری و به عنوان خرابکاری و یک فعالیت ضد امنیتی انجام می‌شود و گاهی هم به منظور ارزیابی یک پروتکل یا الگوریتم رمزنگاری و برای کشف ضعف‌ها و آسیب‌پذیری‌های احتمالی آن صورت می‌پذیرد.
به همین دلیل، تجزیه و تحلیل رمز، ذاتا یک فعالیت خصومت‌آمیز به حساب نمی‌آید؛ اما معمولا قسمت ارزیابی و کشف آسیب‌پذیری را به عنوان جزئی از عملیات لازم و ضروری در هنگام طراحی الگوریتم‌ها و پروتکل‌های جدید به حساب می‌آورند و در نتیجه تجزیه و تحلیل رمز بیشتر فعالیت‌های خرابکارانه و ضد امنیتی را به ذهن متبادر می‌سازد. با توجه به همین مطلب از اصطلاح حملات تحلیل رمز برای اشاره به چنین فعالیت‌هایی استفاده می‌شود.
تحلیل رمز، در اصل اشاره به بررسی ریاضی الگوریتم (یا پروتکل) و کشف ضعف‌های احتمالی آن دارد؛ اما در خیلی از موارد فعالیت خرابکارانه، به جای اصول و مبنای ریاضی، به بررسی یک پیاده‌سازی خاص آن الگوریتم (یا پروتکل) در یک کاربرد خاص می‌پردازد و با استفاده از امکانات مختلف سعی در شکستن رمز و یافتن کلید رمز می‌نماید. به این دسته از اقدامات خرابکارانه، حملات جانبی گفته می‌شود.
رمزهای جانشینی
در رمز نگاری جانشینی هر حرف یا گروهی از حروف بایک حرف یا گروهی دیگراز حروف جابجا می‌شوند تا شکل پیام بهم بریزد. یکی از قدیمی‌ترین رمزهای شناخته شده روش رمز نگاری سزار است که ابداع آن به ژولیوس سزار نسبت داده می‌شود. در این روش حرف a به d تبدیل می‌شود bبه c, e به fوبه همین ترتیب تاz که با حروفc جایگزین می‌شوند.
افزونگی
اولین اصل آن است که تمام پیامهای رمز شده باید شامل مقداری «افزونگی»داده‌های زائدباشندبه عبارت دیگر لزومی ندارد که اطلاعات واقعی به همان گونه که هستند رمز و ارسال شوند. یک مثال می‌تواند به فهم دلیل این نیاز کمک کند. فرض کنید یک شرکت به نام TCP با۶۰۰۰۰کالا از طریق سیستم پست الکترونیکی سفارش خرید می‌پذیرد. برنامه نویسان شرکت TCP به خیال آن که برنامه‌های موثر و کار آمدی می‌نویسند پیامهای سفارش کالا را مشتمل بر ۱۶بایت نام مشتری و به دنبال آن سه بایت فیلد داده (شامل یک بایت برای تعداد کالا ودو بایت برای شماره کالا) در نظر می‌گیرد که سه بایت آخر توسط یک کلید بسیار طولانی رمزنگاری می‌شود و این کلید را فقط مشتری و شرکت TCP می‌داند.
تازگی پیامها
دومین اصل اساسی در رمزنگاری آن است که باید محاسباتی صورت بگیرد تا مطمئن شویم هر پیام دریافتی تازه و جدید است یا به عبارتی اخیرا فرستاده شده‌است این بررسی برای جلوگیری از ارسال مجدد پیام‌های قدیمی توسط یک اخلالگر فعال الزامی است اگر چنین بررسی‌هایی انجام نشود کارمند اخراجی ما قادر است با ایجاد یک انشعاب مخفی از خط تلفن پیام‌های معتبری را که قبلا ارسال شده مکررا ارسال نماید، حتی اگر نداند محتوای ان چیست.
راهکاری برای ایجاد تازگی پیام
یک چنین محاسبه‌ای را می‌توان با قرار دادن یک مهر زمان در پیام‌ها پیش‌بینی کرد به نحوی که پیام‌ها مثلا برای ده ثانیه معتبر باشد گیرنده پیام می‌تواند آن را برای حدود ده ثانیه نگه دارد تا بتواند پیام‌های جدید را با آن مقایسه کرده و نسخه‌های تکراری را که دارای مهر زمان هستند به عنوان پیام‌های قدیمی شناخته و حذف خواهند شد.
رمزنگاری به صورت سخت‌افزاری
الگوریتم‌های رمزنگاری رامی توان هم به صورت سخت‌افزاری (به منظور سرعت بالاتر) وهم به صورت نرم‌افزاری (برای انعطاف‌پذیری بیشتر) پیاده‌سازی کرد روش‌های جانشینی و جایگشتی می‌توانند با یک مدار ساده الکترونیکی پیاده‌سازی شوند.
p-box ابزاری است که برای جایگشت بیتهای یک ورودی هشت بیتی کاربرد دارد. بود با سیم بندی و برنامه‌ریزی درونی این p-box قادراست هر گونه جایگشت بیتی را بطور حقیقت با سرعتی نزدیک به سرعت نور انجام بدهد چرا که هیچ گونه محاسبه‌ای لازم نیست و فقط تاخیر انتشار سیگنال وجود دارد. این طراحی از اصل کرشهف تبعیت می‌کند یعنی:حمله‌کننده از روش عمومی جایگشت بیت‌ها مطلع است آنچه که او از آن خبر ندارد آن است که کدام بیت به کدام بیت نگاشته می‌شود کلید رمز همین است.
برخی اصطلاحات
در لیست زیر با توجه به ارتباط مستقیم علم رمزنگاری یا همان Cryptography به برخی از اصطلاحات که در بحث امنیت شبکه و کامپیوتر وجود دارند اشاره شده‌است.
نهان‌نگاری
در علم رمزنگاری، به عمل پنهان‌سازی فایل، پیام، عکس یا ویدئو درون فایل، پیام، عکس یا ویدئویی دیگر نهان‌نگاری یا Steganography گفته می‌شود. مزیت نهان‌نگاری نسبت به رمزنگاری این است که نهان‌نگاری بر خلاف رمزنگاری جلب توجه نمی‌کند. پیام‌های رمزنگاری شده که آشکار هستند جلب توجه کرده و هر چقدر هم رمزگشایی‌ناپذیر باشند علاقه برمی‌انگیزند؛ بنابراین، در حالی که تمرکز رمزنگاری یا Cryptography تنها روی محافظت از پیام است، نهان‌نگاری یا Steganography روی پنهان کردن وجود پیام رمزنگاری شده‌است.
نهان‌نگاری شامل پنهان کردن اطلاعات درون فایل‌های کامپیوتری است. در نهان‌نگاری دیجیتال، ارتباطات الکترونیکی ممکن است شامل رمزگذاری نهان‌نگارانه درون یک لایه انتقال مانند فایل سند، عکس، ویدئو، برنامه یا پروتکل باشد. فایل‌های رسانه‌ای به علت داشتن حجم بالا برای انتقال نهان‌نگارانه گزینه‌ای ایده‌آل هستند.
Decryption
معکوس Encryption است و در Cryptography به رمزگشایی، استخراج و آشکارسازی اطلاعات پنهان شده گفته می‌شود.
Plain text
متن اولیه که رمزنگاری نشده یا متن نهایی رمزگشایی شده را plain text یا متن آشکار می‌گویند.
Cipher
سایفر یک الگوریتم برای قفل‌گذاری یا قفل‌شکنی به عنوان یک سری مراحل تعریف شده به کار می‌رود. سایفر از آن جهت مورد استفاده قرار می‌گیرد که زمان کمتری صرف رمز نگاری می‌شود. شیوه رمز نگاری به روش سایفر به این صورت است که اطلاعات متن آشکار را به رمز یا کد تبدیل می‌کند.
Cryptanalysis
به هنر شکستن متون cipher شده گفته می‌شود.
Intruder
در لغت به معنای مزاحم یا مخل است و در رمزنگاری به معنای کسی است که یک کپی از پیام رمزنگاری شده دارد و قصد رمزگشایی آن را دارد. منظور از شکستن رمز Decrypt کردن آن متن که خود دو نوع است. active intruder که می‌تواند اطلاعات را روی خط عوض کند و تغییر دهد و passive intruder که فقط می‌تواند اطلاعات روی خط را داشته باشد و قابلیت تغییر آن‌ها را ندارد.
Protocol
به روش یا قرار دادی که بین دو یا چند نفر برای تبادل اطلاعات گذاشته می‌شود گفته می‌شود.
Intrusion Points
نقاطی که یک نفوذگر بتواند به اطلاعات با ارزش دست پیدا کند.
Internal Access Point
به سیستم‌هایی گویند که در اتاق یا در شبکه داخلی مستقرند و هیچ امنیتی (LocalSecurity) روی آن‌ها تنظیم نشده باشد و احتمال حمله به آن‌ها وجود دارد.
External Access Point
تجهیزاتی که ما را به شبکه خارجی مانند اینترنت متصل می‌کنند یا Applicationهایی که از طریق اینترنت کار می‌کنند و احتمال حمله به آن‌ها وجود دارد.
Attack
هر چیزی که مکانیزم امنیت سیستم شما را دور زده و باعث تخریب گردد را حمله یا Attack گویند.
از انواع حمله می‌توان به موارد زیر اشاره کرد:
DoS
DDoS
Spoofing (مانند MAC Spoofing, IP Spoofing و Web Spoofing)
Man-in-the-Middle
Password Guessing
Key
به اطلاعاتی گفته می‌شود که با استفاده از آن بتوان cipher text (متنی که cipher شده) را به plain text تبدیل کرد. (یا برعکس) به عبارت ساده یک متن رمز شده توسط یک Key با الگوریتم مناسب، به متن ساده تبدیل می‌شود.
Data or Message Confidentiality
Data or Message Integrity
Entity or Message Authentication
Non-Repudiation
Diffie-Hellman key exchange
Hash Functions
One-way Permutations
Message Authetication Codes
Digital Signature
Syemmetric-Key Cryptography
Asymmetric-Key Cryptography
Cryptanalysis
Cryptanalysis Attacks
Side-Channel Attacks
پنهان‌نگاری
تجزیه و تحلیل رمز
توابع درهم‌ساز
الگوریتم‌های رمز استاندارد
الگوریتم‌های کلید نامتقارن
کلید عمومی
کلید خصوصی
الگوریتم‌های کلید متقارن
توابع تصدیق پیام
امضای رقومی
لگاریتم گسسته
منحنی‌های بیضوی
رمزنگاری هیل
اصول ششگانه کرکهف
آشفتگی و پخش
گوردن ولشمن