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

رمزنگاری چیست و چگونه کار میکند؟
رمزنگاری چیست و چگونه کار میکند؟
رمزنگاری تاریخچهای بسیار طولانی دارد و میتوان ریشههای آن را در یونان باستان و امپراطوری روم پیدا کرد. مردمان باستان، پیامهای خود را بهصورت رمزی و با جابهجا کردن حروف ارسال میکردند که تنها با دراختیار داشتن یک کلید امن مخصوص، قابل خواندن بود. امروزه رمزنگاری در اغلب کاربردهای دنیای فناوری از پیامرسانهای شخصی تا حفاظت از دادههای سازمانی و انتقال پول، دیده میشود. در ادامهی این مطلب الورایانه ، علاوه بر بررسی جنبههای گوناگون فناوری رمزنگاری، چگونگی پیادهسازی آن را هم شرح میدهیم.
در مطلب حاضر، ابتدا نگاهی به تاریخچهی رمزنگاری داریم. سپس چگونگی عملکرد الگوریتمهای رمزنگاری را شرح میدهیم و در پایان، انواع رمزنگاری را بررسی میکنیم.
رمزنگاری چیست؟
رمزنگاری به زبان ساده به فرایندی گفته میشود که در آن، یک پیام یا فایل با یک رمز محافظت میکنیم. با پیادهسازی فرایند، تنها افراد خاصی امکان مشاهدهی پیام یا فایل را خواهند داشت. رمزنگاری ابتدا با رمزگذاری یا به هم ریختن دادهی ورودی (Encrypt) انجام میشود. سپس گیرنده، دادهها را با استفاده از یک رمز از حالت بههم ریخته خارج میکند که اصطلاحا به آن رمزگشایی (Decrypt) گفته میشود.
در رمزنگاری، کلیدها نقشی اساسی دارند و از زمانهای دور تا روشهای مدرن امروزی، انواع کلیدهایی که برای بازکردن رمز پیامها استفاده میشدند، نقشی حیاتی داشتند. امروزه کلیدها با استفاده از الگوریتمهای کامپیوتری ساخته میشوند که عملکردی شبیه به ابزارهای تولید اعداد تصادفی دارند. بهعنوان مثال، برخی از الگوریتمهای پیچیدهی امروزی از حرکت ماوس کاربر برای ساختن عبارتی تصادفی بهعنوان کلید رمزنگاری استفاده میکنند.
عبارتهای مرسوم در رمزنگاری
هر فناوری عبارتهایی مخصوص به خود دارد که آشنایی با معنی و کاربرد آنها، در درک مفاهیم مهمتر فناوری نقش مهمی دارد. در ادامه، عبارتهای مهم رمزنگاری را بررسی میکنیم.
کلید (Key): رشتهای تصادفی از بیتها که برای به هم ریختن و مرتبط کردن داده (رمزنگاری و رمزگشایی) استفاده میشود. کلیدها منحصربهفرد هستند و بهصورت کاملا تصادفی ساخته میشوند تا بهراحتی قابل پیشبینی نباشند. هرچه کلیدها بلندتر باشند، شکستن آنها دشوارتر خواهد بود. طول مرسوم کلیدها در رمزنگاری متقارن، ۱۲۸ بیت و در رمزنگاری نامتقارن، ۲۰۴۸ بیت است (در بخشهای بعدی، انواع رمزنگاری را توضیح میدهیم).
رمز (Cipher): الگوریتمی که برای رمزنگاری و رمزگشایی دادهها استفاده میشود. درواقع الگوریتم تعدادی مرحله و فرایند است که پشت سر هم انجام میشود. دو نوع الگوریتم بلوکی و دنبالهای وجود دارند (Block و Stream).
الگوریتم (Algorithm): همان سلسله مراتب و مراحلی است که در فرایند رمزنگاری انجام میشود. امروزه انواع الگوریتمهای رمزنگاری وجود دارند که بسته به سطح امنیت و موضوع و حوزهی فعالیت، دستهبندی میشوند.
رمزگشایی (Decryption): فرایدی که طی آن یک متن دارای رمز یا دادهی نامفهوم با استفاده از کلید رمزگشایی به دادهی مفهوم تبدیل میشود.
تحلیل رمزنگاری (Cryptanalysis): علم مطالعهی رمزها و سیستمهای رمزنگاری. در کاربردهای مجرمانه با استفاده از این علم میتوان پس از کشف نقاط ضعف سیستم رمزنگاری، بدون داشتن کلیدها به دادهی اصلی دسترسی پیدا کرد. در قدیم روشی بهنام تحلیل تناوب (Frequency Analysis) کاربرد داشت که با پیدا کردن تکرار برخی از حروف در پیامها، پیام اصلی را بهنوعی استخراج میکرد. البته روش مذکور در مقابله با الگوریتمهای مدرن امروزی کارایی چندانی ندارد.
انواع رمزنگاری
تمامی الگوریتمهای رمزنگاری را میتوان در دو دستهی کلی تقسیمبندی کرد. درواقع تفاوت اصلی الگوریتمها در همین دستهبندی مشخص میشود و دیگر تفاوتها به روش توسعهی الگوریتم بستگی پیدا میکنند.
- الگوریتمهای دارای کلیدهای متقارن (Symmetric) که از کلیدهای رمزگشایی مرتبط با مشابه برای رمزنگاری و رمزگشایی استفاده میکنند.
- الگوریتمهای دارای کلیدهای نامتقارن (Asymmetric) که از کلیدهای متفاوت برای رمزنگاری و رمزگشایی استفاده میکنند. این نوع رمزنگاری بهنام Public-Key هم شناخته میشود.
الگوریتم رمزنگاری با کلید متقارن
برای درک الگوریتمهای رمزنگاری، مثالهای ملموس بهترین ابزارها هستند. مثال پیامرسانی با پست، اغلب برای توضیح دادن الگوریتمها استفاده میشود که ما هم در این بخش از همان استفاده میکنیم.
فرستنده، پیام محرمانهی خود را داخل یک جعبه میگذارد و در آن را با قفلی مخصوص میبندد که کلیدش را دراختیار دارد. گیرنده، یک نمونه مشابه همان کلید را دراختیار دارد که قبلا به هر روشی (مثلا حضوری) ازفرستنده گرفته است. او با استفاده از کلید، جعبه را باز میکند و پیام را میخواند.
الگوریتمهای رمزنگاری متقارن، به دو دستهی رمزنگاری دنبالهای و رمزنگاری بلوکی تقسیم میشوند. در رمزنگاری دنبالهای، تمامی بیتهای پیام بهیکباره رمزنگاری میشوند. در رمزنگاری بلوکی یا قالبی، یک بلوک شامل تعداد مشخصی بیت (اغلب ۶۴ بیت) رمزنگاری میشود. انواع گوناگونی از الگوریتمهای رمزنگاری متقارن وجود دارند که ازمیان مشهورترینها میتوان به موارد زیر اشاره کرد:
- Twofish
- Serpent
- AES
- Blowfish
- CAST5
- RC4
- TDES
- IDEA
مزایای الگوریتم رمزنگاری متقارن
رمزنگاری متقارن بهخاطر ساده بودن و سرعت عمل، محبوبیت زیادی دارد. استفاده از کلید مشابه برای رمزنگاری و رمزگشایی، فرایند را ساده و سریع میکند. درنتیجه، میتوان ادعا که رمزنگاری متقارن:
- سربیعتر از رمزنگاری نامتقارن است.
- نیاز به قدرت پردازشی کمتری دارد.
- باعث کاهش سرعت نمیشود.
بهخاطر همین مزایای بالا، در رمزنگاری دادههای بسیار حجیم، استفاده از رمزنگاری متقارن پیشنهاد میشود.
الگوریتم رمزنگاری با کلید نامتقارن
در مثال رمزنگاری نامتقارن، گیرنده و فرستندهی پیام دو قفل متفاوت با کلیدهای منحصربهفرد دارند. درواقع برخلاف روش متقارن، از یک قفل با کلیدهای مشابه متعدد، خبری نیست. در ادامه، توضیحی نسبتا ساده از روش پیادهسازی الگوریتم را شرح میدهیم. البته بهخاطر ذات پیچیدهی رمزنگاری، همین مثال ساده هم کمی پیچیده بهنظر میرسد.
فرستنده، ابتدا از گیرنده میخواهد که قفل مخصوص خود را برای او بفرستد. سپس فرستنده پیام را در جعبهای میگذارد و با قفل مخصوص گیرنده آن را قفل میکند. پس از ارسال پیام با پست معمولی و در جعبهی قفلشده، فقط گیرنده امکان بازکردن پیام را خواهد داشت، چون کلید مخصوص را دراختیار دارد. حتی خود فرستنده هم پس از قفل کردن جعبه، امکان بازکردن آن را نخواهد داشت. درنتیجه در چنین نوعی از پیامرسانی، پیش از ارسال پیام، باید قفل مخصوص گیرنده را دراختیار داشته باشید.
مزیت الگوریتم رمزنگاری نامتقارن
مزیت حیاتی رمزنگاری غیرمتقارن این است که هیچیک از دوطرف فرستنده و گیرنده، الزامی برای اشتراکگذاری کلیدهای اختصاصی خود ندارند. درواقع آنها کلیدهای شخصی را نزد خود نگه میدارند و تنها قفلها جابهجا میشوند. فراموش نکنید که همان جابهجا کردن کلید مشترک در رمزنگاری متقارن، احتمال جاسوسی و سرقت اطلاعات را افزایش میداد. تصور کنید که گیرنده و فرستنده برای تبادل کلیدهای مشترک، از سرویس پست معمولی استفاده کنند و یک نفر دراینمیان، کلید مشترک را کپی کند. او میتواند تمامی پیامهای بعدی را رمزگشایی کند. نکتهی مهم دیگر این است که اگر مثلا گیرنده در رمزنگاری نامتقارن، کلید شخصی خود را کم کند، تنها پیامهای او قابل جاسوسی خواهند بود. درواقع پیامهای فرستنده برای دیگر افراد، قابل خواندن نیستند، چون هرکدام با قفل مخصوص همان گیرنده فرستاده میشوند.
همانطور که گفته شد، در رمزنگاری نامتقارن از کلیدهای متفاوت در رمزنگاری و رمزگشایی استفاده میشود. گیرندهی پیام، دو نوع کلید عمومی و خصوصی ایجاد میکند (Public و Private). او سپس کلید عمومی را برای فرستندههای پیام ارسال میکند. آنها با استفاده از کلید عمومی، پیامهای ارسالی را رمزنگاری میکنند. پس از دریافت پیام، تنها گیرندهی اصلی امکان رمزگشایی را دارد و آن کار را با کلید خصوصی خودش انجام میدهد.
مطالب مرتبط :
فناوری بلاک چین چیست و چه کمکی به ما میکند
رمز پویا چیست و چگونه آن را فعال نماییم
رمزنگاری چیست و چگونه کار میکند؟
مزیت اصلی رمزنگاری متقارن در این است که برای استفاده از الگوریتم، هیچگونه پیام یا کلید حساس و امنیتی جابهجا نمیشود. کلیدهای خصوصی که برای رمزگشایی پیامها استفاده میشوند، مخصوص گیرنده هستند و او هیچ نیازی به اشتراکگذاری کلید با فرستندهها ندارد. کلیدهای عمومی بهراحتی برای دیگران ارسال میشوند و نیازی به امن بودن ندارند. درمقابل کلید خصوصی را میتوان بهراحتی در محلی امن در کامپیوتر شخصی نگهداری کرد.
رمزنگاری به فرایند میگویند که طی آن یک پیام که میتواند شامل هر نوع دادهای باشد، با استفاده از یک عبارت که کلید نام دارد، رمزگذاری میشود. کلید، رشتهای تصادفی از کاراکترها است که بهصورت تصادفی تولید میشود، حال آنکه این کلید منحصربهفرد نیز هست. فرستنده با استفاده از کلید اقدام به رمزگذاری پیام کرده و گیرنده نیز تنها در صورت در اختیار داشتن کلید قادر به رمزگشایی و خواندن متن پیام خواهد بود.