در رمزنگاری، بُردار اولیه Initialization Vector یا متغیر نخستین starting Variable یک ورودی تصادفی به طول ثابت است که به اعمال اولیه رمزگذاری اضافه می شود. تصادفی بودن این بردار اولیه به منظور رسیدن به امنیت معنایی بسیار حیاتی است. این ویژگی مانع از آن می شود که در صورت استفاده از یک کلید یکسان در چندین بار رمزگذاری، حمله کننده بتواند رابطهٔ بین قطعه پیام اصلی و قطعه پیام رمز شده متناظر با آن را حدس بزند. طول این قطعه ثابت بستگی به الگوریتم رمزگذاری دارد. معمولاً در روش های رمز قطعه ایی، اندازه این ورودی ثابت با اندازه قطعه رمز برابر در نظر گرفته می شود. به روش های افزودن بردار اولیه به رمزگذاری قطعه ایی اصطلاحاً روش های عملیات گفته می شود. در رمز جریانی مثل RC4 بر خلاف رمز قطعه ایی، قابلیت دریافت بردار اولیه به صورت صریح در ورودی را ندارند. پس در این نوع رمزگذاری نیاز به یک روش ابتکاری برای ترکیب بردار اولیه با کلید رمز یا ایجاد تغییر در وضعیت درونی الگوریتم، با استفاده از بردار اولیه است.
رمز قطعه ایی یکی از پایه ای ترین اعمال اولیه در رمزنگاری است که مکرراً استفاده می شود. از این روش تنها می توان برای رمز کردن پیام ها با طول ثابت از پیش تعیین شده استفاده کرد. برای مثال الگوریتم AES در هر بار اجرا می تواند تنها یک بلوک ۱۲۸ بیتی داده را به یک بلوک ۱۲۸ بیتی داده رمز شده نگاشت کند. در این الگوریتم از کلیدی که به عنوان ورودی به آن داده می شود برای نگاشت داده اصلی به داده رمز شده استفاده می شود. اگر ما نیاز داشته باشیم که یک قطعه پیام بزرگتر از طول ثابت ورودی الگوریتم رمز کنیم، ساده ترین روش این است که ما پیام ورودی را به اندازه طول قطعه داده ورودی الگوریتم رمز، بشکنیم و هر قطعه را به طور مستقل با استفاده از کلید، رمز کنیم و در آخر قطعه های رمز شده را به یکدیگر بچسبانیم. این روش به علت اینکه هر قطعه پیام اصلی را به یک قطعه رمز شده متناظر و هم اندازه با آن نگاشت می کند، امن نیست زیرا اگر شخص سومی بتواند قطعه داده های رمز شده را مشاهده کند ممکن است به راحتی، حتی بدون اینکه کلید را در اختیار داشته باشد بتواند به محتوای پیام پی ببرد. به عنوان مثال تصویر زیر نمونه ایی از این روش ناامن را نشان می دهد.
در این حالت به منظور پنهان کردن الگوها در قطعه داده های رمز شده و همچنین جلوگیری از تولید مجدد کلید در هر مرحله به ازای ورود هر قطعه پیام به الگوریتم رمز، نیاز به روشی برای تصادفی کردن ورود قطعه داده های پیام به الگوریتم رمز است. مؤسسه ملی فناوری و استانداردها در سال ۱۹۸۰، مستندات یک استاندارد که توسط FIPS طراحی شده بود را منتشر کرد که در آن به توصیف چهار شیوه که هر یک راه حل مختلفی را برای رمز کردن قطعه پیام ورودی به الگوریتم رمز ارائه می دادند، پرداخته شده بود. به این شیوه ها اصطلاحاً روش های عملیات رمز قطعه ایی گفته می شود. اولین روش که به عنوان ( Electronic CodeBook ( ECB شناخته می شود از همان استراتژی ساده توصیف شده در بالا استفاده می کند. یعنی هر قطعه داده ورودی را به صورت کاملاً مستقل با یک کلید که به عنوان ورودی به الگوریتم داده شده است رمز می کند. اما در سه روش بعدی بر خلاف روش اول پروسه ایی را توصیف می کند که در آن قطعه داده رمز شده فعلی با قطعه داده بعدی که می خواهد رمز شود ترکیب می شود. به منظور راه اندازی این پروسه ها نیاز به یک ورودی اضافی است که با اولین بلوک ترکیب شود که به آن اصطلاحاً بردار اولیه گفته می شود.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفرمز قطعه ایی یکی از پایه ای ترین اعمال اولیه در رمزنگاری است که مکرراً استفاده می شود. از این روش تنها می توان برای رمز کردن پیام ها با طول ثابت از پیش تعیین شده استفاده کرد. برای مثال الگوریتم AES در هر بار اجرا می تواند تنها یک بلوک ۱۲۸ بیتی داده را به یک بلوک ۱۲۸ بیتی داده رمز شده نگاشت کند. در این الگوریتم از کلیدی که به عنوان ورودی به آن داده می شود برای نگاشت داده اصلی به داده رمز شده استفاده می شود. اگر ما نیاز داشته باشیم که یک قطعه پیام بزرگتر از طول ثابت ورودی الگوریتم رمز کنیم، ساده ترین روش این است که ما پیام ورودی را به اندازه طول قطعه داده ورودی الگوریتم رمز، بشکنیم و هر قطعه را به طور مستقل با استفاده از کلید، رمز کنیم و در آخر قطعه های رمز شده را به یکدیگر بچسبانیم. این روش به علت اینکه هر قطعه پیام اصلی را به یک قطعه رمز شده متناظر و هم اندازه با آن نگاشت می کند، امن نیست زیرا اگر شخص سومی بتواند قطعه داده های رمز شده را مشاهده کند ممکن است به راحتی، حتی بدون اینکه کلید را در اختیار داشته باشد بتواند به محتوای پیام پی ببرد. به عنوان مثال تصویر زیر نمونه ایی از این روش ناامن را نشان می دهد.
در این حالت به منظور پنهان کردن الگوها در قطعه داده های رمز شده و همچنین جلوگیری از تولید مجدد کلید در هر مرحله به ازای ورود هر قطعه پیام به الگوریتم رمز، نیاز به روشی برای تصادفی کردن ورود قطعه داده های پیام به الگوریتم رمز است. مؤسسه ملی فناوری و استانداردها در سال ۱۹۸۰، مستندات یک استاندارد که توسط FIPS طراحی شده بود را منتشر کرد که در آن به توصیف چهار شیوه که هر یک راه حل مختلفی را برای رمز کردن قطعه پیام ورودی به الگوریتم رمز ارائه می دادند، پرداخته شده بود. به این شیوه ها اصطلاحاً روش های عملیات رمز قطعه ایی گفته می شود. اولین روش که به عنوان ( Electronic CodeBook ( ECB شناخته می شود از همان استراتژی ساده توصیف شده در بالا استفاده می کند. یعنی هر قطعه داده ورودی را به صورت کاملاً مستقل با یک کلید که به عنوان ورودی به الگوریتم داده شده است رمز می کند. اما در سه روش بعدی بر خلاف روش اول پروسه ایی را توصیف می کند که در آن قطعه داده رمز شده فعلی با قطعه داده بعدی که می خواهد رمز شود ترکیب می شود. به منظور راه اندازی این پروسه ها نیاز به یک ورودی اضافی است که با اولین بلوک ترکیب شود که به آن اصطلاحاً بردار اولیه گفته می شود.
wiki: بردار اولیه