رمزنگاری چندگانه

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

## کلیدهای مستقل
در انتخاب دو رمز اگر کلید مورد استفاده برای هر دو یکسان باشد، رمز دوم احتمالاً می‌تواند تا حدی یا به‌طور کامل خنثی ساز رمز اول باشد. اگر فرایند رمزگشایی دقیقاً همان فرایند رمزنگاری باشد، آن‌گاه رمز دوم به‌طور کامل رمز اول را خنثی می‌کند. اگر یک مهاجم بتواند کلید را از طریق تحلیل رمز اولین لایهٔ رمزگذاری بازیابی کند، احتمالاً می‌تواند با فرض اینکه از یک کلید برای تمام لایه‌ها استفاده می‌شود، تمام لایه‌های باقی‌مانده را رمزگشایی کند.
برای جلوگیری از این خطر، می‌توان از کلیدهایی استفاده کرد که برای هر لایه از نظر آماری مستقل هستند.

## اهمیت لایه اول
از لحاظ آماری ثابت شده است که به جز رمزگذاری پد یک‌بار مصرف (به انگلیسی:one-time pad) هیچ رمزگذاری دیگری شکست ناپذیر نیست. به علاوه برخی از خواص ممکن است از متن رمز شده توسط رمز اول برداشت شود. از آنجایی که متن رمز شده، متن ساده‌ای است که توسط رمز دوم استفاده شده است، ممکن است مستعد حملاتی که بر اساس خواص شناخته شده متن ساده است قرار بگیرد. این اتفاق زمانی رخ می‌دهد که اولین لایه برنامه P است که همیشه رشته‌ای از کاراکترهای S را به ابتدا یا انتهای متن رمز شده اضافه می‌کند، هنگامی‌که فایلی پیدا شد، رشتهٔ S به منظور رمزگشایی فایل به سیستم‌عامل اجازه می‌دهد برنامه P که راه‌اندازی شده است را شناسایی کند. این رشته باید قبل از اضافه کردن لایهٔ دوم حذف شود.

برای مقابله با این نوع حمله می‌توان از روش Bruce Schneier استفاده کرد که در منابع زیر آمده است. یک پد تصادفی هم اندازه با متن ایجاد کرده سپس متن ساده را با این پد XOR می‌کنیم،  نتیجه متن رمز شده اول است. در مرحله بعدی پد و متن رمز شده اول را رمز می‌کنیم (متن رمز شده اول می‌تواند کلید و رمزنگاری متفاوتی داشته باشد) که نتیجه متن رمز شده دوم خواهد بود. دو متن رمز شده آخر را به منظور ساخت متن رمز شده نهایی پیوست می‌کنیم. تحلیل‌گر رمز باید هر دو تا متن رمز شده را بشکند تا بتواند هر گونه اطلاعاتی را دریافت کند. به هر حال مشکلات ساخت متن رمز شده باز به اندازه متن ساده اصلی است.

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

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

## منابع
* "Multiple encryption" in "Ritter's Crypto Glossary and Dictionary of Technical Cryptography"
* A "way to combine multiple block algorithms" so that "a cryptanalyst must break both algorithms" in §15.8 of *Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C* by Bruce Schneier. Wiley Computer Publishing, John Wiley & Sons, Inc.
* S. Even and O. Goldreich, On the power of cascade ciphers, ACM Transactions on Computer Systems, vol. 3, pp. 108–116, 1985.
* M. Maurer and J. L. Massey, Cascade ciphers: The importance of being first, Journal of Cryptology, vol. 6, no. 1, pp. 55–61, 1993.

رده:رمزنگاری
رده:مقاله‌های ایجادشده توسط ایجادگر