رمز جریان در مقابل رمز بلاک | State Cipher در مقابل Block Cipher
در رمزنگاری، رمزهای جریانی و رمزهای بلوکی دو الگوریتم رمزگذاری/رمزگشایی هستند که به خانواده رمزهای کلید متقارن تعلق دارند. به طور معمول یک رمز یک متن ساده را به عنوان ورودی می گیرد و یک متن رمزی را به عنوان خروجی تولید می کند. رمزهای بلاک، بلوک بیتها با طول ثابت را با استفاده از یک تبدیل غیرمتغیر رمزگذاری میکنند. رمزهای جریانی جریان بیتها را با طولهای مختلف رمزگذاری میکنند و از تبدیلهای متفاوتی در هر بیت استفاده میکنند.
رمز استریم چیست؟
رمزهای جریانی از خانواده رمزهای کلید متقارن هستند. رمزهای جریانی بیتهای متن ساده را با جریان بیتهای رمز شبه تصادفی با استفاده از عملیات XOR (انحصاری یا) ترکیب میکنند.رمزهای جریانی ارقام متن ساده را یکی پس از دیگری با تبدیل های متفاوت برای ارقام متوالی رمزگذاری می کنند. از آنجایی که رمزگذاری هر رقم به وضعیت فعلی موتور رمز بستگی دارد، رمزهای جریانی به عنوان رمزهای حالت نیز شناخته می شوند. به طور معمول، تک بیت ها / بیت ها به عنوان تک رقمی استفاده می شود. برای جلوگیری از نگرانی های امنیتی، باید مطمئن شد که همان حالت شروع بیش از یک بار استفاده نمی شود. پرکاربردترین رمز جریان RC4 است.
رمز بلاک چیست؟
رمز بلوکی یکی دیگر از رمزهای کلید متقارن است. رمزهای بلوکی بر روی بلوک ها (گروه هایی از بیت ها) با طول ثابت عمل می کنند. رمزهای بلوک از یک تبدیل ثابت (غیر متغیر) برای همه ارقام در بلوک استفاده می کنند. به عنوان مثال، هنگامی که یک بلوک x-bit متن ساده (به همراه یک کلید مخفی) به عنوان ورودی به موتور رمزگذاری بلوک ارائه می شود، بلوک x-bit مربوطه از متن رمز را تولید می کند. تبدیل واقعی به کلید مخفی بستگی دارد. به طور مشابه، الگوریتم رمزگشایی بلوک x-bit اصلی متن ساده را با استفاده از بلوک x-bit متن رمز و کلید مخفی بالا به عنوان ورودی بازیابی می کند.در صورتی که پیام ورودی نسبت به اندازه بلوک بیش از حد طولانی باشد، به بلوک ها تقسیم می شود و این بلوک ها (به صورت جداگانه) با استفاده از همان کلید رمزگذاری می شوند. با این حال، به دلیل استفاده از کلید یکسان، هر دنباله تکراری در متن ساده به همان دنباله تکراری در متن رمز تبدیل میشود و این میتواند نگرانیهای امنیتی ایجاد کند. رمزهای بلوک محبوب DES (استاندارد رمزگذاری داده) و AES (استاندارد رمزگذاری پیشرفته) هستند.
تفاوت بین رمز جریانی و رمزگذاری بلوکی چیست؟
اگرچه هم رمزهای جریانی و هم رمزهای بلوکی به خانواده رمزهای رمزگذاری متقارن تعلق دارند، اما تفاوت های کلیدی وجود دارد. رمزهای بلوکی بلوک های بیت های با طول ثابت را رمزگذاری می کنند، در حالی که رمزهای جریانی بیت های متن ساده را با جریان بیت های رمز شبه تصادفی با استفاده از عملیات XOR ترکیب می کنند. حتی اگر رمزهای بلوکی از همان تبدیل استفاده می کنند، رمزهای جریانی از تبدیل های مختلفی بر اساس وضعیت موتور استفاده می کنند. رمزهای جریان معمولاً سریعتر از رمزهای بلوکی اجرا می شوند.از نظر پیچیدگی سخت افزاری، رمزهای جریانی نسبتاً پیچیده تر هستند. رمزهای جریانی ترجیح معمولی نسبت به رمزهای بلوکی زمانی هستند که متن ساده در مقادیر متفاوت در دسترس باشد (مثلاً یک اتصال وای فای ایمن)، زیرا رمزهای بلوک نمی توانند مستقیماً روی بلوک های کوتاه تر از اندازه بلوک کار کنند. اما گاهی اوقات تفاوت بین رمزهای جریانی و رمزهای بلوکی چندان واضح نیست. دلیل آن این است که، هنگام استفاده از حالتهای خاصی از عملکرد، میتوان از رمز بلوکی برای رمزگذاری کوچکترین واحد دادههای موجود به عنوان رمز جریانی استفاده کرد.