روت۱۳: تفاوت میان نسخهها
[نسخهٔ بررسینشده] | [نسخهٔ بررسینشده] |
جزبدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۳۸: | خط ۳۸: | ||
== موارد استفاده == |
== موارد استفاده == |
||
در اوایل دههٔ ۱۹۸۰ (میلادی)، از ROT13 در [[گروه خبری]] <tt>net.jokes</tt> استفاده میشد.{{پا|نام=rot13-early}} از ROT13 برای پنهان کردن لطیفههای اهانتآمیز یا برای مخفی کردن پاسخ یک معما یا مسئله یا هر گونه اسپویلر دیگری استفاده میشد.{{پا|نام=schneier}}{{پا|نام=jargon}} دلیل انتخاب ۱۳ به جای دیگر مقادیر نظیر ۳ که در [[رمزنگاری سزار]] اصلی استفاده میشود، به این خاطر بود که با تعویض کردن هر دو حرفی که ۱۳ واحد با هم فاصله دارند، میتوان الگوریتمهای رمزگذاری و رمزگشایی مشابه و یکسانی داشت؛ در نتیجه میتوان به راحتی از یک دستور واحد برای انجام هر دو عمل استفاده کرد.{{پا|نام=jargon}} نرمافزارهای خبرخوان، معمولاً از ROT13 بهصورت توکار پشتیبانی میکنند و نیازی به نصب کردن هیچگونه افزونه اضافی نیست.{{پا|نام=jargon}} آدرسهای ایمیل هم گاهی اوقات با ROT13 رمزنگاری میشوند تا از [[ربات جفنگنگاری|رباتهای جفنگنگاری]] غیر پیشرفته در امان بمانند. |
در اوایل دههٔ ۱۹۸۰ (میلادی)، از ROT13 در [[گروه خبری]] <tt>net.jokes</tt> استفاده میشد.{{پا|نام=rot13-early}} از ROT13 برای پنهان کردن لطیفههای اهانتآمیز یا برای مخفی کردن پاسخ یک معما یا مسئله یا هر گونه اسپویلر دیگری استفاده میشد.{{پا|نام=schneier}}{{پا|نام=jargon}} دلیل انتخاب ۱۳ به جای دیگر مقادیر نظیر ۳ که در [[رمزنگاری سزار]] اصلی استفاده میشود، به این خاطر بود که با تعویض کردن هر دو حرفی که ۱۳ واحد با هم فاصله دارند، میتوان الگوریتمهای رمزگذاری و رمزگشایی مشابه و یکسانی داشت؛ در نتیجه میتوان به راحتی از یک دستور واحد برای انجام هر دو عمل استفاده کرد.{{پا|نام=jargon}} نرمافزارهای خبرخوان، معمولاً از ROT13 بهصورت توکار پشتیبانی میکنند و نیازی به نصب کردن هیچگونه افزونه اضافی نیست.{{پا|نام=jargon}} آدرسهای ایمیل هم گاهی اوقات با ROT13 رمزنگاری میشوند تا از [[ربات جفنگنگاری|رباتهای جفنگنگاری]] غیر پیشرفته در امان بمانند.{{پا|نام=rot13-email}} |
||
ROT13 نمونهای از یک [[الگوریتم رمزنگاری]] است که به نام [[رمزنگاری سزار]] شناخته میشود. گفته میشود [[ژولیوس سزار]] در قرن اول [[پیش از میلاد]]، الگوریتم سزار را ابداع کرده است.{{پا|نام=rot13-roma}} |
ROT13 نمونهای از یک [[الگوریتم رمزنگاری]] است که به نام [[رمزنگاری سزار]] شناخته میشود. گفته میشود [[ژولیوس سزار]] در قرن اول [[پیش از میلاد]]، الگوریتم سزار را ابداع کرده است.{{پا|نام=rot13-roma}} |
||
خط ۱۸۲: | خط ۱۸۲: | ||
|اثر =[[Usenet]] group uk.comp.sys.mac (Message ID UZ36hgCSoh$+EwqG@nodomain.nodomain.us) |
|اثر =[[Usenet]] group uk.comp.sys.mac (Message ID UZ36hgCSoh$+EwqG@nodomain.nodomain.us) |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFlzZUke | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFlzZUke |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="schneier">{{یادکرد کتاب |
<ref name="schneier">{{یادکرد کتاب |
||
خط ۲۱۱: | خط ۲۱۲: | ||
|اثر =The Jargon File, 4.4.7 |
|اثر =The Jargon File, 4.4.7 |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFlzxlPy | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFlzxlPy |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name=rot13-roma>{{یادکرد کتاب |
<ref name=rot13-roma>{{یادکرد کتاب |
||
خط ۲۳۴: | خط ۲۳۶: | ||
|اثر =Furrfu! |
|اثر =Furrfu! |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm0Exa7 | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm0Exa7 |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="joke-article">{{یادکرد وب |
<ref name="joke-article">{{یادکرد وب |
||
خط ۲۴۴: | خط ۲۴۷: | ||
|تاریخ بازدید =20 September 2007 |
|تاریخ بازدید =20 September 2007 |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm0l1cd | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm0l1cd |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="netscape">{{یادکرد وب |
<ref name="netscape">{{یادکرد وب |
||
خط ۲۵۴: | خط ۲۵۸: | ||
|تاریخ بازدید =20 September 2007 |
|تاریخ بازدید =20 September 2007 |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm11n2e | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm11n2e |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="zdnet">{{یادکرد وب |
<ref name="zdnet">{{یادکرد وب |
||
خط ۲۶۶: | خط ۲۷۱: | ||
|ناشر =[[ZDNet News]] |
|ناشر =[[ZDNet News]] |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm2CHqL | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm2CHqL |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="winxp">{{یادکرد وب |
<ref name="winxp">{{یادکرد وب |
||
خط ۲۷۷: | خط ۲۸۳: | ||
|تاریخ بازدید =20 September 2007 |
|تاریخ بازدید =20 September 2007 |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm3V8Pw | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm3V8Pw |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name=westley>{{یادکرد وب |
<ref name=westley>{{یادکرد وب |
||
خط ۲۸۸: | خط ۲۹۵: | ||
|تاریخ بازدید =13 August 2007 |
|تاریخ بازدید =13 August 2007 |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm4JbYV | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm4JbYV |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name=rot47>{{یادکرد وب |
<ref name=rot47>{{یادکرد وب |
||
خط ۲۹۸: | خط ۳۰۶: | ||
|تاریخ بازبینی= |
|تاریخ بازبینی= |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm4YAnq | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm4YAnq |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="memfrob">{{یادکرد وب |
<ref name="memfrob">{{یادکرد وب |
||
خط ۳۰۸: | خط ۳۱۷: | ||
|تاریخ بازدید =20 September 2007 |
|تاریخ بازدید =20 September 2007 |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm51TRO | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm51TRO |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="furrfu">{{یادکرد وب |
<ref name="furrfu">{{یادکرد وب |
||
خط ۳۲۰: | خط ۳۳۰: | ||
|تاریخ بازدید =13 August 2007 |
|تاریخ بازدید =13 August 2007 |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm5H9EY | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm5H9EY |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="vim">{{یادکرد وب |
<ref name="vim">{{یادکرد وب |
||
خط ۳۳۲: | خط ۳۴۳: | ||
|تاریخ بازدید =10 June 2014 |
|تاریخ بازدید =10 June 2014 |
||
|کد زبان =en |
|کد زبان =en |
||
| پیوند بایگانی = http://www.webcitation.org/6QFm5s9cF | تاریخ بایگانی = |
| پیوند بایگانی = http://www.webcitation.org/6QFm5s9cF |
||
| تاریخ بایگانی = 11 June 2014}}</ref> |
|||
<ref name="techrep-rot13">{{یادکرد وب |
<ref name="techrep-rot13">{{یادکرد وب |
||
خط ۳۴۳: | خط ۳۵۵: | ||
|تاریخ = 3 February 2010 |
|تاریخ = 3 February 2010 |
||
|تاریخ بازدید = 10 June 2014 |
|تاریخ بازدید = 10 June 2014 |
||
|نشانی بایگانی = |
|||
|تاریخ بایگانی = |
|||
|کد زبان = en |
|||
}}</ref> |
|||
<ref name="rot13-email">{{یادکرد وب |
|||
|نشانی = http://www.practicalecommerce.com/articles/2434-How-to-Hide-Email-Addresses-From-Spam-Bots |
|||
|عنوان = How to Hide Email Addresses From Spam Bots |
|||
|نام = Matt |
|||
|نام خانوادگی = Ferner |
|||
|نویسنده = |
|||
|ناشر = PracticalEcommerce |
|||
|تاریخ = 8 December 2010 |
|||
|تاریخ بازدید = 12 June 2014 |
|||
|نشانی بایگانی = |
|نشانی بایگانی = |
||
|تاریخ بایگانی = |
|تاریخ بایگانی = |
نسخهٔ ۱۲ ژوئن ۲۰۱۴، ساعت ۰۳:۰۷
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/33/ROT13_table_with_example.svg/320px-ROT13_table_with_example.svg.png)
روت۱۳ (به انگلیسی: ROT13) یک روش ساده برای به رمز درآوردن حروف الفبا است. این روش از نوع رمزنگاری جانشینی است. در این روش، هر حرف، با سیزدهیمن حرف بعد از خود در حروف الفبا جایگزین میشود. ROT13 نمونهای از رمز سزار است که در روم باستان بوجود آمده است.
در الفبای مقدماتی لاتین، ROT13 به صورت خودوارون عمل میکند. به این معنی که برای برگرداندن متن رمزشده به حالت اولیه، از همان الگوریتم استفاده میشود و به این ترتیب میتوان از یک عمل یکسان هم برای رمزگذاری و هم برای رمزگشایی استفاده کرد. این الگوریتم عملاً هیچ نوع امنیتی ندارد و اغلب از آن به عنوان مثالی از یک روش رمزنگاری ضعیف و بدون امنیت یاد میشود.
از ROT13 در تالارهای گفتگوی اینترنتی به عنوان وسیلهای برای پنهان کردن اسپویلرها، شاهبیتها، راهحل مسائل و معماها و مطالب تعرضآمیز استفاده میشود تا جلوی دید اتفاقی را بگیرد. در نشریات و مجلات، عموماً برای پنهان کردن پاسخ معماها، آنها را به صورت وارون چاپ میکنند تا خواننده در حالت عادی قادر به خواندن پاسخ نباشد و مجبور باشد برای دیدن پاسخ، کاغذ را بچرخاند. از الگوریتم ROT13، به عنوان «برابر یوزنتی این روش» یاد شده است. ROT13 الهامبخش انواع گوناگونی از بازیهای نامهای آنلاین بوده است و در گفتگوهای گروههای خبری به طور مکرر به آن اشاره میشود.
شرح
برای اعمال کردن الگوریتم ROT13 بر روی یک متن انگلیسی، کافیست هر یک از حروف با سیزدهمین حرف مابعد خود در الفبای انگلیسی جایگزین شود و در صورت نیاز، عمل جایگزینی از ابتدای فهرست صورت گیرد. برای راحتی کار، میتوان کلیهٔ حروف الفبای زبان انگلیسی را به صورت ساعتگرد و دایرهوار بر روی یک تکه کاغذ نوشت و سپس برای جایگزین کردن هر حرف، انگشت دست را بر روی آن حرف گذاشته و ۱۳ مکان به صورت ساعتگرد حرکت کرده و سپس حرفی که انگشت دست بر روی آن قرار گرفته را بنویسیم. با این کار، حرف A به حرف N تبدیل میشود، B به حرف O تبدیل میشود و به همین ترتیب تا حرف M که به Z تبدیل میشود. سپس این دنباله از ابتدای حروف الفبا آغاز میشود، حرف N به A تبدیل میشود، O به B تبدیل میشود و به همین ترتیب تا حرف Z که به M تبدیل میشود. تنها حروفی که در الفبای انگلیسی قرار دارند تحت تاثیر قرار میگیرند، اعداد، نمادها و علائم، حروف فاصله و تمام حروفهای دیگر، بدون تغییر رها میشوند. از آنجا که حروف الفبای انگلیسی بیست و شش حرف دارد و ۲۶ = ۲ × ۱۳، تابع ROT13 یک تابع خودوارون است. به عبارتی دیگر، برای هر متن x که با الفبای لاتین ساده نوشته شده است، داریم:
به عبارت دیگر، اگر دو بار پشت سر هم ROT13 را بر روی یک متن بکار ببریم، نتیجه همان متن اولیه خواهد بود (در ریاضیات معمولاً به آن «رجعت» و در رمزنگاری به آن رمزنگاری دوجانبه میگویند.)
عمل تبدیل متن میتواند به وسیلهٔ یک جدول جستجو صورت پذیرد.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz |
NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm |
در لطیفهٔ زیر، پانچلاین توسط ROT13 پنهان شده است:
How can you tell an extrovert from an introvert at NSA? Va gur ryringbef, gur rkgebireg ybbxf ng gur BGURE thl'f fubrf.
اگر کل متن را با استفاده از الگوریتم ROT13 تبدیل کنیم، پاسخ نمایان خواهد شد:
Ubj pna lbh gryy na rkgebireg sebz na vagebireg ng AFN? In the elevators, the extrovert looks at the OTHER guy's shoes.
اگر بار دیگر بر روی متن نتیجه، الگوریتم ROT13 را اجرا کنیم، متن اولیه بدست خواهد آمد.
موارد استفاده
در اوایل دههٔ ۱۹۸۰ (میلادی)، از ROT13 در گروه خبری net.jokes استفاده میشد. از ROT13 برای پنهان کردن لطیفههای اهانتآمیز یا برای مخفی کردن پاسخ یک معما یا مسئله یا هر گونه اسپویلر دیگری استفاده میشد. دلیل انتخاب ۱۳ به جای دیگر مقادیر نظیر ۳ که در رمزنگاری سزار اصلی استفاده میشود، به این خاطر بود که با تعویض کردن هر دو حرفی که ۱۳ واحد با هم فاصله دارند، میتوان الگوریتمهای رمزگذاری و رمزگشایی مشابه و یکسانی داشت؛ در نتیجه میتوان به راحتی از یک دستور واحد برای انجام هر دو عمل استفاده کرد. نرمافزارهای خبرخوان، معمولاً از ROT13 بهصورت توکار پشتیبانی میکنند و نیازی به نصب کردن هیچگونه افزونه اضافی نیست. آدرسهای ایمیل هم گاهی اوقات با ROT13 رمزنگاری میشوند تا از رباتهای جفنگنگاری غیر پیشرفته در امان بمانند. ROT13 نمونهای از یک الگوریتم رمزنگاری است که به نام رمزنگاری سزار شناخته میشود. گفته میشود ژولیوس سزار در قرن اول پیش از میلاد، الگوریتم سزار را ابداع کرده است. در مواردی که محرمانه بودن اطلاعات مد نظر است و اطلاعات نباید بدست افراد غیرمجاز بیفتد، نباید از ROT13 استفاده شود. از آنجایی که در الگوریتم ROT13 هر حرف به تعداد ثابتی (۱۳ تا) جابجا میشود – و در واقع میتوان گفت که از هیچگونه کلیدی برای رمزنگاری استفاده نمیشود – اطلاعات به سادگی قابل رمزگشایی هستند. تنها با دانستن اینکه اطلاعات با الگوریتم ROT13 رمزنگاری شدهاند، میتوان به آسانی و با همین الگوریتم اطلاعات را رمزگشایی کرده و به حالت اولیه درآورد. حتی اگر دانسته نباشد که اطلاعات به روش ROT13 رمزنگاری شدهاند، باز هم میتوان این الگوریتم را به آسانی و به روش تحلیل فراوانی در هم شکست. به خاطر اینکه این الگوریتم مطلقاً برای رمزنگاری نامناسب است، تبدیل به یک کنایه برای تمسخر کردن دیگر الگوریتمهای ضعیف رمزنگاری شده است. مثلاً شخصی میتواند بگوید که «الگوریتم ۵۶-بیتی DES فقط یه خورده از ROT13 قویتره» که اشاره به ضعیف بودن این الگوریتم دارد. همچنین برای شوخی با اصطلاحاتی حقیقی در دنیای واقعی مانند «DES دوگانه»، اصطلاحات تمسخرآمیزی مانند «ROT13 دوگانه»، «ROT26» یا «2ROT13» مورد استفاده قرار میگیرند که یک نمونه از استفاده این کلمات، یک مقالهٔ دانشگاهی جعلی به نام «در مورد الگوریتم رمزنگاری 2ROT13» است. از آنجایی که اگر الگوریتم ROT13 را بر روی متنی که خود قبلاً با ROT13 رمزنگاری شده، اعمال کنیم، متن اصلی و اولیه بدست میآید، اصطلاح ROT26 یا 2ROT13 معادل «بدون هر گونه رمزنگاری» است. اصطلاح «ROT13 سهگانه» که برای شوخی با 3DES استفاده میشود، برابر با همان ROT13 معمولی است. در ماه دسامبر ۱۹۹۹ (میلادی)، کشف شد که نتاسکیپ کامیونیکیتور از ROT-13 برای رمزنگاری کردن پسورد ایمیلها استفاده میکند. در سال ۲۰۰۱ (میلادی)، برنامهنویس روسی، Dimitry Sklyarov نشان داد که یک فروشندهٔ کتابهای الکترونیکی به نام NPRG از ROT13 برای رمزنگاری کردن اسناد استفاده میکرده است. گمانهزنیهایی در این باره وجود داشت که ممکن است NPRG اشتباهاً یک مثال شوخیآمیز در مورد ROT13 که در Adobe eBook software development kit آمده بود را به عنوان یک روش جدی و قدرتمند برای رمزنگاری اطلاعات تفسیر کرده باشد. ویندوز اکسپی در برخی از کلیدهای رجیستری خود از ROT13 استفاده میکند.
بازیهای نامهای و فرهنگ اینترنت
abcdefghijklmnopqrstuvwxyz NOPQRSTUVWXYZABCDEFGHIJKLM | |
aha ↔ nun | ant ↔ nag |
balk ↔ onyx | bar ↔ one |
barf ↔ ones | be ↔ or |
bin ↔ ova | ebbs ↔ roof |
envy ↔ rail | er ↔ re |
errs ↔ reef | flap ↔ sync |
fur ↔ she | gel ↔ try |
gnat ↔ tang | irk ↔ vex |
clerk ↔ pyrex | purely ↔ cheryl |
PNG ↔ cat | SHA ↔ fun |
furby ↔ sheol | terra ↔ green |
what ↔ Jung | URL ↔ hey |
purpura ↔ Chechen | shone ↔ FUBAR |
Ares ↔ Nerf | abjurer ↔ nowhere |
با رمزنگاری کردن برخی از کلمات با استفاده از ROT13، کلمه معنیدار دیگری حاصل میشود. این ویژگی ROT13 دستمایهٔ برخی از بازیهای نامهای شده است. طولانیترین[نیازمند منبع] نمونه در زبان انگلیسی، دو کلمهٔ هفت-حرفی abjurer و nowhere هستند که اگر ROT13 را بر روی یکی از آنها اعمال کنیم، کلمهٔ دیگر بدست میآید. دو کلمهٔ chechen و purpura هم هر دو هفتحرفی هستند که این ویژگی را دارند. نمونههای دیگری از این قبیل کلمات، در جدول روبرو آورده شده است. در این میان، دو کلمهٔ gnat و tang یک نمونه جالب توجه است که هم اجرای ROT13 بر روی یکی، دیگری را نتیجه میدهد و هم اینکه اگر یکی را به صورت وارونه بخوانیم، نتیجه دیگری خواهد بود. Brian Westley در مسابقهٔ بینالمللی کدنویسی مبهم به زبان سی در سال ۱۹۸۹ میلادی، یک برنامهٔ رایانهای نوشته بود که کد منبع آن این قابلیت را داشت که با استفاده از ROT13 کدگذاری و یا وارون شود، به طوریکه همچنان بتوان آن را بدرستی کامپایل کرد. این برنامه هنوز هم با گذشت سالها، بر روی کامپایلرهای امروزی بهدرستی کامپایل میشود. کار این برنامه این بود که متنی که به عنوان ورودی به آن داده میشد را با استفاده از ROT13 رمزنگاری یا معکوس کند. گروه خبری alt.folklore.urban واژهای جدید به نام furrfu را اختراع کرده است که در اصل با اعمال ROT13 بر روی واژه sheesh بوجود آمده است. این واژه به این خاطر بوجود آمد که برخی از کاربران این گروه خبری، فکر میکردند که واژهٔ sheesh بیش از حد مورد استفاده قرار میگیرد و در صدد جایگزین کردن آن برآمدند. واژهٔ sheesh در این گروه خبری، به عنوان پاسخی برای ارسالهای تکراری تازهواردین در مورد افسانههای محلی مورد استفاده قرار میگرفت.
گونهها
ROT5 الگوریتمی مشابه ROT13 است که بر روی ارقام عددی (۰ تا ۹) اعمال میشود. ROT13 و ROT5 میتوانند به صورت همزمان برای رمزنگاری کردن یک پیام مورد استفاده قرار گیرند.
ROT47 یکی از مشتقات ROT13 است که علاوه بر حروف ساده الفبای انگلیسی، میتواند اعداد و علائم را هم رمز کند. ROT47 به جای استفاده کردن از دنباله A–Z به عنوان حروف الفبا، از مجموعه کاراکترهای بزرگتری از یک کدبندی نویسه رایج به نام ASCII استفاده میکند. در این روش، کاراکترهای ۷-بیتی چاپشدنی، به استثنای فضای خالی (space)، از بازهٔ ۳۳ تا ۱۲۶ با چهل و هفتمین کاراکتر بعد از خود جایگزین میشوند. به عنوان مثال، کاراکتر A با p جایگزین میشود، کاراکتر a به 2 تبدیل میشود و به همین ترتیب. این روش هم مشابه ROT13 خودوارون است و اجرای مجدد ROT47 بر روی متنی که قبلاً با همین روش رمز شده، متن اولیه و اصلی را دربرخواهد داشت. استفاده کردن از این الفبای بزرگتر باعث میشود نتیجه کار از ROT13 مبهمتر باشد. برای مثال، یک شمارهٔ تلفن همانند +1-415-839-6885 به شکل Z`\c`d\gbh\eggd رمز میشود که در نگاه اول خیلی واضح و مشخص نیست. از سوی دیگر، از آنجایی که ROT47 هم حروف، هم اعداد و هم نشانهها را بدون فرق گذاشتن بین آنها در هم میآمیزد، با یک نگاه به متن میتوان به سرعت پی برد که این یک متن رمزشده است، نه یک جمله معمولی.
مثال:
- The Quick Brown Fox Jumps Over The Lazy Dog.
که به صورت زیر رمز میشود:
- %96 "F:4<qC@H? u@I yF>AD ~G6C %۹۶ {2KJ s@۸]
در کتابخانه سی گنو که مجموعهای از رابطهای برنامهنویسی نرمافزار است، تابعی به نام memfrob() وجود دارد که کاری مشابه ROT13 انجام میدهد. هرچند که این تابع به جای حروف الفبا، با دادههای باینری دلخواه کار میکند و از این حیث با ROT13 متفاوت است. این تابع هر بایت را با عدد باینری 00101010 XOR میکند که نتیجه آن یک رمز XOR ساده است. همانند ROT13، تابع memfrob() هم خودوارون است و امنیتی به همان میزان (عملاً بدون امنیت) فراهم میکند.
پیادهسازیها
دستوری به نام tr در سیستمعاملهای شبه یونیکس وجود دارد که به وسیله آن به راحتی میتوان ROT13 و ROT47 را پیادهسازی کرد. برای رمزگذاری کردن رشتهٔ متنی The Quick Brown Fox Jumps Over The Lazy Dog به وسیلهٔ ROT13، کافیست به صورت زیر عمل کرد:
$ # Map upper case A-Z to N-ZA-M and lower case a-z to n-za-m
$ echo "The Quick Brown Fox Jumps Over The Lazy Dog" | tr 'A-Za-z' 'N-ZA-Mn-za-m'
Gur Dhvpx Oebja Sbk Whzcf Bire Gur Ynml Qbt
$ tr 'A-Za-z' 'N-ZA-Mn-za-m' <<<"The Quick Brown Fox Jumps Over The Lazy Dog"
Gur Dhvpx Oebja Sbk Whzcf Bire Gur Ynml Qbt
و برای رمزنگاری همان رشته به وسیلهٔ ROT47:
$ echo "The Quick Brown Fox Jumps Over The Lazy Dog" | tr '\!-~' 'P-~\!-O'
%96 "F:4<qC@H? u@I yF>AD ~G6C %96 {2KJ s@8
و
$ tr '\!-~' 'P-~\!-O' <<<"The Quick Brown Fox Jumps Over The Lazy Dog"
%96 "F:4<qC@H? u@I yF>AD ~G6C %96 {2KJ s@8
در ویرایشگر متن ویم، میتوان متن مورد نظر را انتخاب کرده و سپس دستور زیر را اجرا کرد تا متن مورد نظر به صورت ROT13 رمزنگاری شود:
g?
پیادهسازی به زبان سی:
void rot13(char *p)
{
int i=0;
int n;
while(p[i])
{
if (p[i] <'A' || p[i]> ('a'+26))
{
i++;
continue;
}
if (p[i] <'a')
{
n = 'A';
}
else
{
n = 'a';
}
n = (p[i] - (n+13)) % 26 + n;
p[i++] = (char)n;
}
}
جستارهای وابسته
پانویس
منابع
خطای یادکرد: برچسپ <ref>
که با نام «usenet-eq» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «schneier» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «rot13-early» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «jargon» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «rot13-roma» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «words» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «joke-article» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «netscape» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «zdnet» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «winxp» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «westley» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «rot47» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «memfrob» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «furrfu» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «vim» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «techrep-rot13» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
خطای یادکرد: برچسپ <ref>
که با نام «rot13-email» درون <references>
تعریف شده، در متن قبل از آن استفاده نشده است.
پیوند به بیرون
- مبدل آنلاین برای ROT13 و ROT5 (بدون جاوااسکریپت)
- مبدلهای ROT13، ROT5، ROT18 و ROT47 (با استفاده از جاوا اسکریپت)