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

Security vs. Safety

واژه‌ی Security (معادل واژه‌ی «امنیت» در زبان فارسی) زمانی کاربرد دارد که محرمانه ماندن اطلاعات یا غیرقابل نفوذ بودن یک سامانه در مقابل حملات نفوذگران مطرح باشد. به عنوان مثال رمزنگاری یک روش تامین امنیت اطلاعات ذخیره شده در یک مرکز اطلاعاتی یا اطلاعات ارسالی بین دو کاربر شبکه است. اما منظور از Safety (معادل واژه‌ی «ایمنی» در زبان فارسی) رفتار درست سامانه در هر شرایطی از عملکرد (حتی در صورت بروز خطا) است.

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

Cipher vs. Code

هدف از کد کردن اطلاعات تغییر ساختار آن برای استفاده در کاربری‌های دیگر است. به عنوان مثال اطلاعات به کد بریل (Braille Code) تبدیل می‌شوند تا خواندن آن برای نابینایان مقدور گردد؛ یا اطلاعات به کد مورس (Morse Code) تبدیل می‌شوند تا بتوان آنها را از طریق تلگراف منتقل کرد. به همین ترتیب کدینگ‌های UTF7، UTF8، Unicode، ASCII و بسیاری دیگر، هر کدام یک روش کدینگ کاراکترهای نوشتاری هستند که سامانه‌های کامپیوتری امروزی استفاده می‌شوند. مثال دیگری از کد کردن‌ها نمایش اعداد ریاضی با کدینگ‌های مختلف Binary، Hex و Gray است.

بر اساس اصل اساسی کرکهف، در روش‌های رمزنگاری الگوریتم رمز کردن یا رمزگشایی نباید لزوما مخفی بماند. به عبارت دیگر، حتی اگر الگوریتم رمزنگاری لو برود، نباید اطلاعات رمز شده توسط این الگوریتم به راحتی فاش شوند. همین اصل تفاوت بنیادی کد کردن و رمز کردن را مشخص می‌کند. در کد کردن هر کاربر که به روش کد کردن آشنا باشد، می‌تواند اطلاعات را کد کرده (Encoding) یا از آن کد به کد مطلوب خود برگرداند (Decoding). در حالی که اطلاعات تبدیل شده توسط روش‌های رمزنگاری (علاوه بر الگوریتم) به کلید رمز (Key) نیز وابسته است و صرف آگاه بودن از الگوریتم امکان رمزگشایی (Decrypting) متنی که با کلید محرمانه‌ای رمز شده است (Encrypting) وجود ندارد.
با توجه به توضیحات داده شده، هدف از کد کردن مخفی‌سازی اطلاعات نیست و روش تبدیل از هر کد به کد دیگر به صورت عمومی در اختیار عموم قرار دارد. در حالی که هدف از رمز کردن مبهم کردن ظاهر اطلاعات و محرمانه نگه داشتن اصل آنها است. بنابراین نباید این دو مفهوم را با هم یکی دانست یا به جای هم استفاده کرد. اگرچه در بسیاری از زبان‌ها (از جمله انگلیسی و فارسی) گاهی این دو واژه به جای هم استفاده می‌شوند.

Confidentiality vs. Integrity

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

اهم کاربرد الگوریتم‌های درهم‌سازی (Hashing) در همین راستا است و با استفاده از آنها می‌توان از اصالت پیام (Integrity) دریافتی مطمئن شد. گاهی نیز ممکن است محرمانگی مهم نبوده اما اصالت آن بسیار حائز اهمیت باشد. به عنوان مثال در صدور چک، مبلغ و سایر اطلاعات روی چک محرمانه نیست؛ اما این اطلاعات و به ویژه مبلغ چک نباید دستکاری شوند. در حالت کلی امکان جلوگیری از تغییر اطلاعات در کانال ارتباطی یا بازگرداندن اطلاعات تغییر یافته وجود نداشته و تنها می‌توان تغییر غیرمجاز را تشخیص داد.

Confidentiality vs. Authentication

در کنار محرمانه ماندن اطلاعات و اطمینان از اصالت آن، همواره باید مطمئن بود فرستنده‌ی پیام همان کسی است که ادعا دارد. به ویژه آنکه در بسیاری از کاربردها محرمانگی اهمیتی نداشته و تنها هویت فرستنده مهم است. امضای دیجیتال (Digital Signature) راهکاری است برای تایید هویت طرف مقابل که روش‌های مختلف آن عموما بر اساس مفاهیم ریاضی و رمزنگاری کلید عمومی (نامتقارن) پایه‌گذاری شده‌اند.

