جریانکلید
جریانکلید (انگلیسی: Keystream) در رمزنگاری، جریان کلید یک جریان تصادفی یا شبه تصادفی از کاراکترهایی است که با متن آشکار ترکیب میشوند تا یک پیام رمزنگاری شده بسازند.
بهطور معمول هر کاراکتر جریان کلید با یک کارکتر متن آشکار، جمع یا تفریق میشود یا روی آن عملیات بیتی(XOR) صورت میگیرد تا متن رمز شده بواسطه همنهشتی اعداد تولید شود.
جریانکلیدها در رمزگذاری پدهای یکبار مصرف و بیشتر رمزهای دنبالهای استفاده میشوند. رمزگذاری قطعهای هم میتواند برای تولید جریانکلیدها مورد استفاده قرار گیرد، برای مثال مد CTR یکی از مدهای کاری رمزهای قطعهای هست که رمزگذاری قطعهای بوسیله آن جریان کلید میسازد و بدین ترتیب رمزقطعهای به رمزجریانی مبدل میشود.
نمونه
در این نمونه ما از حروف الفبای انگلیسی ۲۶ تایی (a-z) استفاده کردهایم بنابراین نمیتوانیم اعداد، ویرگولها، فاصلهها و دیگر سمبلها را رمزنگاری کنیم.
اعداد تصادفی درون جریانکلید باید در بازه ۰ تا ۲۵ باشند (اشاره به همنهشتی با عدد ۲۶، تعداد حروف الفبای انگلیسی)
برای رمزنگاری ما اعداد جریانکلید و متنآشکار را جمع میکنیم و برای رمزگشایی اعداد جریانکلید متنرمزشده را از هم کم میکنیم تا به عدد متن آشکار برسیم.
اگر عدد متنرمزشده از ۲۵ بزرگتر شد آنرا به شکل همنهشتی با ۲۶ مینویسیم (مثلاً: ۲۶ میشود ۰ یا ۲۸ میشود ۲)
اینجا یک متنآشکار ("attack at dawn") داریم که با یک جریانکلید ("kjcngmlhylyu") ترکیب شده و متنرمزشده ("kcvniwlabluh") را تولید میکند.
متن آشکار | a | t | t | a | c | k | a | t | d | a | w | n |
---|---|---|---|---|---|---|---|---|---|---|---|---|
متن آشکار به صورت عددی | ۰ | ۱۹ | ۱۹ | ۰ | ۲ | ۱۰ | ۰ | ۱۹ | ۳ | ۰ | ۲۲ | ۱۳ |
جریانکلید | k | j | c | n | g | m | l | h | y | l | y | u |
جریان کلید بهصورت عددی | ۱۰ | ۹ | ۲ | ۱۳ | ۶ | ۱۲ | ۱۱ | ۷ | ۲۴ | ۱۱ | ۲۴ | ۲۰ |
متنرمزشده بهصورت عددی | ۱۰ | ۲۸ | ۲۱ | ۱۳ | ۸ | ۲۲ | ۱۱ | ۲۶ | ۲۷ | ۱۱ | ۴۶ | ۳۳ |
متن رمز شده بهصورت عددی همنهشت شده با ۲۶ | ۱۰ | ۲ | ۲۱ | ۱۳ | ۸ | ۲۲ | ۱۱ | ۰ | ۱ | ۱۱ | ۲۰ | ۷ |
متنرمزشده به صورت متنی | k | c | v | n | i | w | l | a | b | l | u | h |
منابع
- Handbook of Applied Cryptography by Menezes, van Oorschot and Vanstone (2001), chapter 1, 6 and 7.