رمزگذاری قطعه‌ای

در رمزنگاری با بلوک رمزگذاری الگوریتم قطعی گروههایی باطول بیت ثابت با نام بلوک تولید وبا تبدیل unvarying توسط یک کلید متقارن مشخص شده‌است. رمزهای بلوک اجزای ابتدایی در طراحی بسیاری از پروتکل‌های رمزنگاری وبه‌طور گسترده در پیاده‌سازی رمزگذاری داده‌ها استفاده می‌شوند.

در طراحی مدرن از باوک رمزگذاری در مفهوم رمزنگاری محصول تکرار است. رمزهای محصول توسط کلود کلود شانون در سال ۱۹۴۹ پیشنهاد شدند.

تعریف

ویرایش

رمز بلوک متشکل از دو الگوریتم‌های زوج، یکی برای رمزگذاری، E، و از سوی دیگر برای رمزگشایی،D، هر دو الگوریتم به پذیرفتن دو ورودی: ورودی بلوک اندازه n بیت ویک کلید به طول K بیت. و محصول هر دو شامل n _ بیت خروجی بلوک هستند. الگوریتم رمزگشایی D تعریف می‌شود تابع معکوس رمزگذاری است، به عنوان مثال، D = E-1. به‌طور رسمی، رمز بلوک تابع رمزنگاری مشخصی است.

که به عنوان ورودی کلیدی به طول K بیت که به ان اندازه کلید می‌گویند و رشته کمیP به طول n، اندازه بلوک نامیده می‌شود، و رشته C به طول n بیت را برمیگرداند، P متن آشکار نامیده می‌شود و C متن رمز است. برای هر K، تابع EK(P) برای معکوس کردن نقشه روی {۰٬۱}n مورد نیاز است. معکوس برای E در تابع تعریف می‌شود.

یک کلید K ویک متن رمز شده C برای برگرداندن P متن آشکار می‌گیرند به‌طوری که:

به عنوان مثال، الگوریتم رمزنگاری یک بلوک ۱۲۸ بیت متنی به عنوان ورودی، و خروجی متناظر است با ۱۲۸_بیت بلوک متن رمز شده. تبدیل دقیق با استفاده از ورودی دوم - کلید مخفی کنترل می‌شود. رمز گشایی هم مشابه این انجام می‌شود، الگوریتم رمزگشایی، یک بلوک ۱۲۸ بیتی از ciphertext به همراه کلیدهای مخفی،۱۲۸_بیت متن آشکار تولید می‌کند.

برای هر کلید K، جایگشت (bijective نقشه برداری) بیش از مجموعه‌ای از بلوک‌های ورودی است. هر کلید انتخاب یک جایگشت از مجموعه امکان‌پذیر است.

طراحی

ویرایش

تکرار بلوک‌های رمزگذاری

ویرایش

اکثر الگوریتم‌های رمزنگاری بلوک به عنوان رمزهای بلوک تکرار شده‌است که بدان معنی است که اندازه ثابت بلوک از متن ساده را به بلوک‌های اندازه یکسان ciphertext آن‌ها تبدیل، طبقه‌بندی شده آن‌ها از طریق استفاده مکرر از یک تحول invertible شناخته شده به عنوان تابع دور، با هر تکرار به عنوان دور است.

معمولاً تابع دور R یک کلید دور Ki متفاوت که دومین ورودی است را می‌گیرد که از کلید اصای مشتق شده‌است.

که در آن متن آشکار و متن رمز شده با بودن تعداد دورr است.

اغلب، کلید سفید است که علاوه بر این استفاده می‌شود. در آغاز و پایان، داده‌ها با مواد کلیدی اصلاح شده (اغلب با XOR، اما عملیات محاسباتی ساده مثل اضافه کردن و کم کردن نیز استفاده می‌شود):

جانشینی-جایگشت شبکه

ویرایش

طرح یک شبکه جایگزینی جایگشت با ۳ دور، رمزنگاری یک بلوک متنی از ۱۶ بیت را به یک بلوک از ۱۶ بیت ciphertext. جعبه S یک Si’s هست، جعبه P همانP وکلید دور درKi’s است. نوشتار اصلی: جانشینی-جایگشت شبکه

