موضوع مقاله: مدهای کاری رمزهای قطعه‌ای | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # مدهای کاری رمزهای قطعه‌ای | مقدمه: در رمزنگاری، مدهای کاری رویه‌هایی هستند که استفاده مکرر و امن از رمزگذاری قطعه‌ای تحت یک تک کلید را ممکن می‌سازند. | ## بخش 1: مدهای کاری رمزهای قطعه‌ای | یک رمزنگاری قطعه‌ای، به خودی خود تنها رمزگذاری یک تک قطعه داده از طول قطعه رمز را اجازه می‌دهد. وقتی که یک پیغام با طول متغیر را به سمت هدف ارسال می‌کنیم، داده ابتدا باید به قطعه‌های مجزای رمزگذاری تقسیم شود. معمولا، آخرین قطعه باید با استفاده از طرح افزونگی‌گذاریPadding بسط داده شود تا به اندازه طول قطعه رمزگذاری برسد. یک مد کاری رمزگذاری هر کدام از این قطعه‌ها را توضیح می‌دهد و به‌طور کلی از تصادفی‌سازی استفاده می‌کند که برای انجام کاملاً امن این کار، مبتنی بر یک ارزش ورودی افزوده، که معمولاً بردار اولیه خوانده می‌شود، می‌باشد. از نظر تاریخی، مدهای رمزنگاری به‌طور گسترده در رابطه با خصوصیات انتشار خطاهایشان تحت سناریوهای مختلف اصلاح داده مورد مطالعه قرار گرفتند. بردار مقداردهی اولیه یک بردار مقداردهی اولیه قطعه‌ای از بیت‌هاست که در بسیاری از مدها برای تصادفی کردن رمزنگاری استفاده می‌شود که موجب تولید متن‌های رمزشده متمایز، بدون نیاز به فرآیند کند تولید مجدد کلید، می‌شود. به هر حال، در بسیاری از موارد، این بسیار اهمیت دارد که یک آی‌وی تحت یک کلید مشابه هرگز مجدداً استفاده نشود. برای CBC و CFB، استفاده کردن مجدد از یک آی‌وی برخی از اطلاعات را در مورد اولین قطعه متن آشکار، و درباره هرگونه پیشوند مشترکی که بین دو پیغام به اشتراک گذاشته می‌شود، نشت می‌دهد. در مود CBC، هچنین آی‌وی بایستی در زمان رمزگذاری غیرقابل پیش‌بینی باشد؛ به‌طور خاص، عمل (سابقا) رایج استفاده مجدد از آخرین قطعه متن رمزشده پیغام به عنوان آی‌وی برای پیغام جدید ناامن است (به‌طور مثال این متد توسط SSL 2.0 استفاده می‌شد). اگر یک مهاجم پیش از آنکه متن آشکار بعدی را مشخص کند؛ آی‌وی را بداند (یا قطعه قبلی متن رمزشده را)، او می‌تواند حدس خود را درباره متن آشکار برخی از قطعه‌ها که با همان کلید قبلاً رمز شده بودند، امتحان کند (این حمله به نام حمله TLS CBC IV شناخته می‌شود). به عنوان یک مورد خاص، اگر متن‌های آشکار همیشه به اندازه کافی کوچک باشند که در یک قطعه جا شوند (بدون افزونگی‌گذاری)، آنگاه در برخی از مودها (EBC، CBC، PCBC)، استفاده مجدد از آی‌وی تنها دو متن آشکار یکسان را نشت می‌دهد. این مسئله می‌تواند در مواردی مفید باشد که کسی امید دارد بتواند بدون رمزگشایی یا ذخیره کردن یک درهم ساز به‌طور جداگانه، شباهت را تست کند افزونگی‌گذاری یک رمز قطعه‌ای بر روی واحدهایی با اندازه ثابت (معروف به اندازه قطعه) عمل می‌کنند، اما پیغام‌ها در اندازه‌های متفاوتی از راه می‌رسند. بنابراین برخی از مدها (برای مثال ECB و CBC) نیازمند این هستند که قطعه آخر پیش از رمزگذاری افزونگی گذاری شود. | ## بخش 2: مدهای کاری رمزهای قطعه‌ای | ساده‌ترین روش این است که بایت‌های تهی را به متن آشکار اضافه کنیم تا زمانی‌که طولش مضربی از اندازه قطعه شود، اما باید دقت شود که طول اصلی متن آشکار می‌تواند به دست آید. مانند این است که، به‌طور مثال، اگر متن آشکاری یک رشته به سبک C باشد، شامل هیچ بایت تهی نباشد مگر در انتهای آن. این متد یک تک بیت به دنبال تعداد کافی بیت صفر برای پر کردن قطعه اضافه می‌کند؛ اگر پیغام در انتهای قطعه تمام شود، یک قطعه افزونگی‌گذاری کامل اضافه خواهد شد. پیچیده‌ترین‌ها طرح‌های CBC ویژه هستند از جمله سرقت متن رمز شده یا پایان دهی قطعه باقی مانده، که هیچ متن رمزشده اضافی در هزینه برخی از پیچیدگی‌های اضافی ایجاد نمی‌کند. بروس اشنایر و نیلز فرگوسن ۲ امکان را پیشنهاد دادند، هر دو ساده: الحاق یک بایت با ارزش ۱۲۸ (هگزادسیمال ۸۰) به دنبال تعداد کافی بایت‌های صفر که برای پر کردن قطعه آخر مورد نیاز است، یا بسط دادن قطعه آخر با n بایت که ارزش همگی n باشد. مدهای CFB، OFB و CTR برای کار کردن با پیغام‌هایی که طولشان مضربی از اندازه قطعه نیست، نیازی به تدابیر ویژه‌ای ندارند، زیرا این مدها به وسیله XOR کردن متن آشکار با خروجی قطعه رمز عمل می‌کنند. آخرین قسمت قطعه متن آشکار XOR شده که با اولین چند بایت آخرین قطعه جریان کلیدKeystream، یک قطعه متن رمزشده نهایی را تولید می‌کند که با آخرین قسمت قطعه متن آشکار هم اندازه است. این خصوصیت رمزگذاری جریانی آن‌ها را برای برنامه‌های کاربردی‌ای که مستلزم برابری اندازه داده متن رمزشده رمزگذاری و داده متن آشکار اصلی هستند، و برنامه‌های کاربردی‌ای که داده را در جایی که اضافه کردن بایت‌های افزونگی ناخوشایند است، به صورت جریانی انتقال می‌دهند، مناسب کرده است. رمزنامه الکترونیکی ساده‌ترین مود رمزنگاری مود رمزنامه الکترونیکی (ای‌سی‌بی، ECB) است. |center |center نقطه ضعف این متد این است که قطعه‌های یکسان متن آشکار به قطعه‌های رمز شده یکسانی تبدیل می‌شوند؛ بنابراین، الگوی داده‌ای را به خوبی پنهان نمی‌کند. یک مثال خوب از اینکه کدام مود تا چه درجه‌ای الگوی داده‌ای متن آشکار را در متن رمزشده باقی می‌گذارد را می‌توان هنگامی مشاهده کرد که مد ای‌سی‌بی برای رمزگذاری یک عکس بیت‌مپی استفاده می‌شود که در آن از رنگ‌های مختلفی استفاده شده است. در حالی که هر پیکسل منحصربه‌فرد رمزگذاری می‌شود، کل تصویر به شکل الگویی از پیکسل‌های رنگی در تصویر اصلی در نسخه رمزگذاری شده قابل تشخیص باقی می‌مانند. مد ای‌سی‌بی همچنین می‌تواند پروتکل‌هایی بدون حفظ صحت را فراهم کند که بیشتر به حمله تکرار حساس هستند، چرا که هر قطعه دقیقا به طریق یکسانی رمزگشایی می‌شود. | ## بخش 3: مدهای کاری رمزهای قطعه‌ای | به‌طور مثال، بازی ویدئویی آنلاین «دنیای فانتزی ستاره: انفجار آبی» از بلوفیش در مد ای‌سی‌بی استفاده می‌کند. پیش از آنکه کلید جابجا شود سیستم به روش‌های بسیار ساده‌ای شکسته شده بود، متقلبان بسته پیغام رمزشده «غول کشته شد» را، هرکدام به صورت یک قطعه رمزشده بلوفیش، برای به دست آوردن سریع و غیرمشروع امتیاز مرتبا تکرار می‌کردند. در مد CBC، هر قطعه از متن آشکار را با قطعه رمزشده مقدم که قبلاً رمز شده‌است XOR می‌کند. به این صورت، هر قطعه رمزشده به تمام قطعات متن آشکاری که تا آن نقطه تولید شده‌اند وابسته‌است. بزرگ‌ترین مشکلاتش این است که رمزگذاری ترتیبی است (به عنوان مثال نمی‌تواند موازی انجام شود)، و این که پیغام باید به مضربی از اندازه قطعه رمزشده افزونگی شود. توجه داشته باشید که تغییر تنها یک بیت در متن آشکار یا بردار اولیه بر روی تمام قطعه‌های متن رمزشده بعدی تأثیر می‌گذارد. رمزگشایی با بردار اولیه نادرست اولین قطعه متن آشکار را خراب می‌کند اما قطعه‌های بعدی متن آشکار صحیح خواهند بود. این به این خاطر است که یک قطعه متن آشکار می‌تواند توسط دو قطعه مجاور متن رمزشده بازیابی شود. توجه داشته باشید که تغییر تنها یک بیت از متن رمز شده موجب خراب شدن تمام قطعات مربوط به متن آشکار شود، و بیت مربوط به قطعه بعدی متن آشکار را معکوس می‌کند اما باقی قطعه‌های دست نخورده باقی می‌مانند. انتشار زنجیری رمز-قطعه (PCBC) مد انتشار زنجیره رمز-قطعه یا زنجیره رمز-قطعه متن آشکار طراحی شد تا موجب تغییرات کوچکی در متن رمزشده برای انتشار نامحدود در هنگام رمزگشایی، همچنین در هنگام رمزگذاری شود. در پیغامی که با مد PCBC رمزگذاری شود، اگر دو قطعه متن رمزشده مجاور تغییر کنند، بر روی رمزگشایی سایر قطعه تأثیری نخواهد داشت. اگر کل یک قطعه از متن رمزشده گم شود هم CBC و هم CFB می‌توانند همگام شوند، اما اگر تنها یک بایت یا بیت گم شود دائما رمزگشایی را دور می‌اندازد! | ## جمع‌بندی | برای اینکه با گم شدن تنها یک بایت یا بیت قادر به همگام‌سازی باشد، یک تک بایت یا بیت باید در یک زمان رمزگذاری شوند.