موضوع مقاله: تفکیک‌ناپذیری متن رمزنگاری‌شده | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تفکیک‌ناپذیری متن رمزنگاری‌شده | مقدمه: به صورت شهودی، اگر یک سیستم رمزنگاری مشخصه‌ی تفکیک‌ناپذیری را داشته باشد، مهاجم نمی‌تواند بر اساس پیامی که رمزنگاری شده، جفت متن‌های رمزنگاری‌شده را از هم تمیز دهد. | ## بخش 1: تفکیک‌ناپذیری متن رمزنگاری‌شده | در بیشتر سیستم‌هایی که امنیت قابل اثباتی دارند و از رمزنگاری کلید عمومی استفاده می‌کنند، این مشخصه تحت حمله با متن اصلی منتخب یک پیش‌نیاز اساسی محسوب می‌شود، اگرچه برخی از رویه‌ها تحت حمله با متن رمز منتخب و حمله با متن رمز منتخب انطباقی نیز تفکیک‌ناپذیری ارائه می‌دهند. تفکیک‌ناپذیری تحت حمله با متن اصلی منتخب معادل خاصیت امنیت معنایی است، و بسیاری از اثبات‌هایی که در حوزه‌ی رمزنگاری هستند از این تعریف‌ها به صورت متقابل استفاده می‌کنند. فرض کنید یک مهاجم، رمزنگاری یک پیام (که به صورت رندوم ازفضای پیام دو عنصری‌ای که خود مهاجم تعیین کرده انتخاب شده) را داشته باشد. اگر هیچ مهاجمی نتواند انتخاب پیام را با احتمالی که از احتمال رندوم بسیار بیشتر باشد تشخیص دهد، آن‌گاه سیستم رمزنگاری استفاده‌شده از لحاظ تفکیک‌پذیری امن است. اگر هر مهاجمی بتواند در تفکیک متن رمزشده‌ی منتخب با احتمالی بسیار بیشتر از رندوم موفق شود، آن‌گاه گفته می‌شود که مهاجم در زمینه‌ی تفکیک متن رمزنگاری‌شده یک «برتری» دارد، و همچنین رویه‌ی استفاده‌شده نیز از لحاظ تفکیک‌پذیری یک رویه‌ی امن محسوب نمی‌شود. همچنین این تعریف، این ایده را توضیح می‌دهد که در یک رویه‌ی امن، مهاجم نباید با دیدن متن رمزنگاری‌شده قادر باشد اطلاعاتی به دست بیاورد. تعریف‌های رسمی امنیت از لحاظ تفکیک‌پذیری، بسته به فرضیاتی که راجع به توانایی‌های مهاجم در نظر گرفته می‌شود، تعاریف بسیاری دارد. بازی به این صورت است که سیستم رمزنگاری امن محسوب می‌شود، اگر هیچ مهاجمی نتواند بازی را با احتمالی بسیار بیشتر از رندوم برنده شود. متداول‌ترین تعاریفی که در رمزنگاری استفاده می‌شوند عبارتند از تفکیک‌ناپذیری تحت حمله با متن اصلی منتخب (یا به صورت مخفف IND-CPA)، تفکیک‌ناپذیری تحت حمله‌ی غیرانطباقی با متن رمزنگاری‌شده‌ی منتخب (IND-CCA1) و تفکیک‌ناپذیری تحت حمله‌ی انطباقی با متن رمزنگاری‌شده‌ی منتخب (IND-CCA2). تفکیک‌ناپذیری تحت حمله با متن اصلی منتخب (IND-CPA) برای یک الگوریتم رمزنگاری نامتقارن احتمالاتی با کلید، تفکیک‌ناپذیری تحت حمله با متن اصلی منتخب (IND-CPA) با بازی ذیل بین یک مهاجم و یک «چالش‌گر» تعریف می‌شود. برای رویه‌هایی که بر پایه‌ی امنیت محاسباتی به وجود آمده‌اند، مهاجم به وسیله‌ی یک ماشین تورینگ با زمان چندجمله‌ای احتمالاتی مدل‌سازی می‌شود. این به این معنا است که مهاجم باید در زمانی چندجمله‌ای بازی را تمام کند و یک حدس ارائه بدهد. در این تعریف E(PK, M) نشان‌دهنده‌ی رمزنگاری یک پیام M با کلید PK است: چالش‌گر بر اساس یک پارامتر امنیتی (به عنوان مثال تعداد بیت‌های کلید) یک جفت کلید PK, SK تولید می‌کند. چالش‌گر یک بیت (b) را به صورت رندوم و با توزیع یک‌نواخت از بین صفر و یک انتخاب می‌کند. یک سیستم رمزنگاری را تفکیک‌ناپذیر تحت حمله با متن اصلی منتخب می‌گوییم، هرگاه همه‌ی مهاجم‌های با مرتبه‌ی زمانی چندجمله‌ای احتمالاتی تنها بتوانند مقدار ناچیزی از رندوم بهتر عمل کنند. زمانی می‌گوییم یک مهاجم مقدار ناچیزی از رندوم بهتر عمل کرده است که بازی را با احتمال ببرد. این به این معنی است که برای همه‌ی تابع‌های چندجمله‌ای غیر صفر یک وجود دارد به صورتی که به ازای همه‌ی بدانیم که . | ## بخش 2: تفکیک‌ناپذیری متن رمزنگاری‌شده | اگرچه مهاجم ، و PK را می‌داند، ولی ذات احتمالاتی E به این معنی است که رمزنگاری تنها یکی از همه‌ی متن‌های رمزنگاری‌شده‌ی معتبر خواهد بود. بنابراین رمزنگاری و و مقایسه‌ی نتایج رمزنگاری با متن رمزنگاری‌شده‌ی چالش به مهاجم برتری قابل توجهی نمی‌دهد. با این که تعریف فوق تنها به یک سیستم رمزنگاری نامتقارن با کلید اختصاص داشد، ولی می‌توان آن را با حالت متقارن نیز منطبق کرد. ماشین اوراکل کلید خصوصی را پیش خود حفظ می‌کند، و هر متن دل‌خواهی که مهاجم انتخاب کند را رمزنگاری کرده و به او برمی‌گرداند. بازی IND-CPA متقارن، تعریف رسمی فرایند رقابتی انجام یک حمله با متن اصلی منتخب معمولاً در قالب یک بازی رمزنگاری تشریح می‌شود. بازی به صورت زیر تعریف می‌شود: بی‌قاب|300x300پیکسل مهاجم به هر تعداد باری که بخواهد دو پیام بدون رمز را به انتخاب خودش در نظر می‌گیرد و آن‌ها را به LR Oracle می‌دهد. b یک مقداری است که ابتدای فرایند به صورت رندوم انتخاب می‌شود، و مشخص می‌کند که چه پیامی به وسیله‌ی LR ORacle رمز می‌شود. در این حالت علاوه بر کلید عمومی (یا در رمزنگاری متقارن، اوراکل رمزنگاری)، مهاجم به اوراکل رمزگشایی نیز دسترسی دارد. کار این اوراکل این است که یک متن دل‌خواه رمزنگاری‌شده را تحویل می‌گیرد و متن اصلی را خروجی می‌دهد. در تعریف غیرانطباقی، مهاجم تا زمانی که متن رمزنگاری‌شده‌ی چالش را تحویل نگرفته می‌تواند از این اوراکل استفاده کند. در تعریف انطباقی، مهاجم می‌تواند به رمزگشایی متون دل‌خواه خود ادامه بدهد، حتی زمانی که متن رمزنگاری‌شده‌ی چالش را دریافت کرده است. البته شرطی وجود دارد، این که مهاجم نمی‌تواند عیناً متن رمزنگاری‌شده‌ی چالش را برای رمزگشایی به اوراکل بدهد. چالش‌گر با در نظر گرفتن یک پارامتر امنیتی (به عنوان مثال تعداد بیت‌های کلید) یک جفت کلید PK, SK تولید می‌کند. مهاجم می‌تواند هر تعداد باری که می‌خواهد عملیات رمزنگاری، عملیات رمزگشایی (با کمک اوراکل رمزگشایی و با هر متن دل‌خواه) و یا عملیات دیگری را انجام دهد. در نهایت، مهاجم دو متن دل‌خواه و بدون رمز را انتخاب کرده و به چالش‌گر اعلام می‌کند. چالش‌گر یک بیت را به صورت رندوم و با توزیع یک‌نواخت از بین صفر و یک انتخاب می‌کند. در حالت غیرانطباقی (IND-CCA1)، مهاجم دیگر نمی‌تواند از اوراکل رمزگشایی استفاده کند. | ## بخش 3: تفکیک‌ناپذیری متن رمزنگاری‌شده | در حالت انطباقی (IND-CCA2) مهاجم باز هم می‌تواند از اوراکل رمزگشایی استفاده کند، با این شرط که نباید عیناً متن رمزنگاری‌شده‌ی چالش را رمزگشایی کند. تفکیک‌ناپذیری نسبت به نویز تصادفی گاهی اوقات ما به رویه‌های رمزنگاری‌ای احتیاج داریم که در آن‌ها رشته‌ی متن رمزنگاری‌شده از رشته‌ای که به صورت تصادفی به وسیله‌ی مهاجم تولید شده قابل تفکیک نباشد. اگر مهاجم قادر به تشخیص این که آیا یک پیام وجود دارد یا نه نباشد، آن‌گاه فردی که پیام را نوشته است انکاری محتمل و قابل قبول خواهد داشت. بعضی از افرادی که لینک‌های ارتباطی رمزنگاری‌شده را می‌سازند ترجیح می‌دهند که کاری کنند که محتویات هر بسته‌ی اطلاعاتی که رد و بدل می‌شود از اطلاعات تصادفی قابل تفکیک نباشد. بعضی از افرادی که مسئول ساختن سیستم‌های مخصوص نگهداری اطلاعات رمزنگاری‌شده هستند، ترجیح می‌دهند که کاری کنند که اطلاعاتی که نگهداری می‌کنند از اطلاعات تصادفی قابل تفکیک نباشند. به عنوان مثال برخی از برنامه‌هایی که روی دیسک‌ها عملیات رمزنگاری انجام می‌دهند (مثل TrueCrypt) تلاش می‌کنند که اطلاعات را در اطلاعات تصادفی‌ای پنهان کنند که ممکن است از پاک کردن اطلاعات قبلی به جا مانده باشند. به عنوان یک مثال دیگر، برخی از روش‌های پنهان‌نگاری تلاش می‌کنند کاری کنند که اطلاعاتی که می‌خواهند پنهان کنند با مشخصه‌های آماری نویز تصادفی عکس‌ها در عکس‌های دیجیتال مطابقت داشته باشد. برای پشتیبانی از سیستم چنین رمزنگاری‌هایی که سیستم رمزنگاری قابل انکار نامیده می‌شوند، تعدادی الگوریتم رمزنگاری وجود دارد که به صورت مخصوص به این هدف طراحی شده‌اند که متن رمزنگاری‌شده از یک رشته‌ی تصادفی قابل تفکیک نباشد. بیشتر کاربردها به گونه‌ای هستند که به الگوریتمی که بتواند پیام رمزنگاری‌شده‌ای تولید کند که از یک رشته یا بیت‌های تصادفی قابل تشخیص نباشد، نیاز ندارند. با این حال، برخی نویسندگان اعتقاد دارند که چنین الگوریتم‌های رمزنگاری‌ای از لحاظ مفهومی از الگوریتم‌های دیگر ساده‌تر هستند، و کار کردن با آن‌ها نیز راحت‌تر است. علاوه بر این موارد، این الگوریتم‌ها در عمل نیز کاربردهای بیشتر و وسیع‌تری دارند. این طور که به نظر می‌آید بیشتر الگوریتم‌های رمزنگاری IND-CPA عملاً می‌توانند پیام رمزنگاری‌شده‌ای تولید کنند که از یک پیام با بیت‌های رندوم قابل تفکیک نباشند. هم‌ارزی‌ها و دلالت‌ها تفکیک‌ناپذیر بودن، برای حفظ محرمانه بودن ارتباطات رمزنگاری‌شده مشخصه‌ی مهمی است. با این حال، مشخص شده است که در بعضی از حالت‌ها مشخصه‌ی تفکیک‌ناپذیر بودن بر مشخصه‌های امنیتی دیگری که به نظر بی‌ربط می‌آیند نیز اشاره می‌کند. این به این معنی است که دو تعریف با هم هم‌ارز هستند؛ به عنوان مثال اثبات شده است که مشخصه‌ی تفکیک‌ناپذیری تحت حمله با متن رمز منتخب انطباقی (IND-CCA2)، با انعطاف‌ناپذیری تحت همین حمله (NM-CCA2) هم‌ارز است. این هم‌ارزی در نگاه اول بدیهی نیست، چون که انعطاف‌ناپذیری مشخصه‌ای است که با درستی و تمامیت پیام کار دارد، در حالی که تفکیک‌ناپذیری مربوط به محرمانه بودن است. | ## جمع‌بندی | در حالت‌های دیگر، اثبات شده است که تفکیک‌ناپذیری می‌تواند با برخی از تعاریف دیگر ترکیب شود تا دلالت بر تعریف‌های مفید دیگری داشته باشد، و برعکس.