یک نوع مهم از تکرار رمز بلوک شناخته شده به عنوان یک شبکه جایگزینی-جایگشت (SPN) طول می‌کشد یک بلوک متنی و کلید را به عنوان ورودی، و شامل چند دور متناوب متشکل از مرحله جایگزینی مرحله جایگشت برای تولید هر بلوک خروجی متن رمز شده‌است. مرحله جایگزینی غیر خطی، آمیزه‌ای از بیت‌های اصلی با متن آشکارو ایجاد سردرگمی شانون. سپس مرحله جایگشت خطی پراکندگی تکثیر، ایجاد انتشار است. جعبه جایگزینی (S-BOX) جایگزین بلوک کوچک از بیت‌های ورودی با یکی دیگر از بلوک بیت خروجی است. این جایگزینی باید یک به یک برای اطمینان از، invertibility باشد. جعبه امن S مالکیت است که با تغییر دادن یک ورودی کمی در حدود نیمی از بیت‌های خروجی به‌طور متوسط تغییرو برگزاری نمایشگاه آنچه که به عنوان اثر بهمن شناخته می‌شود است - یعنی آن دارای خاصیتی است که هر بیت خروجی به هر بیت ورودی بستگی دارد.

جعبه جایگشت (P-BOX) جایگشتی از تمام بیتها است: خروجی جعبه S در یک دور و بیت permutes و تغذیه آن‌ها را درجعبه_S در دور بعدی طول می‌کشد. جعبه P خوب دارای خاصیتی است که بیت‌های خروجی از هر جعبه S به عنوان بسیاری از ورودی‌های جعبه _S است که ممکنه توزیع شده باشد.

در هر دور، کلید دور (با برخی عملیات ساده از کلید به دست آمده، به عنوان مثال، با استفاده از جعبه‌های S-و P) ترکیب و با استفاده از برخی از عملیات گروه، به‌طور معمول XOR شده‌است. رمزگشایی به سادگی به وسیله پردازش غیرمستقیم (با استفاده از وارون S-جعبه و P-جعبه و استفاده از کلیدهای دور در جهت معکوس) انجام می‌شود.

حالت‌های عمل

ویرایش

رمزگذاری ناامن از یک تصویر به عنوان یک نتیجه از حالت codebook الکترونیکی را پشتیبانی می‌کند.

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

برای غلبه بر این محدودیت، چندین اصطلاح بلوک حالت‌های رمزنگاری از عملیات طراحی شده‌اند و در توصیه‌های ملی به عنوان NIST 800-38A مشخص شده وBSI TR-02102 و استانداردهای بین‌المللی مانند ISO / IEC 10 مفهوم کلی این است که استفاده از روش نمونه از داده‌های متنی بر اساس یک مقدار ورودی اضافی، اغلب نام یک بردار دهی اولیه، برای ایجاد رمزنگاری احتمالی نامیده می‌شود. در زنجیری شدن این بلوک رمز محبوب (CBC) حالت، برای رمزگذاری امن برداردهی اولیه به همراه پیام متنی منتقل می‌باید یک مقدار تصادفی یا شبه تصادفی است که در شیوه‌ای منحصربه‌فرد یا برای اولین بلوک متنی که قبل از آن است رمزگذاری شده‌است. بلوک ciphertext حاصل می‌شود و سپس به عنوان بردار دهی اولیه جدید برای بلوک بعدی متنی استفاده می‌شود. در رمزنگاری بازخورد (CFB) حالت، که شبیه سازی جریان رمز خود را هماهنگ، بردار دهی اولیه برای اولین بار رمزگذاری شده و سپس به بلوک متنی اضافه شده‌است. بازخورد خروجی (OFB) حالت بارها و بارها کدگذاری بردار دهی اولیه برای ایجاد یک جریان کلیدی برای تقلید از جریان رمزنگاری هم‌زمان است. جدیدتر شمارنده (CTR) به حالت مشابه ایجاد یک جریان کلیدی، اما استفاده از تنها نیاز به ارزش‌های منحصربه‌فرد است و نه (شبه) به صورت تصادفی به عنوان بردار دهی اولیه تصادفی مورد نیاز داخلی با استفاده از بردار دهی اولیه به عنوان یک ضد بلوک و رمزنگاری مشتق شده این شمارنده را برای هر بلوک است.

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

