موضوع مقاله: رمز دنباله‌ای | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # رمز دنباله‌ای | مقدمه: در رمزنگاری، رمز دنباله‌ای یک رمز متقارن است که در آن هر رقم دنباله کلید اجرایی که توسط مولد رمز دنبال‌های تولید شده است، با رقم متناظر در متن اصلی، XOR می‌شود و رقم متناظر متن رمزی را تولید می‌کند. | ## بخش 1: رمز دنباله‌ای | رمزهای دنباله‌ای مزیت‌های گوناگونی دارند که آن‌ها را برای کاربردهای گوناگون مناسب می‌سازد. رمز یکبار مصرف رمزهای دنباله‌ای می‌توانند به عنوان تقریبی از رمز یکبار مصرف یا رمز ورنام تلقی شوند. رمز یکبار مصرف از یک دنباله کلید اجرایی استفاده می‌کند که ارقام آن کاملاً تصادفی هستند. ارقام دنباله کلید اجرایی با ارقام متن اصلی نظیر به نظیر ترکیب می‌شوند و متن رمز شده را تولید می‌کنند. اگر چه طول دنباله کلید اجرایی باید حداقل به اندازه طول متن اصلی باشد و همچنین کاملاً به تصادف انتخاب شده باشد. یک رمز دنباله‌ای از دنباله کلید اجرایی کوتاه‌تر و مناسب‌تری مانند دنباله کلید اجرایی ۱۲۸ بیتی استفاده می‌کند. انواع رمزهای دنباله‌ای یک رمز دنباله‌ای عناصر دنباله کلید اجرایی را بر اساس یک حالت درونی تولید می‌کند. این حالت درونی به دو روش به روز می‌شود: اگر حالت درونی مستقل از پیام‌های متن اصلی و متن رمزشده تغییر کند، این رمز، رمز دنباله‌ای هماهنگ نامیده می‌شود. اما در رمز دنباله‌ای ناهماهنگ حالت درونی براساس ارقام قبلی متن رمزشده به روز می‌شود. رمزهای دنباله‌ای هماهنگ رمزنگاری جریانی هماهنگ، جریانی از رقم های شبه تصادفی است که مستقل از متن اصلی و متن رمزگذاری شده تولید شده است؛ سپس با متن اصلی (برای رمزگذاری) یا متن رمزگذاری شده (برای رمزگشایی) ترکیب می شود. در متداول ترین حالت، متن رمزگذاری شده از ترکیب رقم های دودویی (بیت ها) متن اصلی و کلید با کمک عمل XOR (یای انحصاری) تولید می شود. | ## بخش 2: رمز دنباله‌ای | در رمزنگاری جریانی هماهنگ، فرستنده و گیرنده باید دقیقاً در مرحله باشند تا رمزگشایی موفقیت آمیز باشد. برای همگام سازی مجدد، آفست های مختلفی را میتوان برای رسیدن به رمزگشایی درست آزمایش نمود. رمزهای دنباله‌ای ناهماهنگ رمزهای دنباله‌ای هماهنگ از N رقم قبلی متن رمزشده برای محاسبه دنباله کلید اجرایی استفاده می‌کنند که ایده آن‌ها در سال ۱۹۴۶ ارائه شده‌است. رمزهای دنباله‌ای مبتنی بر ثبات خطی رمزهای دنباله‌ای دودویی غالباً با استفاده از ثبات خطی طراحی می‌شوند زیرا آن‌ها به آسانی می‌توانند در سخت افزارها اجرا شوند. ترکیب توابع به‌طور غیرخطی چون ثبات‌های خطی اساساً خطی هستند، یک روش برای بهبود امنیت آن‌ها استفاده از خروجی چند ثبات خطی موازی به عنوان ورودی یک تابع بولی غیرخطی و تشکیل یک مولد ترکیبی است. از اهداف چنین توابع ترکیبی، تضمین امنیت طرح‌های حاصله مثلاً به منظور پیشگیری از حملات ارتباطی است. مولد فیلتری یک مولد فیلتری یک مولد دنباله کلید اجرای برای کاربردهای رمزهای دنباله‌ای است و شامل یک ثبات خطی است که توسط یک تابع غیرخطی فیلتر شده‌است. به عبارت دقیقتر دنباله خروجی یک مولد فیلتری متناظر است با خروجی یک تابع غیرخطی به‌طوری‌که ورودی این تابع از برخی خانه‌های ثبات خطی گرفته شده‌است. برای آنکه دنباله کلید اجرایی ویژگی‌های آماری خوبی داشته باشد، تابع فیلتر باید متوازن باشد (خروجی آن توزیع یکنواخت داشته باشد) و همچنین چندجمله‌ای فیدبک ثبات خطی باید چندجمله‌ای اولیه باشد. به جای دستگاه با پیاده سازی خطی، ممکن است از یک تابع بروزرسانی غیرخطی استفاده شود. امنیت برای اینکه یک رمزنگاری جریانی امن باشد، جریان کلید (keystream) آن باید تناوب بزرگی داشته باشد و بازیابی کلید یا بازیابی وضعیت داخلی رمزگذار از طریق جریان کلید غیرممکن باشد. | ## بخش 3: رمز دنباله‌ای | رمزنگاران همچنین علاقه‌مند به این هستند که جریان کلید (keystream) عاری از ظریف ترین تمایلات به این باشد که به مهاجمان اجازه دهد جریان را از یک رشته نویزهای تصادفی تمییز دهند، و همچنین از روابط قابل تشخیص میان کلیدهای اصلی که مطابق با کلیدهای مرتبط هستند یا موارد مرتبط با نانس رمزنگاری نیز عاری باشد. این موضوع باید برای همه کلیدها صادق باشد (نباید کلیدهای ضعیفی وجود داشته باشد)، حتی اگر مهاجمی بتواند متن اصلی یا متن رمزشده را بفهمد و یا انتخاب کند. همانند حملات دیگر در رمزنگاری، حملات در رمزنگاری جریانی می‌توانند گواهی دهنده باشند، به این معنا که آنها لزوماً روش‌های عملی برای شکستن رمز نیستند، اما نشان می‌دهند که رمز ممکن است نقاط ضعف دیگری داشته باشد. استفاده‌ی ایمن از رمزنگاری جریانی همزمان، مستلزم این است که هرگز یکبار از همان جریان کلید مجدداً استفاده نشود. این امر به طور کلی به این معناست که یک نانس رمزنگاری متفاوت یا کلید باید به هر فراخوانی از رمز عرضه شود. توسعه دهندگان نرم‌افزار همچنین باید بدانند که اکثر رمزگذارهای جریانی برای ارائه اعتبار هستند و نه حریم خصوصی : پیام‌های رمزگذاری شده همچنان ممکن است در جابجایی تغییر کرده‌باشند. به عنوان مثال، از رمزگذارهای بلوکی 64 بیتی مانند DES می‌توان برای تولید جریان کلید در حالت بازخورد خروجی (OFB) استفاده کرد. اما، هنگامی که به طور کامل از بازخورد استفاده نمی‌شود، جریان حاصل شده تناوبی حدود 232 بلوک به طور متوسط دارد. به عنوان مثال، اگر رمزگذاری با سرعت 8 مگابایت در ثانیه انجام شود، یک تناوب از دوره بلوک های 232 تایی بعد از حدود نیم ساعت تکرار می شود. برخی از برنامه‌ها که از رمزنگاری جریانی RC4 استفاده می‌کنند، به دلیل ضعف در روال تنظیم کلید RC4 ممکن است مورد تهاجم قرار بگیرند. برنامه‌های جدید یا باید از RC4 اجتناب کنند یا اطمینان حاصل کنند که همه کلیدها منحصر به فرد و یا مستقل از هم هستند (مانند یک CSPRNG تولید شده خوب یا یک تابع درهم ساز رمزنگاری) و اولین بایت های جریان اصلی دور ریخته می‌شوند. | ## جمع‌بندی | عناصر رمزنگاری جریانی اغلب برای درک ساده تر از رمزنگاری های بلوکی هستند و بنابراین کمتر احتمال دارد که نقاط ضعف تصادفی یا مخرب پنهان بمانند.