Key vs. Password

گاوصندوقی را تصور کنید که باز شدن آن وابسته به اطلاع از کلمه‌ی عبور است. اگر به هر نحوی بتوان این گاوصندوق را به صورت غیرمجاز باز کرد، محتوای آن بدون آگاهی از کلمه‌ی عبور در اختیار مهاجم قرار می‌گیرد. در واقع کلمه‌ی عبور (یا Password) نقش کنترل‌کننده‌ای را دارد که شاید بتوان آن را دور زد یا از مسیری وارد شد که نیاز به کنترل نباشد. زمانی که اطلاعات رمز می‌شوند، متن اصلی در دسترس قرار نداشته و امکان استخراج متن اصلی از متن رمز شده بدون اطلاع از کلید رمز وجود ندارد. به عبارت دیگر، کلید رمز (که عموما با عبارت Key یاد می‌شود) بر خلاف کلمه‌ی عبور یک کنترل‌کننده نیست و بدون اطلاع از آن (اگر الگوریتم رمزنگاری به قدر کافی قدرتمند بوده و کلید رمز نیز به درستی انتخاب شده باشد) به هیچ عنوان نمی‌توان به متن اصلی دست یافت.

Symmetric Key Encryption vs. Asymmetric Key Encryption

تکنیک‌های مختلف رمزنگاری در یکی از دو دسته‌ی رمزنگاری کلید متقارن (یا کلید خصوصی) و رمزنگاری کلید نامتقارن (یا کلید عمومی) قرار می‌گیرند. در رمزنگاری کلید خصوصی کلیدی که اطلاعات را از رمز خارج می‌کند همان کلیدی است که اطلاعات توسط آن رمز شده است، یا با عملیات ساده‌ای از روی آن قابل محاسبه است. بنابراین محرمانه نگه داشتن چنین کلیدی جهت جلوگیری از لو نرفتن اطلاعات بسیار حائز اهمیت است. در رمزنگاری کلید عمومی دو کلید مجزا برای رمزنگاری و رمزگشایی استفاده می‌شود که محاسبه‌ی یکی از آنها از روی دیگری در عمل (بر اساس سامانه‌های سخت‌افزاری امروزی) غیر ممکن است. بر اساس این خصوصیت این روش‌ها کاربردهای دیگری (علاوه بر رمزنگاری مستقیم اطلاعات) پیدا می‌کنند.

سرعت پردازش رمزنگاری کلید خصوصی بسیار بیشتر از رمزنگاری کلید عمومی است و در ارتباطات با حجم بالا (مانند شبکه‌های مختلف) از آنها استفاده می‌شود. امروزه اهم کاربرد روش‌های کلید عمومی در امضای دیجیتال و تبادل کلید رمز (برای ارتباطات مبتنی بر روش‌های کلید خصوصی) است و به خاطر سرعت پایین کمتر برای رمزکردن اطلاعات با حجم انبوه استفاده می‌شوند.

Algorithms vs. Protocols

هر الگوریتم رمزنگاری بر مبنای علم ریاضیات است که در زمان ارائه تنها بر روی مفاهیم ریاضی آن بحث شده و میزان مقاومت آن نیز بر اساس همین مفاهیم ریاضی سنجیده یا اثبات می‌شود. برای استفاده از این الگوریتم‌ها در دنیای واقعی نیاز به توافق روی برخی پارامترها (مانند طول کلید رمز و طول بلوک رمز) وجود دارد که به صورت قراردادهایی تدوین می‌شوند. به این ترتیب ممکن است که برای استفاده از یک الگوریتم مشخص قراردادهای متنوعی تدوین شوند که هر کدام کاربری خاص خود را دارند. به همین ترتیب می‌توان از ترکیب چند الگوریتم رمزنگاری پروتکل جدیدی ارائه داد.

Common protocols vs. Standard protocols

پروتکل‌های تدوین شده برای عملیات مختلف ممکن است از سوی برخی نهادهای عملی یا صنعتی به صورت استاندارد معرفی شوند. این استانداردسازی صرفا تایید عملکرد پروتکل مذکور توسط آن نهاد را نشان داده و اجباری بر استفاده از آنها نیست. به ویژه آنکه تنها یک مرجع استانداردسازی وجود ندارد. در مقابل چنین استانداردهایی ممکن است استفاده از برخی پروتکل‌های غیراستاندارد برای کاربری‌های خاص مرسوم‌تر باشد.