عمل توسعه

ویرایش

برخی از حالت‌های حمله حالت CBC را تنها در بلوک‌های متنی کامل به کار می‌گیرند. به سادگی با گسترش بلوک آخرین پیام با صفر بیت از آن را اجازه نمی‌دهد که یک گیرنده به راحتی تشخیص پیام که تفاوت فقط در مقدار بیت کافی نیست. از همه مهمتر، یک راه حل ساده را افزایش می‌دهد به حملات اوراکل بالشتک بسیار کارآمد است. طرح بالشتک مورد نیاز برای گسترش تاریخ و زمان آخرین بلوک متنی به اندازه بلوک رمزنگاری مناسب است. در حالی که بسیاری از طرح‌های محبوب شرح داده شده در استاندارد و در ادبیات به حملات اوراکل لایه آسیب‌پذیر نشان داده شده‌است، یک راه حل که می‌افزاید و یک بیتی و سپس گسترش بلوک‌های گذشته با صفر بیت، استاندارد " روش Padding 2 "در ISO / IEC 9، امن شده‌است و در برابر این حملات به اثبات رسیده‌است.

تحلیل

ویرایش

تحلیل خطی

ویرایش

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

تحلیل انتگرال

ویرایش

دلیل حملات انتگرال حمله در رمز کردنی است که به خصوص قابل اجرا برای جلوگیری از رمزهای بر اساس شبکه‌های جایگزینی، جایگشت است. بر خلاف تحلیل دیفرانسیل، که با استفاده از جفت از plaintexts انتخاب شده با اختلاف ثابت XOR، دلیل حملات جدایی ناپذیر از مجموعه‌ها یا حتی multisets از plaintexts انتخاب شده که بخشی ثابت برگزار می‌شود و در یک بخش دیگر متفاوت است، از طریق آن از تمام امکانات استفاده می‌کند. به عنوان مثال، یک حمله ممکن است 256 plaintexts انتخاب شده که دارای ۸ بیت از همان است، اما تفاوت در این ۸ بیت لست. چنین مجموعه‌ای لزوماً دارای مجموع XOR، از مجموع ۰، و مبالغ XOR از مجموعه‌های مربوطه را از ciphertexts ارائه اطلاعات در مورد عملیات رمزنگاری است. این تضاد تفاوت بین جفت متون و مبالغ، از مجموعه بزرگتر از متون الهام گرفته از نام "دلیل حملات جدایی ناپذیر"، قرض گرفتن اصطلاحات حساب دیفرانسیل و انتگرال است.

ارزیابی عملی

ویرایش

رمزهای بلوک ممکن است با توجه به معیارهای متعدد در عمل موردبررسی قرار گیرند. عوامل شایع عبارتند از:

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

رمزهای بلوک قابل توجه

ویرایش

Lucifer / DES

ویرایش

DES و رمزگذاری داده‌ها استاندارد

ویرایش

DES به‌طور کلی به اولین رمزنگاری بلوک‌های غیرنظامی، در آی بی ام در دههٔ ۱۹۷۰ بر اساس کار انجام شده توسط هورست Feistel در نظر گرفته شده‌است. نسخه تجدید نظر شده از الگوریتم به عنوان یک دولت فدرال ایالات متحده استاندارد پردازش اطلاعات، به تصویب رسید. FIPS اونجا واحد خدمات عمومی ۴۶ رمزگذاری داده‌ها استاندارد DES))توسط اداره استاندارد ملی ایالات متحده (NBS) پس از یک دعوت عمومی برای ارسالی انتخاب و برخی از تغییرات داخلی توسط NBS (و به‌طور بالقوه، NSA)شده‌است. DES عمومی در سال ۱۹۷۶ منتشر شد و به‌طور گسترده استفاده می‌شود..

