مدهای کاری رمزهای قطعه‌ای

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

بردار مقداردهی اولیه

یک بردار مقداردهی اولیه قطعه‌ای از بیت هاست که در بسیاری از مدها برای تصادفی کردن رمزنگاری استفاده می‌شود که موجب تولید متن‌های رمزشده متمایز، بدون نیاز به فرآیند کند تولید مجدد کلید، می‌شود. حتی اگر همان متن آشکار چندین بار رمز شده باشد. یک بردار مقداردهی اولیه (آی‌وی، IV) نیازمندی‌های امنیتی متفاوتی نسبت به کلید دارد، بنابراین آی‌وی معمولاً نیازی ندارد که مخفی باشد. به هر حال، در بسیاری از موارد، این بسیار اهمیت دارد که یک آی‌وی تحت یک کلید مشابه هرگز مجدداً استفاده نشود. برای CBC و CFB، استفاده کردن مجدد از یک آی‌وی برخی از اطلاعات را در مورد اولین قطعه متن آشکار، و درباره هرگونه پیشوند مشترکی که بین دو پیغام به اشتراک گذاشته می‌شود، نشت می‌دهد. برای OFB و CTR، استفاده مجدد از یک آی‌وی امنیت را به‌طور کامل از بین می‌برد. در مود CBC، هچنین آی‌وی بایستی در زمان رمزگذاری غیرقابل پیش‌بینی باشد؛ به‌طور خاص، عمل (سابقا) رایج استفاده مجدد از آخرین قطعه متن رمزشده پیغام به عنوان آی‌وی برای پیغام جدید ناامن است (به‌طور مثال این متد توسط SSL 2.0 استفاده می‌شد). اگر یک مهاجم پیش از آنکه متن آشکار بعدی را مشخص کند؛ آی‌وی را بداند (یا قطعه قبلی متن رمزشده را)، او می‌تواند حدس خود را درباره متن آشکار برخی از قطعه‌ها که با همان کلید قبلاً رمز شده بودند، امتحان کند (این حمله به نام حمله TLS CBC IV شناخته می‌شود).
به عنوان یک مورد خاص، اگر متن‌های آشکار همیشه به اندازه کافی کوچک باشند که در یک قطعه جا شوند (بدون افزونگی‌گذاری)، آنگاه در برخی از مودها (EBC، CBC، PCBC)، استفاده مجدد از آی‌وی تنها دو متن آشکار یکسان را نشت می‌دهد. این مسئله می‌تواند در مواردی مفید باشد که کسی امید دارد بتواند بدون رمزگشایی یا ذخیره کردن یک درهم ساز به‌طور جداگانه، شباهت را تست کند

افزونگی‌گذاری

