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

 

رمزنگاری چیست؟

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

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

 

انواع رمزنگاری

همه الگوریتم‌های رمزنگاری را می‌توان به طور کلی در دو دسته‌بندی جای داد. در اصل مهم‌ترین تفاوت الگوریتم‌ها در این دسته‌بندی‌ها معین می‌شود. از این رو تفاوت‌های دیگر الگوریتم‌ها در رابطه با روش‌های توسعه الگوریتم بستگی دارد. این دسته‌بندی‌ها عبارتند از:

  • الگوریتم‌هایی که از کلید متقارن (Symmetric) برخوردار می‌باشند. از کلیدهای رمزگشایی مشابه برای رمزنگاری و رمزگشایی استفاده می‌گردد.
  • الگوریتم‌هایی که از کلیدهای نامتقارن (Asymmetric) برخوردار می‌باشند. این الگوریتم از کلیدهای متفاوت برای رمزنگاری و رمزگشایی استفاده می‌نماید.
  • همچنین این نوع از رمزنگاری با نام Public-Key نیز شناخته می‌شود.

 

الگوریتم رمزنگاری به وسیله کلید متقارن

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

رمزنگاری متقارن دارای دو دسته‌بندی می‌باشد که شامل رمزنگاری دنباله‌ای و رمزنگاری بلوکی می‌باشد. در رمزنگاری دنباله‌ای همه بیت‌های پیام به یکباره رمزنگاری می‌گردد. ولیکن در رمزنگاری بلوکی که با نام رمزنگاری قالب نیز شناخته می‌شود، تعداد معینی از بیت‌ها رمزنگاری می‌گردند. انواع متعددی از رمزنگاری متقارن وجود دارد. برای مثال از مشهورترین آن‌ها می‌توان به مواردی همچون Twofish، Serpent، AES، Blowfish اشاره نمود.

 

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

این نوع رمزنگاری به دلیل ساده بودن و همچنین برخورداری از سرعت بالا از محبوبیت بسیار زیادی برخوردار می‌باشد. در اصل بکارگیری کلیدهای مشابه برای رمزنگاری و رمزگشایی داده‌ها مراحل را ساده و سریع می‌نماید. از این رو می‌توان مزیت‌های زیر را برای رمزنگاری متقارن برشمرد:

  • این نوع از رمزنگاری سریع‌تر از رمزنگاری نامتقارن می‌باشد.
  • برای رمزنگاری متقارن شما به قدرت پردازش کمتری نیاز دارید.
  • این نوع از رمزنگاری موجب کاهش سرعت نمی‌گردد.

از این رو اگر شما قصد دارید داده‌های با حجم زیاد را رمزنگاری کنید، استفاده از رمزنگاری متقارن برای شما پیشنهاد می‌گردد.

 

الگوریتم رمزنگاری به وسیله کلید نامتقارن

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

 

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

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

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

 

رمزنگاری ترکیبی (استفاده از رمزنگاری متقارن در کنار رمزنگاری نامتقارن)

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

کاربردهای رمزنگاری در دنیای امروز

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

HTTPS و گواهی‌های SSL/TLS

هر بار که آدرس سایتی با https شروع می‌شود، رمزنگاری نامتقارن در پشت صحنه کار می‌کند. مرورگر شما با سرور یک «دست دادن» (handshake) انجام می‌دهد: کلید عمومی سرور را دریافت می‌کند، یک کلید جلسه موقت می‌سازد، آن را با کلید عمومی رمزنگاری می‌کند و می‌فرستد. از آن به بعد ارتباط با رمزنگاری متقارن (سریع‌تر) ادامه پیدا می‌کند. این الگو دقیقاً همان رمزنگاری ترکیبی است که توضیح داده شد.

پیام‌رسان‌های End-to-End