DES طراحی شده بود، در میان چیزهای دیگر، مقاومت در برابر حمله خاصی شناخته شده به NSA و کشف شده توسط آی بی ام، هر چند ناشناخته عمومی تا کشف دوباره و منتشر شده توسط الی بیهام و آدی شامیر در اواخر دههٔ ۱۹۸۰. این روش دلیل حملات دیفرانسیل نامیده می‌شود و یکی از حملات به‌طور کلی در مقابل رمزهای بلوک و تحلیل خطی دیگری است، اما ممکن است حتی NSAقبل از انتشار آن توسط Mitsuru Matsui ناشناخته بوده باشد. DES باعث مقدار زیادی از کارهای دیگر و انتشارات در رمزنگاری و تحلیل آن در جامعه باز است و آن را الهام بخش بسیاری از طرح‌های رمز جدید میداند.

DES دارای بلوکی به اندازه ۶۴ بیت و اندازه کلید آن ۵۶ بیت می‌باشد. ۶۴-بیت بلوک‌های مشترک در طرح‌های رمز بلوک بعد از DES شد. طول کلید بستگی به عوامل متعددی، از جمله مقررات دولتی دارد. بسیاری از ناظران که در دههٔ ۱۹۷۰ که به طول ۵۶ بیت کلید مورد استفاده برای DES بیش از حد کوتاه بود. با گذشت زمان، ناکافی بودن آن آشکار شد، یک نوع از DES، DES سه گانه، سه‌گانه کدگذاری هر بلوک با دو کلید مستقل (۱۱۲ بیتی کلید و امنیت ۸۰-بیت) یا سه کلید مستقل (۱۶۸ بیتی کلید و امنیت ۱۱۲-بیت) است. به‌طور گسترده‌ای به عنوان یک جایگزین به تصویب رسید. در سال ۲۰۱۱، نسخه سه کلید هنوز هم در نظر گرفته امن، هر چند مؤسسه ملی استاندارد و فناوری (NIST) استانداردهای دیگر اجازه استفاده از دو کلید در برنامه‌های کاربردی جدید، با توجه به۸۰-بیت سطح امنیتی خود را دادند.

ارتباط با سایر شکلهای هندسی اولیه رمزنگاری

ویرایش

رمزهای بلوک را می‌توان برای ایجاد شکل‌های هندسی اولیه رمزنگاری دیگر، مانند کسانی که در زیر استمورد استفاده قرار داد. به این شکل‌های هندسی اولیه دیگر به cryptographically امن، مراقبت‌های گرفته شده برای ساخت آن‌ها را به راه حق است.

  • رمزهای جریان با استفاده از رمزهای بلوک ساخته می‌شود. OFB حالت و حالت CTR حالت بلوک است که به نوبه رمز بلوک را به عدد صفر جریان است.
  • توابع هش رمزنگاری با استفاده از رمزهای بلوک ساخته می‌شود. عملکرد یک طرفه فشرده سازی برای شرح روش‌های مختلف از جمله. روش شبیه بلوک حالت رمزنگاری از عمل معمولاً برای رمزنگاری استفاده می‌شود.
  • Cryptographically امن شبه تصادفی ژنراتور تعداد (CSPRNGsها) را می‌توان با استفاده از رمزهای بلوک ساخته شود.
  • جایگشت‌های شبه تصادفی امن از مجموعه‌های محدود خودسرانه اندازه را می‌توان با رمزهای بلوک ساخته شده با دیدن و حفظ رمزگذاری فرمت
  • پیام کد تأیید هویت (مکینتاش) اغلب از رمزهای بلوک ساخته شده‌است. CBC-MAC، OMAC و PMAC مکینتاش چنین هستند.
  • تصدیق رمزگذاری شده نیز از رمزهای بلوک ساخته شده‌است. هر دو رمزگذاری و مک در همان زمان به این معناست. که به هر دو محرمانه بودن و تصدیق. CCM، EAX، GCM و OCB حالت رمزگذاری از جمله تصدیق شده‌است.

فقط رمزهای بلوک را به عنوان توابع هش می‌توان مورد استفاده برای ساخت رمزهای بلوک مورد استفاده قرار داد. نمونه‌هایی از چنین رمزهای بلوک SHACAL، BEAR و LION است.

منابع

ویرایش

Wikipedia contributors, "Block cipher," Wikipedia, The Free Encyclopedia, http://en.wiki.x.io/w/index.php?title=Block_cipher&oldid=502577524 (accessed July 16, 2012).