ROT13

**ROT13** (**Rotate13**, "**13 basamak döndür (rotate by 13 places)**", bazen tire ile **ROT-13**), Latin alfabesinde bir harfi kendisinden sonraki 13. harfle değiştiren basit bir harf ikame şifresidir. ROT13, antik Roma'da geliştirilen Sezar şifresinin özel bir durumudur.

Temel Latin alfabesinde 26 harf (2×13) olduğundan, ROT13 kendi tersidir; yani, ROT13'ü geri almak için aynı algoritma uygulanır, böylece aynı eylem kodlama ve kod çözme için kullanılabilir. Algoritma neredeyse hiç kriptografik güvenlik sağlamaz ve genellikle zayıf şifrelemenin kanonik bir örneği olarak gösterilir.

ROT13, çevirm içi forumlarda spoilerları, can alıcı noktaları, bulmaca çözümlerini ve saldırgan materyalları sıradan bakışlardan gizlemek için kullanılmıştır. ROT13 internette çeşitli harf ve kelime oyunlarına ilham kaynağı olmuş ve haber grubu sohbetlerinde sıkça bahsedilmiştir.

## Tanım
ROT13'ü bir metin parçasına uygulamak sadece alfabetik karakterleri incelemeyi ve her birini alfabede 13 sıra ilerideki harfle değiştirmeyi, gerekirse başa sarmayı gerektirir. A N olur, B O olur ve böylece Z olan M'ye kadar devam eder, sonra sıra alfabenin başında devam eder: N A olur, O B olur ve böylece M olan Z'ye kadar devam eder. Sadece İngiliz alfabesinde bulunan harfler etkilenir; sayılar, semboller, noktalama işaretleri, boşluk ve diğer tüm karakterler değişmeden bırakılır. İngiliz alfabesinde 26 harf olduğundan ve 26 = 2 &times; 13 olduğundan, ROT13 işlevi kendi tersidir:

:\mbox{ROT}_{13}(\mbox{ROT}_{13}(x))=x, herhangi bir temel Latin alfabesi metni *x* için.

Başka bir deyişle, ROT13'ün iki ardışık uygulaması orijinal metni geri getirir (matematikte buna bazen *[[involüsyon (matematik)|involüsyon]]*; kriptografide ise *[[Simetrik anahtar algoritmaları#karşılıklı şifre|karşılıklı şifre]]* denir).

Dönüşüm, aşağıdaki gibi bir arama tablosu kullanılarak yapılabilir:

Örneğin, aşağıdaki anlatıdaki can alıcı nokta, ROT13 tarafından gizlenmiştir:

: Why did the chicken cross the road?
: Gb trg gb gur bgure fvqr!

Metnin tamamı ROT13 formuyla dönüştürüldüğünde, şakanın cevabı ortaya çıkıyor:

: Jul qvq gur puvpxra pebff gur ebnq?
: To get to the other side!

İkinci bir ROT13 uygulaması, orijinal haline geri döndürecektir.

## Kullanım
ROT13, MÖ 1. yüzyılda Julius Caesar tarafından kullanılan ve Sezar şifrelemesi olarak bilinen şifreleme algoritmasının özel bir durumudur.

Johann Ernst Elias Bessler, bir 18. yüzyıl saat ustası ve devridaim makinelerinin yapımcısı, ROT13'ün soyadını *Orffyre* olarak kodladığına dikkat çekti. Takma adı olarak latinleştirilmiş biçimi olan *Orffyreus*u kullanmıştır.

ROT13, 1980'lerin başında net.jokes haber grubunda kullanılıyordu. Potansiyel olarak rahatsız edici şakaları gizlemek veya bir bulmacanın cevabını veya diğer spoiler'ı gizlemek için kullanılır. Orijinal Sezar şifrelemesinde olduğu gibi üç gibi diğer değerler yerine on üçlük bir kaydırma seçilmiştir, çünkü on üç, kodlama ve kod çözmenin eşdeğer olduğu değerdir, böylece her ikisi için de tek bir komutun rahatlığına izin verir. ROT13, genellikle haber okuma yazılımlarında yerleşik bir özellik olarak desteklenir. E-posta adresleri de bazen daha az karmaşık olan spam botlarından gizlemek için ROT13 ile kodlanır.Ayrıca e-posta taramasını ve spam filtrelemesini atlatmak için de kullanılır. Bir e-postanın içeriğini gizleyerek, tarama algoritması e-postayı örneğin bir güvenlik riski olarak tanımlayamaz ve alıcının gelen kutusuna girmesine izin verir.