سرویس‌هایی مثل WhatsApp و Signal از رمزنگاری End-to-End استفاده می‌کنند که یعنی حتی خود شرکت هم نمی‌تواند پیام‌های شما را بخواند. کلید رمزگشایی فقط روی دستگاه شما و گیرنده وجود دارد. پروتکل Signal که پایه این سیستم‌هاست از ترکیب رمزنگاری نامتقارن برای تبادل کلید و رمزنگاری متقارن برای محتوا استفاده می‌کند.

رمزنگاری در هاستینگ و سرورها

برای کسانی که با هاست و سرور کار می‌کنند، رمزنگاری اهمیت عملی دارد. پروتکل SSH که برای اتصال امن به سرورها استفاده می‌شود، از رمزنگاری نامتقارن برای احراز هویت و از رمزنگاری متقارن AES برای انتقال داده استفاده می‌کند. وقتی یک فایل رمزنگاری شده روی هاست ذخیره می‌شود، حتی اگر هاستینگ دسترسی به فایل داشته باشد، بدون کلید نمی‌تواند محتوا را بخواند.

ارز دیجیتال و بلاکچین

بیت‌کوین و سایر ارزهای دیجیتال اساساً بر پایه رمزنگاری نامتقارن ساخته شده‌اند. هر کیف پول دیجیتال یک جفت کلید عمومی و خصوصی دارد. آدرس کیف پول که با دیگران به اشتراک می‌گذارید از کلید عمومی مشتق می‌شود، و امضای تراکنش‌ها با کلید خصوصی انجام می‌شود. این دقیقاً همان اصولی است که در رمزنگاری نامتقارن توضیح داده شد.

تاریخچه مختصر رمزنگاری

آشنایی با تاریخچه رمزنگاری کمک می‌کند درک بهتری از اهمیت آن داشته باشید:

رمز سزار: جولیوس سزار برای ارتباط با فرماندهان خود از یک روش ساده جابجایی حروف استفاده می‌کرد. هر حرف با حرفی که سه جا جلوتر بود جایگزین می‌شد. این اولین نمونه مستند رمزنگاری سیستماتیک است.

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

DES و AES: در دهه 1970 استاندارد رمزنگاری DES توسط IBM و NSA معرفی شد. بعد از اینکه قدرت پردازش کامپیوترها به حدی رسید که DES را قابل شکستن کرد، AES در سال 2001 به عنوان استاندارد جدید معرفی شد و هنوز هم یکی از امن‌ترین الگوریتم‌های رمزنگاری متقارن است.

سوالات متداول

تفاوت رمزنگاری و هَش کردن چیست؟

رمزنگاری دو طرفه است — داده را می‌توان با کلید رمزنگاری کرد و دوباره رمزگشایی کرد. هَش کردن (Hashing) یک طرفه است؛ از داده یک اثرانگشت منحصر به فرد می‌سازد که نمی‌توان آن را به داده اصلی برگرداند. رمزهای عبور معمولاً هَش می‌شوند نه رمزنگاری.

آیا رمزنگاری AES-256 واقعاً امن است؟

بله. AES-256 با کلید 256 بیتی در حال حاضر با کامپیوترهای کلاسیک عملاً غیرقابل شکستن است. حتی اگر میلیاردها کامپیوتر همزمان کار کنند، شکستن آن بیلیون‌ها سال طول می‌کشد. تنها تهدید جدی برای آن در آینده کامپیوترهای کوانتومی هستند.

رمزنگاری کوانتومی چیست؟

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

جمع‌بندی

در این مقاله در رابطه با رمزنگاری و انواع آن گفتگو نمودیم. همانگونه که مشاهده نمودید هر یک از انواع رمزنگاری دارای معایب و مزایای مخصوص به خود هستند. از این رو با استفاده از ترکیب این دو نوع الگوریتم رمزنگاری می‌توانید بهترین بازدهی را به وجود بیاورید. رمزنگاری دیگر فقط یک موضوع فنی برای متخصصان نیست — هر وب‌سایت با HTTPS، هر پیام در واتساپ، و هر تراکنش بانکی آنلاین بر پایه همین اصول کار می‌کند.

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