Cracking password – شکستن طرح رمزنگاری خودم از دهه هشتاد

در دهه هشتادم، یک برنامه رمزگذاری برای برخی از فایلهای داده (اندازه 10-20K) نوشتم.

  1. کاربر وارد رمز عبور ASCII طولانی 8 بایت
  2. چهار اشارهگر حافظه 16 بیتی از 8 بایت رمز عبور
  3. داده های رمزگذاری شده با داده های ROM متوالی EOR-ed
  4. اگر رمز درست نباشد، داده های رمزگشایی زباله خواهند بود

Pseudo-code:

 a = password [0] | رمز عبور [1] << 8؛
b = password [2] | رمز عبور [3] << 8؛
c = password [4] | رمز عبور [5] << 8؛
d = password [6] | رمز عبور [7] << 8؛

برای (i = 0؛ i <strlen (رمزگذاری شده)؛ i ++) {
  n = i و 0xff؛
  رمزگشایی [i] = رمزگذاری شده [i] ^ a [n] ^ b [n] ^ c [n] ^ d [n]؛
}

پرسش من:

آیا این الگوریتم دارای ضعفی است که به من اجازه می دهد رمز عبور / رمزگشایی داده ها را بدون استفاده از نیروی بطور منظم پیدا کند (امتحان کنید تمام ترکیبات، لیست های لیست و …)

حتی می دانیم که داده های رمزگشایی چگونه شبیه هستند، بنابراین آزمایش برای موفقیت یک پازل در خود است، اما من فکر می کنم دنبال دنباله ای از کد ماشین معتبر باید ترفند را انجام دهم …)