Şifrelenmiş, normal, herhangi bir büyüklükteki İngilizce metinde, ROT13 bazı harf/sözcük kalıplarından tanınabilir. "n", "V" (yalnızca büyük harfle) ve "gur" ("a", "I" ve "the" için ROT13) kelimeleri ve "yl" ("ly") ile biten kelimeler bunlara örnektir.

ROT13 gizliliğin endişe kaynağı olduğu herhangi bir durumda kullanılmak üzere tasarlanmamıştır -sabit kaydırma kullanımı şifrelemenin etkin bir şekilde anahtar olmadığı anlamına gelir ve şifre çözme ROT13'ün kullanımda olduğu gerçeğinden daha fazla bilgi gerektirmez. Bu bilgi olmadan bile, algoritma frekans analizi yoluyla kolayca kırılabilir. Gerçek gizlilik için tamamen uygun olmaması nedeniyle, ROT13 göze çarpan herhangi bir zayıf şifreleme şemasına atıfta bulunmak için bir slogan haline gelmiştir; bir eleştirmen "56 bit DES bugünlerde ROT13'ten biraz daha iyi" olduğunu iddia edebilir. Ayrıca, "çift DES" gibi gerçek terimler üzerinde yapılan bir oyunda, "çift ROT13", "ROT26" veya "2ROT13" terimleri mizahi bir amaçla ortaya çıkar (zaten ROT13 ile şifrelenmiş bir metne ROT13 uygulamak orijinal düz metni geri yüklediğinden, ROT26 hiç şifrelemeye eşdeğerdir), "2ROT13 Şifreleme Algoritması Üzerine (On the 2ROT13 Encryption Algorithm)" başlıklı sahte bir akademik makale de dahil. Buna ek olarak, üçlü ROT13 (3DES ile şaka amaçlı benzetme için kullanılır) normal ROT13'e eşdeğerdir.

Aralık 1999'da, Netscape Communicator'ın e-posta şifrelerini saklamak için güvensiz bir planın parçası olarak ROT13 kullandığı tespit edildi. 2001 yılında Rus programcı Dimitry Sklyarov bir e-Kitap satıcısı olan New Paradigm Research Group'un (NPRG) belgelerini şifrelemek için ROT13 kullandığını göstermiştir; NPRG'nin Adobe e-Kitap yazılım geliştirme kiti ile sağlanan önemsiz bir ROT13 örneğini ciddi bir şifreleme şeması sanmış olabileceği tahmin edilmektedir. Windows XP, bazı kayıt defteri anahtarlarında ROT13 kullanır. ROT13 ayrıca Unix fortune programında potansiyel olarak saldırgan dictayı gizlemek için kullanılır.

## Harf oyunları ve ağ kültürü

ROT13 harf oyunları için bir fırsat sağlar. Bazı kelimeler ROT13 ile dönüştürüldüğünde başka bir kelime üretir. İngilizce dilindeki 7 harfli çiftlere örnek olarak **' ve ''nowhere'' ile ''[[Çeçenler|Chechen]]'' ve **' verilebilir. Bunlar gibi diğer kelime örnekleri tabloda gösterilmiştir. *[[gnat]]* ve *tang* çifti hem ROT13 karşılıkları hem de tersleri olan kelimelere bir örnektir.

1989 International Obfuscated C Code Contest (IOCCC) Brian Westley tarafından yapılan bir girişi içeriyordu. Westley'in bilgisayar programı ROT13'te kodlanabilir veya tersine çevrilebilir ve yine de derler doğru şekilde. Çalıştırıldığında, ya ROT13 kodlamasını gerçekleştirir ya da girdisini tersine çevirir.

alt.folklore.urban haber grubu, sıkça kodlanan "sheesh" ifadesinin ROT13 kodlaması olan bir kelime —*furrfu*— icat etti. "Furrfu" 1992 yılının ortalarında alt.folklore.urban'da şehir efsanesini tekrarlayan gönderilere bir yanıt olarak, bazı göndericilerin yeni gelenlere yanıt olarak "Sheesh!" ifadesinin aşırı kullanıldığından şikayet etmelerinin ardından gelişti.

