رمز سزار
در رمزنگاری، رمز سزار (به انگلیسی: Caesar cipher) که با نامهای کد سزار[یادداشت 1]، شیفت سزار[یادداشت 2] یا رمز شیفت[یادداشت 3] نیز شناخته میشود، یکی از سادهترین و شناختهشدهترین تکنیکهای رمزگذاری است. این رمز یک نوع رمز جانشینی است که در آن هر حرف در متن آشکار با حرف دیگری با فاصله ثابت در الفبا جایگزین میشود. برای مثال با مقدار انتقال ۳، D به جای A مینشیند، E به جای B، و الی آخر. نام این روش از ژولیوس سزار گرفته شدهاست که از آن برای ارتباطات محرمانه خود استفاده میکرد.
رمز سزار معمولاً به عنوان یکی از اجزای سیستمهای رمزگذاری پیچیدهتر مانند رمز ویژنر استفاده میشود. روت۱۳ یک حالت خاص رمز سزار است که از میزان انتقال ۱۳ استفاده میکند و با توجه به آنکه الفبای انگلیسی از ۲۶ حرف تشکیل شده، وارون خودش است. رمز سزار مانند تمام رمزهای جانشینی تکالفبایی دیگر به راحتی شکسته میشود و با وجود تکنیکهای مدرن، هیچگونه امنیتی برای ارتباطات فراهم نمیکند.
وجه تسمیه
نام رمز سزار از ژولیوس سزار گرفته شده. به گفته سوئتونیوس، ژولیوس سزار از انتقالی به میزان ۳ (D به جای A در رمزگذاری) برای رمز کردن پیامهای مهم نظامی استفاده میکرد.[1] رمزهای جانشینی پیش از سزار هم استفاده میشدند، اما استفاده از این روش خاص، نخست به نام ژولیوس سزار ثبت شده. شواهدی وجود دارد که ژولیوس سزار از سیستمهای پیچیدهتری نیز استفاده کردهاست اما اطلاعی از جزئیات آن در دسترس نیست.[2][3]
تاریخچهٔ استفاده
دورهٔ باستان
بعد از ژولیوس سزار، نوهٔ خواهر او آگوستوس نیز از رمز سزار استفاده میکرد. با این تفاوت که از انتقالی به میزان ۱ استفاده میکرد و الفبا را به صورت دورانی در نظر نمیگرفت. به این ترتیب او برای مثال از B به جای A و در انتهای الفبا به جای Z از AA استفاده میکرد.[4][5]
دقیقاً مشخص نیست که رمز سزار در زمان خود تا چه حد مؤثر بوده، اما احتمالاً امنیت قابل قبولی داشته. نباید فراموش کرد که بخش زیادی از دشمنان سزار بیسواد بودند و گروهی دیگر نیز فرض میکردند پیام به یک زبان خارجی ناشناخته نوشته شدهاست.[6] تکنیک ثبتشدهای برای شکستن رمزهای جانشینی ساده از آن دوران وجود ندارد. اولین اثر ثبتشده در این مورد به تحقیقات ابویوسف کندی در زمینه تحلیل فراوانی در قرن نهم میلادی بر میگردد.[7]
در پشت طومارهای مزوزا از رمز سزار با کلید ۱ برای نوشتن نامهای خدا استفاده میشود. استفاده از این رمز رسمی است که احتمالاً از زمانی که یهودیان اجازه استفاده از مزوزا را نداشتند باقی مانده. این حروف رمز خود یک نام الهی بااهمیت تلقی میشوند که طبق اعتقادات یهودیان ارتدکس قدرتهای شیطانی را مهار میکند.[8]
قرون جدید
در قرن نوزدهم میلادی گاهی از قسمت آگهیهای شخصی روزنامهها برای انتقال پیامهای رمز شده استفاده میشد. برای مثال نمونههایی از استفاده از این رمز در روزنامه تایمز دیده میشود.[9] از رمز سزار حتی تا سال ۱۹۱۵ در ارتباطات نظامی استفاده شده. ارتش روسیه از آن به عنوان جایگزینی برای سیستمهای پیچیدهتر که یادگیری آنها برای لشگریان دشوار بود، استفاده میکرد. در نتیجه، تحلیلگران رمز آلمانی و اتریشی پیامهای روسی را به راحتی شنود میکردند.[10][11]
در رمز ویژنر از الگوریتم رمز سزار استفاده میشود، با این تفاوت که کلیدهای رمز (میزان انتقال) متفاوتی برای حروف متن آشکار در نظر گرفته میشود. به این ترتیب کلید رمز کلی یک عدد چند رقمی (یک کلمه) است. اگر طول کلمه کلید با طول متن آشکار یکسان باشد، به صورت تصادفی استفاده شده باشد و تنها یک بار استفاده شود، پد یکبار مصرف حاصل میشود که غیرقابل شکست است.[12] البته دستیابی به این شرایط بسیار دشوار و در عمل غیرممکن است. کلیدهای کوتاهتر از متن آشکار باعث ایجاد الگوهای تکرارشونده در متن رمز میشوند که با روشهای آماری پیشرفته در تحلیل فراوانی امکان شکست رمز را فراهم میکند. نیروهای ایالات مؤتلفه آمریکا در طول جنگ داخلی آمریکا از رمز ویژنر با کلیدهای Manchester Bluff, Complete Victory و Come Retribution استفاده میکردند که برای طرف مقابل شناختهشده بود.[13]
استفادههای اخیر
رمز سزار امروزه در بعضی اسباببازیهای کودکان استفاده میشود. همچنین در الگوریتم روت۱۳ از رمز سزار استفاده میشود. روت۱۳ روشی است که در یوزنت بهطور گسترده برای پنهان کردن متن (برای مثال پاسخ معماها و افشاسازها) استفاده میشود اما کاربردی برای امنیت ارتباط ندارد.[14]
در آوریل ۲۰۰۶، برناردو پروونتسانو پدرخواندهٔ فراری مافیا به دلیل بیدقتی و استفاده از رمز سزار در پیامهای مخفی، شناسایی و دستگیر شد. پروونتسانو برای نوشتن پیام از اعداد استفاده میکرد یعنی به جای A عدد ۴ نوشته میشد، به جای B عدد ۵ و الی آخر.[15]
در سال ۲۰۱۱ رجب کریم که از رمز سزار برای تماس با یک فعال اسلامگرای بنگلادشی و برنامهریزی برای بمبگذاری در هواپیماهای بریتیش ایرویز استفاده کرده بود، محاکمه و به زندان محکوم شد. کریم و همدستش با وجود آشنایی با سیستمهای پیشرفتهتر از قبیل پیجیپی و تروکریپت، از یک نسخه رمز سزار که خودشان در نرمافزار اکسل نوشته بودند استفاده میکردند. چون به باور آنان این سیستمهای پیشرفته برای «کفار» شناختهشده بودند.[16]
شیوهٔ رمزگذاری
تبدیل الفبای آشکار به الفبای رمز را میتوان با همردیف کردن دو الفبا نمایش داد. الفبای رمز درواقع همان الفبای آشکار است که به میزان مشخصی به سمت راست یا چپ چرخانده شده. برای مثال، رمز سزار با چرخش به چپ میزان انتقال ۳ در جعبهٔ پایین نمایش داده شده. کلید رمز همان مقدار جابجایی است که در این مثال برابر با ۳ انتخاب شده.[17]
آشکار: ABCDEFGHIJKLMNOPQRSTUVWXYZ رمز: DEFGHIJKLMNOPQRSTUVWXYZABC
رمز سزار را میتوان به صورت ریاضی با استفاده از همنهشتی نمایش داد. به این منظور ابتدا با استفاده از الگوی ساده زیر، حروف الفبا با اعداد جایگزین میشوند.[18]
سپس هر حرف x با انتقال n به ترتیب زیر رمزگذاری میشود:[19]
به طریق مشابه، رمزگشایی به صورت زیر انجام میشود.
توجه به این نکته ضروری است که تعاریف مختلفی برای عملیات پیمانه وجود دارد. در اینجا نتیجه پیمانه عددی بین ۰ تا ۲۵ است. یعنی اگر x+n یا x-n در بازه ۰ تا ۲۵ نباشد، باید ۲۶ با نتیجه جمع یا از آن کم شود.
تبدیل حروف آشکار به رمز در تمام متن یکسان است و به این ترتیب رمز سزار در رده رمزهای جانشینی (در برابر رمزهای چند الفبایی) قرار میگیرد.
مثال
برای رمزگذاری متن، کافی است که هر حرف از متن آشکار با حرف متناظر آن در الفبای رمز جایگزین شود. در مثال زیر از کلید ۳ برای رمزگذاری استفاده شده.
متن آشکار: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG متن رمز: WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
رمزگشایی به روش مشابه و با انتقال به همان میزان در جهت مقابل انجام میشود.
شکستن رمز
میزان انتقال رمزگشایی |
متن آشکار احتمالی |
---|---|
۰ | exxegoexsrgi |
۱ | dwwdfndwrqfh |
۲ | cvvcemcvqpeg |
۳ | buubdlbupodf |
۴ | attackatonce |
۵ | zsszbjzsnmbd |
۶ | yrryaiyrmlac |
... | |
۲۳ | haahjrhavujl |
۲۴ | gzzgiqgzutik |
۲۵ | fyyfhpfytshj |
رمز سزار حتی در شرایط حمله متن اصلی به راحتی قابل شکسته شدن است. دو موقعیت زیر میتوانند در نظر گرفته شوند:
- حملهکننده میداند یا حدس میزند که نوعی از رمز جانشینی ساده استفاده شدهاست اما مشخصا نمیداند که رمز سزار است.
- حملهکننده میداند که رمز سزار استفاده شدهاست اما مقدار انتقال را نمیداند.
در حالت اول استفاده از تکنیکهای معمول شکستن رمزهای جانشینی مانند تحلیل فراوانی به سادگی نتیجهبخش است. در حین استفاده از این تکنیکها، حملهکننده به راحتی متوجه نظم موجود در سیستم جانشینی و استفاده از رمز سزار خواهد شد.[20]
شکستن رمز در حالت دوم سادهتر از حالت اول است. از آنجا که تعداد ممکن انتقالها محدود است (در زبان انگلیسی ۲۶ حالت ممکن) اعمال حمله جستجوی فراگیر و آزمایش تمام حالات ممکن به سرعت انجام میشود.[21] برای مثال همانطور که در جدول نشان داده شده، بخشی از متن به همراه تمام انتقالهای ممکن نوشته میشود و ردیف حاوی متن بامعنی به راحتی قابل تشخیص است. در این روش کافی است که زیر هر حرف از متن رمز شده، تمام حروف الفبا به ترتیب نوشته شود.[22][23] در مثال جدول روبرو متن رمز شده EXXEGOEXSRGI است و به سادگی میتوان تشخیص داد که کلید رمز استفاده شده برابر با ۴ بوده.
روش دیگر حمله جستجوی فراگیر با کمک تحلیل فراوانی است. در این روش با مقایسه فراوانی حروف در متن رمز و فراوانی حروف در متون عادی زبان مورد استفاده و جابجایی دو نمودار میتوان میزان انتقال را پیدا کرد. برای مثال در زبان انگلیسی E و T پراستفادهترین و حروف Q و Z کماستفادهترین حروف هستند.[24][25] این روش توسط کامپیوتر هم قابل پیادهسازی است. برای این کار کافی است با استفاده از آزمون مربع کای، توزیع داده شده با توزیع مورد انتظار مقایسه شود.[26]
معمولاً فقط یک متن آشکار محتمل برای یک متن رمز وجود دارد، اما برای رمزهای بسیار کوتاه ممکن است تعداد پاسخهای محتمل بیشتر از یکی باشد. برای مثال متن رمز MPQY میتواند به aden یا know برگردد. بهطور مشابه ALIIP میتواند dolls یا wheel باشد و AFCCP را میتوان به jolly یا cheer رمزگشایی کرد. به حداقل طول متن رمز شده که لازم است تا متن اصلی به صورت یکتا قابل شناسایی باشد فاصله یکتایی گفته میشود.[27]
استفاده چندباره از رمز سزار بر روی یک متن به امنیت بیشتر منجر نمیشود. زیرا دو بار رمزگذاری با انتقالهای A و B معادل یک بار رمزگذاری با کلید A+B است. به زبان ریاضی میتوان گفت مجموعه رمز سزار با کلیدهای متنوع، تحت ترکیب یک گروه تشکیل میدهند.[28]
یادداشتها
- Caesar's code
- Caesar shift
- Shift cipher
پانویس
- Suetonius, “LVI”, The Lives of the Twelve Caesars, Volume 01: Julius Caesar.
- Reinke، «Classical Cryptography»، The Classical Journal، 114.
- Singh, The Code Book, 26-27.
- Suetonius, “LXXXVIII”, The Lives of the Twelve Caesars, Volume 02: Augustus.
- Bauer, Decrypted Secrets: Methods and Maxims of Cryptology, 47.
- Pieprzyk, Fundamentals of computer security, 6.
- Singh, The Code Book, 34-35.
- Poltorak, Alexander. "Mezuzah and Astrology". chabad.org. Archived from the original on 18 September 2020. Retrieved 12 June 2020.
- Kahn, The Codebreakers – The Story of Secret Writing, 775-776.
- Wobst, Cryptology unlocked, 20.
- Bauer, Decrypted Secrets: Methods and Maxims of Cryptology, 47.
- Luciano and Prichett، «Cryptology: From Caesar Ciphers to Public-Key Cryptosystems»، The College Mathematics Journal، 7.
- Kahn, The Codebreakers – The Story of Secret Writing, 217-221.
- Wobst, Cryptology unlocked, 20.
- Leyden, John (19 April 2006). "Mafia boss undone by clumsy crypto". The Register. Archived from the original on 12 June 2020. Retrieved 12 June 2020.≤
- "BA jihadist relied on Jesus-era encryption". The Register. 22 March 2011. Archived from the original on 12 June 2020. Retrieved 12 June 2020.
- Beutelspacher, Cryptology, 5.
- Luciano and Prichett، «Cryptology: From Caesar Ciphers to Public-Key Cryptosystems»، The College Mathematics Journal، 3.
- Wobst, Cryptology unlocked, 19.
- Beutelspacher, Cryptology, 9-11.
- Beutelspacher, Cryptology, 8-9.
- Leighton، «Secret Communication among the Greeks and Romans»، Technology and Culture، 153.
- Sinkov, Elementary cryptanalysis: A Mathematical Approach, 13-15.
- Singh, The Code Book, 37.
- Luciano and Prichett، «Cryptology: From Caesar Ciphers to Public-Key Cryptosystems»، The College Mathematics Journal، 5.
- Savarese, Chris; Hart, Brian (26 April 2010). "The Caesar Cipher". Archived from the original on 24 May 2020. Retrieved 15 June 2020.
- Menezas, Handbook of Applied Cryptography, 246.
- Wobst, Cryptology unlocked, 31.
منابع
- Bauer, Friedrich (1997). Decrypted Secrets: Methods and Maxims of Cryptology. Springer. ISBN 3540604189.
- Beutelspacher, Albrecht (1994). Cryptology. Mathematical Association of America. ISBN 9780883855041.
- Kahn, David (1967). The Codebreakers – The Story of Secret Writing. Macmillan. ISBN 0684831309.
- Leighton, Albert C. (April 1969). "Secret Communication among the Greeks and Romans". Technology and Culture. 10 (2): 139–154. Retrieved 8 June 2020 – via JSTOR. (نیاز به عضویت (help)).
- Luciano, Dennis; Prichett, Gordon (January 1987). "Cryptology: From Caesar Ciphers to Public-Key Cryptosystems". The College Mathematics Journal. 18 (1): 2–17. Retrieved 9 June 2020 – via JSTOR. (نیاز به عضویت (help)).
- Menezas, Alfred (1996). "Chapter 7 - Block Ciphers" (PDF). Handbook of Applied Cryptography. CRC Press. ISBN 0849385237. Retrieved 23 November 2020.
- Pieprzyk, Josef (2003). Fundamentals of computer security. Springer. ISBN 3540431012.
- Reinke, Edgar C. (December 1962). "Classical Cryptography". The Classical Journal. 58 (3): 113–121. Retrieved 8 June 2020 – via JSTOR. (نیاز به عضویت (help)).
- Singh, Simon (1999). The Code Book. Fourth State. ISBN 9781857028799.
- Sinkov, Abraham (1968). Elementary cryptanalysis: A Mathematical Approach. New York: Random House. ISBN 0883856220.
- Suetonius (121). The Lives of the Twelve Caesars, Volume 01: Julius Caesar.
- Suetonius (121). The Lives of the Twelve Caesars, Volume 02: Augustus.
- Wobst, Reinhard (2007). Cryptology unlocked. Wiley. ISBN 9780470516195.