رمزنگاری چیست؟ الگوریتمها برای حفظ امنیت داده چه میکنند؟
آیا دادههای حساسی دارید که به فکر حفاظت از آنها هستید؟ رمزنگاری به شما در این مسیر کمک میکند. سازمان با کمک رمزنگاری به ذخیره سازی، جابجایی یا تبدیل دادهها به فرمهای خوانا میپردازد.
شرکتها باید از دادهها و مکانشان مطمئن شوند. برخی از سازمانها، دارای ابزارهای حساس به کاوش داده هستند تا هیچ دادهای به مخاطره نیافتد. پس ابزارهای رمزنگاری میتوانند دادههای مهم را به متن رمزی (دنبالهای تصادفی از کاراکترهای حاصل از محاسبات ریاضی) تبدیل نموده و آن را از دست کاربران غیرمجاز خارج کنند. در این مقاله بیشتر شما را با این مفهوم آشنا خواهیم کرد.
کلید رمزنگاری چیست؟
تا اینجا متوجه شدیم که به فرایند حفاظت از دادهها یا اطلاعات از طریق تبدیلشان به کد رمزی، رمزنگاری گفته میشود. هر کسی که بخواهد به دادههای رمزنگاری شده دسترسی پیدا کند، به کد رمزگشایی نیاز دارد.
کلید کریپتو گرافی یا رمزنگاری (cryptographic or encryption key) مجموعهای از مقادر ریاضی است که مورد قبول فرستنده و گیرنده رمز قرار دارد. پس عدم دسترسی افراد غیرمجاز به دادهها را تضمین میکند. کسب و کارها از نرم افزار مدیریت کلید رمزنگاری، برای متمرکز نمودن تمامی کلیدها و حفاظت از آنها استفاده میکنند. با این کار، کلیدها تحت نظات قرار گرفته و دسترسی کاربران به آنها کنترل میشود تا خطرات امنیتی شناسایی شود.
فرایند رمزنگاری (encryption) شامل تبدیل متن عادی به متن رمزی و غیرقابل درک است. متن رمزی (ciphertext) توالی تصادفی را بارها تکرار میکند، ولی در اصل دارای منطق ریاضی قابل فهم است.
سازمانها باید با کمک کلیدهای پیچیده، رمزنگاری ایمن را فراهم کنند و دستیابی به دادهها را به فرایندی چالش برانگیز و پرهزینه برای هکرها تبدیل کنند. آنها میتوانند از نرم افزار رمزنگاری برای حفظ یکپارچگی دادهها و محرمانه بودنشان در عین کاهش خطر افشا شدن دادهها استفاده کنند.
مطلب پیشنهادی: قرارداد هوشمند چیست؟
چرا رمزنگاری اهمیت دارد؟
کسب و کارهای مدرن با حجم زیادی از دادههای شخصی مشتریان و کارکنان سروکار دارند. حفاظت از این دادهها باعث حفظ اعتبار کسب و کار و اجتناب از تخلفهای حقوقی میشود. شرکتها با کمک رمزنگاری قادر به ذخیره و انتقال امن دادهها در عین حفظ یکپارچگی و محرمانه بودنشان هستند.
رمزنگاری به روشهای زیر باعث حفظ امنیت داده میشود:
- احراز هویت: رمزنگاری کلید عمومی، یعنی مالک وب سایت دارای کلید خصوصی در قسمت مجوز Transport Layer Security یا TLS است. پس کاربران میدانند که به یک سایت هوشمند و امن متصل شدهاند.
- یکپارچگی: با وجود رمزنگاری میدانید که کاربران غیرمجاز دخالتی در حین انتقال یا ذخیره سازی داده ندارند. بنابراین مطمئن هستند که دادهها در حین انتقال از فرستنده به گیرنده بدون تغییر میمانند.
- محرمانه بودن: رمزنگای باعث کدگزاری داده شده و مانع از افشای آنها میشود. بنابراین هکرهای مخرب یا هر شخص غیرمجاز دیگری در زمان استراحت یا انتقال دادهها به آنها دسترسی پیدا نمیکند.
- امنیت: رمزنگاری باعث تضمین امنیت دادهها حتی در صورت دزدیده شدن یا گم شدن دستگاه ذخیرهسازی داده میشود. بنابراین رخنهای در دادهها ایجاد نشده و امکان تعامل امن میان طرفین فراهم میشود.
- مقررات: سازمانها با کمک رمزنگاری میتوانند استانداردهای صنعتی در حوزه حفظ امنیت دادهها را فراهم کنند. برای مثال به استاندارد امنیت دادههای کارت اعتباری (PCI DSS) یا قانون جابجایی یا پاسخگویی بیمه سلامت (HIPAA) پایبندی میمانند.
امنیت داده، محور فناوری مدرن است. اطلاعات با کمک رمزنگاری به طور امن در میان نهادهای مختلف جابجا شده و این فرایند بخش اصلی هر برنامه خوب در زمینه امنیت داده است.
مطلب پیشنهادی: دیفای (امور مالی غیرمتمرکز) چیست؟
عملکرد رمزنگاری چگونه است؟
رمزنگاری از چندین الگوریتم برای کدگذاری داده استفاده میکند. برای مثال پیامی مثل این که «اسمم بهنام است» باید به صورت متن رمزی «fweji2j320wfeoi93dfs»درآید. هنگامی که پیام به گیرنده میرسد، گیرنده از کلید برای رمزگشایی آن استفاده میکند.
چند عبارت مهم در زمینه درک رمزنگاری به شرح زیر هستند:
- الگوریتم رمزنگاری: این الگوریتم تحت عنوان رمز (cipher) هم شناخته میشود. الگوریتم مجموعهای از قواعد برای فرایند رمزنگاری است. این الگوریتمها حاوی طول کلید، ویژگیها و کارکردهای مشخصی هستند تا رمزنگاری اثربخشی حاصل شود.
- رمزگشایی (Decryption): فرایند تبدیل متن رمزی به متن عادی است.
- کلید رمزنگاری: توالی تصادفی از کاراکترها که برای رمزنگاری یا رمزگشایی داده به کار میرود. معمولاً کلیدهای خصوصی 128 یا 256 بیتی هستند و کلیدهای عمومی 2048 بیتی هستند.
رمزنگاری بر اساس پروتکل امن انتقال فرامتن (HTTPS) عمل میکند تا امنیت روابط میان کاربر و سرور درون شبکه را تضمین کند. پروتکلهای HTTPS از پروتکل رمزنگاری TLS استفاده میکنند که در سالهای اخیر تحت حمایت Secure Sockets Layer یا SSL قرار گرفته است.
- نکته: هر وبسایتی که از پروتکل HTTPS پشتیبانی میکند درون آدرس URL خودش از https به جای http استفاده میکند. بنابراین هنگام اتصال به این وب سایتها یک نماد قفل را درون نوار آدرس مشاهده خواهید کرد. به ابتدای آدرس کارلنسر در بالای همین مقاله نگاهی بیندازید. 🙂
رمزنگاری متقارن در برابر نامتقارن
تفاوت اصلی بین دو نوع متقارن (Symmetric) و نامتقارن (asymmetric) در به کارگیری کلیدها نهفته است.
رمزنگاری متقارن از یک کلید برای رمزنگاری و رمزگشایی استفاده میکند. پس یک رمز مشترک برای کدگذاری و کدگشایی وجود دارد. الگوریتمهای رمزنگاری متقارن پیچیدگی کمتری دارند و سریعتر اجرا میشوند. بنابراین گزینه خوبی برای جابجایی انبوهی از دادهها هستند.
این الگوریتمها از رمزهای block یا Stream استفاده میکنند. برای مثال، استاندارد رمزنگاری پیشرفته (AES) از حجم بلوک 128 بیتی (یا 192 و 256 بیتی) استفاده میکند که در آن تعداد بیتها به عنوان یک واحد، رمزنگاری میشود.
یکی از مشکلات رمزنگاری متقارن، فرسودگی کلید(Key exhaustion) است؛ یعنی یک کلید به دفعات مورد استفاده قرار میگیرد. اگر از سلسله مراتب یا چرخش مناسب کلید استفاده نکنیم، اطلاعات در معرض سوء استفاده هکرها قرار میگیرند. نمونههای رمزنگاری متقارن شامل RCA، DES، 3DES و غیره است.
رمزنگاری نامتقارن هم تحت عنوان کریپتوگرافی کلید عمومی یا رمزنگاری کلید عمومی شناخته میشود که از یک جفت کلید شامل کلید عمومی و کلید خصوصی استفاده میکند.
مطلب پیشنهادی: پول هوشمند چیست؟
کلید عمومی برای رمزی کردن پیام استفاده میشود و در دسترس همه قرار دارد. در عوض کلید خصوصی برای رمزگشایی پیام استفاده شده و تنها در اختیار سازنده کلید قرار دارد تا حریم خصوصی کاربر حفظ شود. هر دوی این کلیدها به لحاظ ریاضی با هم در ارتباط قرار دارند، ولی نمیتوانید کلید خصوصی را از کلید عمومی به دست آورید.
رمزنگاری نامتقارن بسیار پیچیده و وقت گیر است، ولی امنیت عالی در مقایسه با نوع متقارن دارد. طول کلیدهای نامتقارن به نسبت بزرگتر است. برای مثال، کلید Rivest-Shamir-Adleman یا RSA به 2048 بیت هم میرسد. کلیدهای نامتقارن دیگری از جمله Diffie-Hellman، نمودار Elliptis و غیره هم وجود دارد.
فهرست الگوریتمهای رمزنگاری
الگوریتمها از کلیدهایی با اندازهها، پیچیدگی و روشهای رمزی کردن و رمزگشایی متفاوت استفاده میکنند. در ادامه به برخی از آنها اشاره میکنیم.
AES
مخفف استاندارد رمزنگاری پیشرفته (Advanced encryption Standard) است که تحت عنوان Rijndeal هم شناخته میشود. این رمز مطمئن مورد تأیید آژانس امنیت ملی ایالات متحده آمریکا (NSA) در زمینه حفاظت از اطلاعات حساس قرار دارد. این الگوریتم، متقارن است و از یک کلید برای رمزی کردن و رمزگشایی دادهها استفاده میکند.
رمزنگاری AES با داشتن کلیدهایی در اندازه مختلف و ترکیبهای متفاوت، ساده شده است. سه طول رایج AES به شرح زیر است:
1.طول 12 بیتی با ترکیبهای 3/4×1038
2.طول 192 بیتی با ترکیبهای 6/2×1057
3.طول 256 بیتی با ترکیبهای 1/1×1077
الگوریتم 256 بیتی AES در موارد نیازمند به امنیت بالا مورد استفاده قرار میگیرد. با این که طول کلیدهای متفاوتی در دسترس قرار دارند ولی AES 256 بیتی قدرتمندترین است. با این حال استفاده از آن در همه جا، هوشمندانه نیست. برای مثال، اپلیکیشنی که از این نوع AES استفاده میکند، باتری گوشی شما را سریعتر از اپلیکیشن دارای AES 128 بیتی تخلیه میکند.
Triple DES
استاندارد رمزنگاری تریپل DES (BDES) برای هر بلوکه داده از الگوریتمهای رمزی سه برابری استفاده میکند تا بالاترین سطح امنیت را فراهم کند. فرم اصلی DES به صورت بلوک 64 بیتی و 56 بیتی بوده که به همین خاطر امنیت کمتری داشت. ولی 3DES برای تقویت امنیت با طول سه برابری رمز 56 بیتی ارائه شد که امنیتی در حدود رمز 112 بیتی را فراهم میکند. سه کلید در 3DES شامل K1، K2 و K3 هستند که سه مرتبه به رمز کردن داده میپرازند.
این رمزنگاری در دهه 1990 مرسوم بود؛ ولی با معرفی استانداردهای امنتری مثل AES از رده خارج شد.
SNOW
رمز استریم مبتنی بر کلمه و روی کلیدهای 32 بیتی و 256 بیتی عمل میکند. الگوریتم SNOW هیچگونه مالکیت معنوی یا محدودیت خاص دیگری ندارد.
عبارت آغازین این رمز، کوتاه است و عملکردی عالی در پردازشگرهای 32 بیتی و سخت افزاری دارد.
سه نوع از الگوریتم SNOW به شرح زیر است:
- SNOW1/0 در پروژه eSTREAM مورد استفاده قرار گرفت که پروژهای تحت حمایت شبکه EU Encrypt برای شناسایی رمزهای جدید با کاربری گسترده بود.
- SNOW2/0 رمزی استریم برای استاندارد سازمان بین المللی استانداردسازی یا کمیسیون بین المللی الکتروتکنیک یعنی ISO/IEC 18033 است.
- SNOW 3G به عنوان رمز استریم برای الگوریتمهای 3GPP،UAE2 و UIA2 انتخاب شد.
Diffie-Hellman Key exchange
این کلیدT تحولی در رمزنگاری کلید عمومی است که به طرفین امکان تولید کلید مشترک و برقراری ارتباط امن در یک کانال ناامن را میدهد. دو طرفی که از این کلید استفاده میکنند، قبل از آن هیچ ملاقاتی با هم نداشتهاند.
کلید Diffie-Hellman میتواند امکان تبادل امن رمز و رازها را فراهم کند. پس از این کلید میتوان برای انتقال امن اطلاعات استفاده کرد.
RSA
کلید RSA خلاصه شده Rivest-Shamir-Adleman است که نوعی رمزنگاری نامتقارن در کامپیوترهای مدرن است. این الگوریتم حاصل از این ایده بود که یافتن عوامل درون ترکیب بزرگی از اعداد، دشوار است.
این الگوریتم حاوی کلید عمومی است. کلید خصوصی آن مخفی است و به راحتی با توجه به کلید عمومی قابل محاسبه نیست. معمولاً رمزنگاری RSA در کنار سایر طرحهای رمزنگاری یا امضاهای دیجیتال به کار میرود. به طور معمول از آن برای رمزنگاری پیام پیچیده استفاده نمیشود، چون کارایی ندارد و ساختار منبع سنگینی دارد.
Elliptic curve cryptography
الگوریتم ECC از ریاضیات نمودارهای Elliptic برای تولید جفت کلیدهای مناسب رمزنگاری کلید عمومی استفاده میکند. این الگوریتم جایگزین RSA شد؛ چون اندازه کمتر و توانایی امنیتی خوبی داشت.
کلیدهای ECC قویتر هستند و سریعتر از RSA عمل کرده و به حافظه کمتری نیاز دارند. با این که امنیت بالاتری دارند، ولی اجرای آنها ساده نیست. نمودار یادگیری دشوارتری دارند و رسیدن به نتیجه عملی زمان بیشتری میبرد.
مطلب پیشنهادی: الگوریتم جست و جوی باینری
Quantum Key distribution
الگوریتم QKD از مکانیسمهای کوانتوم در کنار پروتکل رمزنگاری استفاده میکند تا طرفین با کلید مشترک تصادفی و به طور ایمن با هم ارتباط برقرار کنند.
این کلید به جای دشواری توابع ریاضی بر سازوکار کوانتوم تکیه دارد. مشکل استفاده از QKD اتکای آن بر تبادل قبلی کلید متقارن یا کلید عمومی است. اگر قبلاً تبادلی وجود داشته، پس طرفین میتوانند ارتباط امنی را با استفاده از AES و بدون استفاده از کلید کوانتوم برقرار کنند.
طرفین ارتباط میتوانند از QKD برای تولید و انتشار یک کلید استفاده کنند و بعد از الگوریم دیگری مثل AES برای رمزی کردن یا رمزگشایی پیام استفاده کنند.
Blowfish
الگوریتم Blowfish یک رمز بلوکه متقارن (64 بیتی) است که از کلیدهایی با طول مختلف از 32 بیتی تا 448 بیتی استفاده میکند. این الگوریتم فاقد مالکیت معنوی و دارای مجوز رایگان است و هر کسی قادر به استفاده از آن هست.
رمزنگاری آمریکایی بروس اشنایر (Bruce Schneier) این الگوریتم را در سال 1993 طراحی کرد. این الگوریتم دارای سرعت رمزنگاری قابل ملاحظه و قدرت دفاعی بالا است. با اینکه AES به عنوان الگوریتم رمزنگاری برجسته در این صنعت محسوب میشود؛ ولی بروس، الگوریتم Twofish را برای اپلیکیشن های مدرن طراحی کرد.
یکی از نقاط ضعف این الگوریتم آسیب پذیری آن در برابر حملات تولد (در زمینههایی مثل HTTPS) است. چون اندازه بلوک آن 64 بیای است. حمله SWET32 در سال 2016 نشان داد که هکرها چگونه میتوانند با اجرای حملات تولد در برابر رمزهای دارای بلوک 68 بیتی، متن اصلی را بازیابی کنند.
حملات تولد (Birthday Attacks) نوعی حمله رمزنگاری شده است که از اصول ریاضی که در پشت مسأله تولد قرار گرفته برای سوء استفاده از روابط طرفین بهره میبرد. مسأله تولد در نظریه احتمال مطرح است.
Twofish
این الگوریتم متقارن از بلو: 68 بیتی و کلیدهایی تا 256 بیت استفاده میکند. بروس اشنایر در سال 1988 این الگوریتم را ایجاد کرد و تیم Twofish را توسعه داد. این الگورتم برای کلیدهای 128 بیتی کندتر از AES عمل میکند. ولی به نسبت برای کلیدهای 256 بیتی سریعتر عمل میکند.
الگوریتم Twofish بسیار انعطاف پذیر است و امکان عملکرد همزمان چند لایه را فراهم میکند. عملکرد این الگوریتم به سرعت، حافظه، تنظیمات کلید، سخت افزار مورد استفاده و سایر پارامترها و ابسته است. این الگوریتم به طور رایگان در اختیار هر کسی قرار دارد و فاقد مالکیت معنوی است.
انواع رمزنگاری
انواع مختلف رمزنگاری مناسب انواع کاربری، زیر ساخت و پارامترهای دیگر وجود دارد. برخی از متداولترینها به شرح زیر هستند:
- Encryption as service (EaaS): برای کاربرانی که فاقد منابع مدیریت رمزنگاری هستند، امکان تبعیت از مقررات و ایمنی دادهها در محیطهای چندگانه را فراهم میکند.
- Bring your own encryption (BYOE): برای کاربران خدمات کلودی که میخواهند نرم افزار و کلیدهای رمزنگاری خودشان را مدیریت کنند؛ مناسب است.
- Cloud Storage encryption: تأمین کنندگان خدمات کلود برای رمزی کردن دادهها با کمک الگوریتمها و ذخیره سازی آنها از این نوع رمزنگاری استفاده میکنند.
- Deniable encryption: امکان رمزگشایی متن رمزی را به دو یا چند روش بر اساس کلید رمزنگاری که یک طرف دارد، فراهم میکند.
- Column-level encryption: در جایی که هر سلول درون پایگاه داده در یک ستون قرار میگیرد و پسورد خاصی دارد، مناسب است.
- Field-level encryption: رمزنگاری داده را براساس فیلد خاصی از یک صفحه وب مدیریت میکند. برای مثال، رمزی کردن کدهای ملی، کدهای بیمه، شماره کارتهای اعتباری و غیره را انجام میدهد.
- End-to-end encryption (E2EE): برای اعتماد از عدم دسترسی کاربر غیرمجاز به رابطه طرفین طراحی شده است. این الگوریتم از مدار ارتباطی رمزنگاری شده استفاده میکند که در آن نرم افزار مشتری، پیام را رمزنگاری کرده و گیرنده هم هنگامیکه پیام را دریافت میکند به رمزگشایی میپردازد.
- Full-disc encryption (FDE): در سطح سخت افزار عمل کرده و تمامی دادههای روی دیسک را به فرمت قابل درک تبدیل میکند تا طرف مقابل تنها با کلید احراز هویت به آن دسترسی پیدا کند.
- Network-level encryption: از طریق پروتکل امنیتی اینترنت (IPSes) عمل میکند تا از امنیت روابط در لایه انتقالی شبکه اطمینان پیدا کند.
- Link-level encryption: از رمزنگاری داده در حین انتقال داده و رمزگشایی آن در حین رسیدن به لینک یا نقطه اتکای مدنظر اطمینان پیدا میکند. هنگامی که داده به لینک بعدی یا نقطه اتکای دیگری منتقل میشود، دوباره رمزنگاری میشوند.
- Hypertext Transfer Protocol Secure: از رمزی شدن تمامی محتوای ارسالی سرور وب اطمینان یافته و مجوز کلید عمومی نصب شده را اصلاح میکند.
- Homomorphic encryption: داده را به متن رمزی قابل پردازش تبدیل میکند و کاربران میتوانند عملیاتهای پیچیده را روی داده اجرا کنند.
فواید رمزنگاری
فناوری رمزنگاری به حفاظت از دادههای شما کمک میکند. این فناوری تاریخچهای به قدمت روابط انسانی دارد. مصریان باستان برای مخفی کردن معنای واقعی کلمات از هیروگلیفت های غیراستاندارد استفاده میکردند که به 1900 سال قبل از میلاد باز میگردد. در رمزنگاری مدرن هم از همین ایده قدیمی استفاده شده است.
محرمانه بودن و یکپارچگی دادهها در حین انتقالشان بین شبکهها فراهم شده و نشانگر قانونمندی کسب و کار است. برای مثال PCI DSS نیازمند رمزنگاری جزئیات کارت اعتباری مشتری به منظور نگهداری و انتقال اطلاعات است.
50 درصد از سازمانها دارای راهبرد رمزنگاری کلی هستند که در کل شرکت اجرا میشود. بعلاوه رمزنگاری از اطلاعات حساسی مثل اطلاعات شخصی حفاظت میکند. با این فناوری از دادههای مشتریان در برابر هکرها یا خرابکارها محافظت میکنید.
چالشهای پیش روی رمزنگاری
این فناوری یک از سرمایههای امنیتی هر کسب و کاری است. این فناوری بخشی از روشهای امنیتی قید شده در برنامه امنیت سایبری سازمان است. اجرای این برنامه چالشهای خاص خودش را دارد.
نقطه ضعف هر برنامه امنیتی، وجود انسان است. با اینکه رمزنگاری به لحاظ ریاضی باعث حفظ امنیت میشود ولی کاربر انسانی به خاطر پیچیدگی این الگوریتمها یا به اشتراک گذاری ناامن کلیدهای رمزی به این امنیت لطمه میزند.
رمزنگاری به عنوان بخشی از برنامه امنیتی باید کنار سایر روشهای امنیتی مثل نرم افزار امنیتی، نرم افزار SIEM و غیره به کار رود. شاید این ابزارها حس امنیت را برقرار کنند، ولی اگر به خوبی با یکدیگر یکپارچه و مدیریت نشوند، شکافهای امنیتی بزرگی را به وجود میآورند.
در نهایت . . .
رمزنگاری فرایند تبدیل متن و داده قابل فهم به متن رمزی است. عامل اصلی ابداع این فرایند افزایش امنیت دادههای محرمانه و مهم در روابط انسانی و کاری است. امروزه به لطف الگوریتمهای مختلف، رضایت کاربران و مشتریان از حفظ امنیت دادههای هویتی، مالی و غیره فراهم شده است. حالا امنیت دادههای کسب و کار شما چگونه تأمین میشود؟
منبع
https://www.g2.com/articles/what-is-encryption
یک دیدگاه
-
31 اردیبهشت 1403
با توجه به موضوع پروپوزالم مطالب مفید کاملا علمی و قابل استفاده بودند.
سپاسگزارم از نویسنده مقاله
دیدگاه شما