حمله متمایزکننده

از ویکی‌پدیا، دانشنامهٔ آزاد

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

یک مفهوم مشابه دیگر حمله متمایزکننده رمز مشخص است که به موجب آن مهاجم کلید را میداند و میتواند یک ویژگی ساختاری در رمزنگاری پیدا کند، در جایی که تبدیل متن اصلی به متن رمزنگاری شده تصادفی نیست.[۳]

دید کلی[ویرایش]

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

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

دو سیستم S و T متمایز گفته می شوند اگر الگوریتمی مانند D وجود نداشته باشد که پس از اجرا روی S یا T، بتواند تصمیم بگیرد که آیا با T یا S مرتبط است .

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

مثال ها[ویرایش]

یکی از مثال های کلاسیک از حمله متمایز کننده، بر روی یک رمز جریانی مشهور توسط ایتسِیک مَنتین و ادی شامیر صورت گرفت که نشان داد دومین بایت خروجی آر سی 4 به  شدت محتمل به صفر بودن است.[۴] در مثالی دیگر، سوریدییتی پُل و بارت پِرنییِل از COSIC نشان دادند که مقدار XOR اولین و دومین خروجی از آر سی 4 همچنین غیریکنواخت است. هر دو تئوری بالا می توانند توسط شبیه سازی کامپیوتری نشان داده شوند.[۵]

منابع[ویرایش]

  1. "Distinguishing Attack on MAG" (PDF). ENCRYPT Stream Cipher Project (به انگلیسی).
  2. Lecture Notes for Boston University CAS CS 538: Fundamentals of Cryptography.
  3. Elena Andreeva; Andrey Bogdanov; Bart Mennink (8 July 2014). Towards Understanding the Known-Key Security of Block Ciphers. FSE 2014.
  4. Itsik Mantin and Adi Shamir, A Practical Attack on Broadcast RC4. FSE 2001, pp152 – 164 (PS) بایگانی‌شده در ژوئن ۱۲, ۲۰۱۱ توسط Wayback Machine.
  5. Souradyuti Paul and Bart Preneel, Analysis of Non-fortuitous Predictive States of the RC4 Keystream Generator. INDOCRYPT 2003, pp52 – 67 (PDF).