Skip to content

Latest commit

 

History

History
77 lines (41 loc) · 2.51 KB

README.md

File metadata and controls

77 lines (41 loc) · 2.51 KB

پیاده‌سازی الگوریتم رمزنگاری کشکول شیخ‌بهایی

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

آدرس فرسته : https://social.tchncs.de/@mskf1383/110246678770174393

محمدصالح کامیاب: https://github.com/mskf1383

متن اصلی

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

  • کشکول #شیخ_بهایی

بررسی الگوریتم

عدد ابجد: حروف در الفبای عربی یک عدد دارند که به آن ابجد گفته می‌شود.

ابجد هوز حطی کلمن سعفص قرشت ثخذ ضظغ

https://fa.wikipedia.org/wiki/%D8%AD%D8%B3%D8%A7%D8%A8_%D8%AC%D9%85%D9%84

مراحل صاحب اسم:

۱. حروف اسم خود را به ترتیب حذف می‌کند:

مثال برای اسم صالح: الح، صلح، صاح، صال

۲. جمع ابجدی هر کدام از واژگان به دست آمده را حساب می‌کند:

الح = ۳۹

صلح = ۱۲۸

صاح = ۹۹

صال = ۱۲۱

سپس این عددها را به رمزگشا می‌دهد تا اسم او را کشف کند!

مراحل رمزگشا

۱. عددها را با هم جمع می‌کند:

۳۹ + ۱۲۸ + ۹۹ + ۱۲۱ = ۳۸۷

۲. حاصل را بر (تعداد عددها - ۱) تقسیم می‌کند:

۳۸۷ / (۴ - ۱) = ۱۲۹

۳. حاصل را هر بار منهای یکی از عددهای ورودی می‌کند:

۱۲۹ - ۳۹ = ۹۰

۱۲۹ - ۱۲۸ = ۱

۱۲۹ - ۹۹ = ۳۰

۱۲۹ - ۱۲۱ = ۸

۴. معادل‌های ابجدی آن‌ها را کنار هم می‌گذارد:

۹۰ = ص

۱ = ا

۳۰ = ل

۸ = ح

ص + ا + ل + ح = صالح