محمدرضا احمدی

مفهوم و کاربرد iv در رمزنگاری aes

محمدرضا احمدی ۱۳۹۷/۰۹/۱۹ مباحث عمومی برنامه‌نویسی

سلام

وقت بخیر

بنده در زمینه اندروید با مشکل رمزنگاری متقارن مواجه شدم، از اونجایی که الگوریتم Aes میتونه کلید ۲۵۶ بیتی تولید کنه، یه vector هم داره، تا اونجایی که بنده میدونم برای مشابه نبودن دیتا های قبلی و بعدی هست اما مفهوم دقیقش رو میخواستم بدونم

و اینکه استفاده کردن و نکردنش چه تفاوتی داره؟

تشکر

پاسخ‌ها به این تاپیک
محمدرضا نوشادروان
محمدرضا نوشادروان
۱۳۹۷/۱۱/۱۰

اگر منظور شما از وکتور همان IV یا Initialization Vector باشد جواب سوال شما در این دو لینک به خوبی توضیح داده شده:

https://en.wikipedia.org/wiki/Initialization_vector

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation

اما اگر بخواهیم مختصر جواب بدیم اینطوری می‎شود گفت که استفاده از IV هایی که برای هر بلوک داده به طور رندوم تولید شده باشد امنیت بیشتری را تامین خواهد کرد. یک روش هم مثل این لینک:

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_Block_Chaining_(CBC)

این است که اگر مثلاً قرار است 1 کلیوبیت داده را رمز کنید، یک IV رندوم برای 256 بیت اول تولید کنید و برای بقیۀ بلوک های 256 بیتی از داده‎های رمز شدۀ بلوک قبل استفاده کنید.