دشواری: 5%

رمزگذاری xor

هر کاراکتر در کامپیوتر به یک کد یکتا نسبت داده می‌شود که که استاندارد رایج ASCII (American Standard Code for Information Interchange) است. برای مثال حرف بزرگ A=65، ستاره (*) = 42 و حرف کوچک k = 107 است.

یک روش مدرن رمزگذاری در کامپیوتر این است که یک فایل متنی گرفته و بایت‌ها را به ASCII تبدیل کرده و سپس هر بایت را با یک مقدار داده شده، که از یک کلید مخفی گرفته می‌شود، xor کنیم. مزیت تابع xor این است که با استفاده از همان کلید رمزگذاری روی متن رمزشده می‌توان متن اصلی را بازگرداند. برای مثال $65 xor 42 = 107$ آنگاه $107 xor 42 = 65$.

برای یک رمزگذاری غیرقابل شکستن نیاز است تا کلید طول یکسانی با متن اصلی داشته باشد و کلید از بایت‌های رندم درست شده باشد. کاربر پیام رمزشده و کلید رمزگذاری را در دو مکان متفاوت نگه می‌دارد و بدون داشتن هر نیمه غیرممکن است که بتوان پیام را رمزگشایی کرد.

متأسفانه این روش برای بسیاری از کاربران عملی نیست. لذا یک روش اصلاح‌شده این است که از یک رمز به‌عنوان کلید استفاده کنیم. اگر رمز از پیام کوچکتر باشد، که بسیار محتمل است، کلید را به‌صورت چرخشی در طول پیام تکرار می‌کنیم. برای بالانس در این روش باید طول کلید به اندازه کافی بزرگ باشد تا امنیت داشته باشد و از طرفی باید به اندازه کافی کوتاه باشد تا قابل حفظ کردن باشد.

کار شما راحت شده است زیرا کلید رمزگشایی شامل سه کارکتر کوچک انگلیسی است. با استفاده از cipher.txt (راست کلیک کرده و ‘Save Link/Target As …’)، که یک فایل حاوی کدهای ASCII رمز شده است، و دانستن این که متن اصلی باید شامل کلمات رایج انگلیسی باشد، پیام را رمزگشایی کنید و جمع تمام مقادیر ASCII در متن اصلی را پیدا کنید.

ارسال پاسخ