یک رمز قطعه‌ای بر روی واحدهایی با اندازه ثابت(معروف به اندازه قطعه) عمل می‌کنند، اما پیغام‌ها در اندازه‌های متفاوتی از راه می‌رسند. بنابراین برخی از مدها (برای مثال ECB و CBC) نیازمند این هستند که قطعه آخر پیش از رمزگذاری افزونگی گذاری شود. چندین افزونگی‌گذاری نشان دهنده پایان کار است. ساده‌ترین روش این است که بایت‌های تهی را به متن آشکار اضافه کنیم تا زمانی‌که طولش مضربی از اندازه قطعه شود، اما باید دقت شود که طول اصلی متن آشکار می‌تواند بدست آید. مانند این است که، به‌طور مثال، اگر متن آشکاری یک رشته به سبک C باشد، شامل هیچ بایت تهی نباشد مگر در انتهای آن. متد اصلی DES قدری پیچیده تر از این است. این متد یک تک بیت به دنبال تعداد کافی بیت صفر برای پر کردن قطعه اضافه می‌کند؛ اگر پیغام در انتهای قطعه تمام شود، یک قطعه افزونگی‌گذاری کامل اضافه خواهد شد. پیچیده ترین‌ها طرح‌های CBC ویژه هستند از جمله سرقت متن رمزشده یا پایان دهی قطعه باقی مانده، که هیچ متن رمزشده اضافی در هزینه برخی از پیچیدگی‌های اضافی ایجاد نمی‌کند. بروس اشنایر و نیلز فرگوسن ۲ امکان را پیشنهاد دادند، هر دو ساده: الحاق یک بایت با ارزش ۱۲۸ (هگزادسیمال ۸۰) به دنبال تعداد کافی بایت‌های صفر که برای پر کردن قطعه آخر مورد نیاز است، یا بسط دادن قطعه آخر با n بایت که ارزش همگی n باشد.
مدهای CFB، OFB و CTR برای کار کردن با پیغام‌هایی که طولشان مضربی از اندازه قطعه نیست، نیازی به تدابیر ویژه‌ای ندارند، زیرا این مدها به وسیله XOR کردن متن آشکار با خروجی قطعه رمز عمل می‌کنند. آخرین قسمت قطعه متن آشکار XOR شده که با اولین چند بایت آخرین قطعه جریان کلید، یک قطعه متن رمزشده نهایی را تولید می‌کند که با آخرین قسمت قطعه متن آشکار هم اندازه‌است. این خصوصیت رمزگذاری جریانی آن‌ها را برای برنامه‌های کاربردی ای که مستلزم برابری اندازه داده متن رمزشده رمزگذاری و داده متن آشکار اصلی هستند، و برنامه‌های کاربردی ای که داده را در جایی که اضافه کردن بایت‌های افزونگی ناخوشایند است، به صورت جریانی انتقال می‌دهند، مناسب کرده‌است.

رمزنامه الکترونیکی

ساده‌ترین مود رمزنگاری مود رمزنامه الکترونیکی (ای‌سی‌بی، ECB) است. پیغام به قطعه‌ها شکسته می‌شود و هر قطعه به‌طور جداگانه رمزگذاری می‌شود.
نقطه ضعف این متد این است که قطعه‌های یکسان متن آشکار به قطعه‌های رمز شده یکسانی تبدیل می‌شوند. ؛ بنابراین، الگوی داده‌ای را به خوبی پنهان نمی‌کند. در برخی موارد، محرمانه بودن پیام‌های مهم را فراهم نمی‌کند. از این رو این متد برای استفاده در پروتکل‌های رمزنگاری به هیج وجه توصیه نمی‌شود.
یک مثال خوب از اینکه کدام ای‌سی‌بی تا چه درجه‌ای الگوری داده‌ای متن آشکار را در متن رمزشده باقی می‌گذارد را می‌توان هنگامی مشاهده کرد که مد ای‌سی‌بی برای رمزگذاری یک عکس بیت مپی استفاده می‌شود که در آن از رنگ‌های مختلفی استفاده شده‌است. در حالیکه هر پیکسل منحصربفرد رمزگذاری می‌شود، کل تصویر به شکل الگویی از پیکسلهای رنگی در تصویر اصلی در نسخه رمزگذاری شده قابل تشخیص باقی می‌مانند.
مد ای‌سی‌بی همچنین می‌تواند پروتکل‌هایی بدون حفظ صحت را فراهم کند که بیشتر به حمله تکرار حساس هستند، چراکه هر قطعه دقیقا به طریق یکسانی رمزگشایی می‌شود. به‌طور مثال، بازی ویدئویی آنلاین «دنیای فانتزی ستاره: انفجار آبی» از بلوفیش در مد ای‌سی‌بی استفاده می‌کند. پیش از آنکه کلید جابجا شود سیستم به روش‌های بسیار ساده‌ای شکسته شده بود، متقلبان بسته پیغام رمزشده «غول کشته شد» را، هرکدام به صورت یک قطعه رمزشده بلوفیش، برای بدست آوردن سریع و غیرمشروع امتیاز مرتبا تکرار می‌کردند.