آموزش

الگوریتم سایفر چیست؟ (تکنیکی برای رمزگذاری فوق سری)

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

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

الگوریتم سایفر چیست؟

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

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

Ciphertext چیست؟

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

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

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

انواع تبدیل در سایفرها

به طور سنتی، سایفرها از ۲ نوع تبدیل اصلی استفاده می‌کنند:

  • سایفر جابجایی، همه بیت‌های اصلی داده را در یک بایت نگه داشته اما ترتیب آن‌ها را با هم ترکیب و ادغام می‌کنند.
  • سایفرهای جایگزین، توالی یک سری داده‌های خاص را با توالی‌های دیگر جایگزین می‌کنند. 

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

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

انواع تبدیل در سایفرها

هدف الگوریتم سایفر چیست؟

الگوریتم سایفر و رمزهای متقارن اصولا برای ایمن ساختن ارتباطات آنلاین استفاده می‌شوند و گاهی نیز در برخی از پروتکل‌های شبکه‌های مختلف برای تبادل داده‌ها مورد استفاده قرار می‌گیرند. به عنوان مثال، Secure Sockets Layer و TLS از سایفر برای رمزگذاری داده‌های لایه برنامه استفاده می‌کنند. 

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

برخی از پروتکل‌ها نیز از رمزنگاری نامتقارن برای رمزگذاری و احراز هویت مانند TLS، HTTPS، Secure Shell، Open Pretty Good Privacy و Secure/Multipurpose Internet Mail Extensions استفاده می‌کنند. 

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

الگوریتم سایفر چگونه کار می‌کند؟

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

سایفرهایی که از کلیدهای طولانی‌تر استفاده می‌کنند، قاعدتا در برابر حملات brute-force مقاوم‌ترند؛ زیرا هرچه طول کلید بیشتر باشد، تلاش‌ بیشتری برای افشای متن ساده مورد نیاز است. اگرچه قدرت رمز همیشه به طول کلید وابسته نیست اما کارشناسان پیشنهاد می‌کنند رمزهای مدرن به گونه‌ای طراحی شوند که بسته به الگوریتم و موارد استفاده از آن، کلیدهای حداقل ۱۲۸ بیتی یا بیش‌تر در آن‌ها استفاده شوند.

در رمزنگاری نامتقارن یا رمزنگاری کلید عمومی، کلیدها اعداد بزرگی هستند که با هم جفت شده‌ اما یکسان نیستند (نامتقارن) که شامل خصوصیات زیر است:

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

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

الگوریتم سایفر چگونه کار می‌کند؟

انواع الگوریتم سایفر در کریپتوگرافی

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

  • سایفر بلوکی که داده‌ها را در بلوک‎هایی با اندازه مساوی رمزگذاری می‌کند.
  • سایفر جریان که اغلب از طریق شبکه دریافت و منتقل می‌شود.

سایفر می‌تواند به کلیدهای سنتی که مستقیماً برای متن رمزی کلید یا رمزنگاری منحنی بیضی (ECC) مورد استفاده‌اند، وابسته باشد. هنگامی که ECC با یک کلید ۱۶۰ بیتی استفاده می‌شود، امنیت یک رمز سنتی را ایجاد می‌کند، مانند سیستم رمزنگاری RSA که کلیدی به طول ۱۰۲۴ بیت در آن استفاده شده است.

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

نمونه ‌هایی از الگوریتم سایفر

در ادامه به نمونه‌هایی از الگوریتم سایفر اشاره می‌کنیم:

  • سزار (Caesar): این الگوریتم سایفر به ژولیوس سزار نسبت داده شده و گفته می‌شود که وی از آن برای برقراری ارتباط ایمن با ژنرال‌های خود استفاده می‌کرد. در این سایفر جایگزینی ساده،  هر کدام از حروف متن ساده به تعداد معینی از موقعیت‌های الفبا به پایین انتقال داده می‌شود. 
  • اتبش (Atbash): این سایفر نوعی رمز جایگزین است که در آن الفبای متن ساده روی خود اما به ترتیب معکوس قرار می‌گیرد. به عبارت دیگر، حرف متن ساده A به متن رمزی Z، B به Y، C به X و… نگاشته می‌شود. 
  • جایگزینی ساده (Simple substitution): این نمونه نیز برای صدها سال استفاده شده و هر متن ساده را با یک متن رمزی متفاوت جایگزین می‌کند و در واقع کلیدی ۲۶ کاراکتری است. 
  • ویژنر (Vigenère): این سایفر شکلی از جایگزینی چند الفبایی بوده و به معنی جایگزینی با استفاده از الفبای جایگزینی چندگانه است. سایفر Vigenère از یک سری رمزهای سزار پیچیده‌شده استفاده می‌کند که مبتنی بر حروف یک کلمه کلیدی است. متن اصلی با استفاده از مربع یا جدول Vigenère رمزگذاری می‌شود.
  • جایگزینی هموفونیک (Homophonic substitution): در این سایفر از چندین حرف متن رمزی مختلف برای جایگزینی حروف متن ساده استفاده می‌‌شود. شکستن این نوع سایفر اصولا بسیار دشوارتر از رمزهای جایگزین استاندارد به نظر می‌رسد.

نمونه ‌هایی از الگوریتم سایفر

سخن پایانی

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

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

الگوریتم سایفر چه کاربردی دارد؟

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

استفاده از الگوریتم سایفر به چه منظور است؟

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

امتیاز دهید:
دکمه بازگشت به بالا