## Varyantlar
ROT5, sayısal rakamlar (0 ila 9) için geçerli olan ROT13'e benzer bir uygulamadır. ROT13 ve ROT5 aynı mesajda birlikte kullanılabilir, bazen ROT18 (18 = 13 + 5) veya ROT13.5 olarak adlandırılır.

ROT47, temel harfleri karıştırmanın yanı sıra sayıları ve yaygın sembolleri de ele alan ROT13'ün bir türevidir. Alfabe olarak A-Z dizisini kullanmak yerine, ROT47 ASCII olarak bilinen yaygın karakter kodlamasından daha geniş bir karakter kümesi kullanır. Özellikle, boşluk hariç, ondalık 33 '!' ile 126 '~' arasındaki 7 bitlik yazdırılabilir karakterler, ASCII kodlarının sayısal değerlerinin sırasına göre alınan toplam 94, özel durum dikkate alınmadan 47 konum döndürülür. Örneğin, A karakteri p ile eşlenirken, a karakteri 2 ile eşlenir. Daha büyük bir alfabenin kullanılması ROT13'ünkinden daha kapsamlı bir gizleme üretir; örneğin, +1-415-839-6885 gibi bir telefon numarası Z'\c`d\gbh\eggd karıştırılmış sonucundan ilk bakışta belli olmaz. Öte yandan, ROT47 sayıları ve sembolleri ayrım yapmadan karışıma dahil ettiğinden, metnin kodlanmış olduğu hemen anlaşılır.

Örnek:
:The Quick Brown Fox Jumps Over The Lazy Dog.
:%96 "F:4AD ~G6C %96 {2KJ s@8]
şeklinde şifrelenir.

Bilgisayar programlamada kullanılabilen standart rutinler kümesi olan GNU C kütüphanesi, bir fonksiyon -**<kbd>mem<abbr title=frobnicate>frob</abbr>()</kbd>** içeren— ROT13 ile benzer bir amaca sahiptir, ancak rastgele ikili verilerle kullanılmak üzere tasarlanmıştır. İşlev, dışlayıcı veya (XOR) işlemini kullanarak her byte ile ikili desenini 00101010 (42)) birleştirerek çalışır. Bu bir basit XOR şifresi oluşturur. ROT13 gibi, XOR (ve dolayısıyla memfrob()) kendi kendine karşılıklıdır ve neredeyse hiç olmayan benzer bir güvenlik seviyesi sağlar.

## Uygulama
### tr
ROT13 ve ROT47'nin Unix terminal uygulaması tr kullanılarak uygulanması oldukça kolaydır; ROT13'te "The Quick Brown Fox Jumps Over The Lazy Dog" dizesini şifrelemek için:


```console
$ # Map upper case A-Z to N-ZA-M and lower case a-z to n-za-m
$ 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
```


ve ROT47 için aynı dize:

```console
$ 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
```


### Emacs ve Vim
Emacs'da, tamponu veya bir seçimi `M-x toggle-rot13-mode`, `M-x rot13-other-window` veya `M-x rot13-region` komutlarıyla ROT13 uygulaması yapabilirsiniz.

Vim metin düzenleyicide, bir tamponu `ggg?G` komutuyla ROT13 yapabilirsiniz.

### Python
 modülü,  metin dönüşümü sağlar.


```pycon
>>> import codecs
>>> print(codecs.encode('The Quick Brown Fox Jumps Over The Lazy Dog', 'rot13'))
Gur Dhvpx Oebja Sbk Whzcf Bire Gur Ynml Qbt
```


Herhangi bir kütüphaneyi içe aktarmadan, iki satırlık liste içerimi (list comprehension) ile yapılabilir:


```python
string = "Quartz glyph job vext cwm porshrop finks?!"

for abcd in ["abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]:
	string = ''.join([abcd[(abcd.index(char) + 13) % 26] if char in abcd else char for char in string])

print(string)

# Dhnegm tylcu wbo irkg pjz cbefuebc svaxf?!
```


## Ayrıca bakınız
* Kriptanaliz
* Atbash

## Notlar

## Kaynakça

## Dış bağlantılar
* Çevrimiçi dönüştürücü: ROT13, ROT5, ROT18, ROT47, Atbash ve Sezar şifrelemesi için.
* ROT13 to Text on PureTables.com