# Tek kullanımlık şifre
Tek kullanımlık şifre (), Gilbert Vernam tarafından keşfedilmiş bir kripto sistemi. Kullanılacak anahtar şifrelenecek metnin boyutu kadar olmalıdır ve yalnız bir kereye mahsus üretilip kullanılmalıdır. Böylece şifrelenmiş metni ele geçiren saldırgana hiçbir bilgi verilmemiş olunur.
Kriptografi olarak tek kullanımlık şerit doğru kullanıldığı takdirde kırmanın imkânsız olduğu kanıtlanmış şifreleme türüdür.
Düz metin için her bit veya karakter düz metin olarak aynı uzunlukta bir gizli rastgele anahtar ile her bit veya karakter modüler olarak eklenerek şifreleniyor. Anahtar gerçekten rastgele ise düz metinden oldukça ve daha büyükse, kısmen veya tamamen tekrar kullanılamıyorsa ve gizli tutuluyorsa şifreli metni anahtarı bilerek kırmak veya şifrelemek imkânsızdır. Ayrıca herhangi bir şifre otp (tek kullanımlık şerit) anahtarları ile aynı şartlarda olsa da mükemmel gizlilik özelliklerindeki şifre yerine kullanılamayacağı kanıtlanmıştır. Ancak pratiklik problemi tek kullanımlık şeritlerin yaygın olarak kullanılmasını engellemiştir.
İlk 1882 yılında Frank Miller tarafından tanımlanan tek kullanımlık şerit 1917 yılında yeniden icat edildi ve birkaç yıl içinde patenti alındı. Vernam şifre adı mucitlerinden biri olan Gilbert Vernam adından türetilmiştir. Vernam sisteminde şifre delikli şeritlerden okunan bir anahtar ile mesajın birleştirilmesiyle olur. Orijinal haliyle Vernam sistemi anahtar şerit döngülerinde her zaman tam bir döngü yapıldığında tekrar kullanılabilir olduğundan zayıftır. Joseph Mauborgne kabul ettiği tek kullanımlık geç gelseydi anahtar bandı tamamıyla rastgele olsaydı, şifreleme imkânsız olurdu.
Adının "pad" bölümü ilk uygulamalarda anahtar malzemesinin bir kâğıt pedi olarak dağıtılmasından gelmektedir. Bu nedenle üst sayfası kolayca yırtılabilir ve kullanımdan sonra yok edilebilir. Şeritlerin kolay gizlenmesi için o kadar küçültülmüştür ki görebilmek için büyüteç kullanmak gerekir. Fotoğraflar yakalanan kgb şeritlerinin kişinin avucunun içine veya ceviz kabuğunun içine sığabilecek olduğunu gösterir. Güvenliği artırmak için şeritler son derece yanıcı nitroselüloz yapraklar üzerine basıldı.
Bazı yazarlar aynı anlamda olan "Vernam şifresi" ve "tek kullanımlık şifre" terimlerini kullandıkları için terimde bazı belirsizlikler vardır. Diğerleri kriptografik olarak güvenli sözde rastgele sayı üretmeye dayalı olanlarda dahil olmak üzere "Vernam şifre " olarak ifade etmektedirler.


## Şifreleme.
 c= m ⊕k şeklinde uygulanır. Bu işlem m ve k'nin her biti için XOR işlemi kullanılacağı anlamına gelir.
Örneğin wiki'yi şifreleyeceğiz
Wiki'nin ASCII değeri m=1010111 1101001 1110111 1101001
Rastgele üretilmiş anahtarımız k=0100101 0011101 0111101 1000101
XOR ile üretilmiş şifreli metin c=1110010 1110100 1001010 0101100
Farklı bir örnek daha inceleyelim.
Alfabedeki harflere değerler verilir.
A=01, B=02, C=03, ..., Y=25, Z=26
Şifrelemek istediğimiz metin : SECRETTEXT
Kullanmak istediğim anahtar : ETOJVNALCYUWGBPXFMRD
Şifrelemek istediğimiz metni sayılarla ifade edelim.
S=19, E=05, C=03, R=18, E=05, T=20, T=20, E=05, X=24, T=20
Bu sayıları şu şekilde gösterelim : 1905 0318 0520 2005 2420
Şimdi de kullanmak istediğimiz anahtarı sayılarla ifade edelim.
E=05, T=20, O=15, J=10, V=22, N=14, A=01, L=12, C=03, Y=25, U=21, W=23, G=07, B=02, P=16, X=24, F=06, M=13, R=18, D=04
Anahtarımızı da sayılarla gösterelim : 0520 1510 2214 0112 0325 2123 0702 1624 0613 1804
Şifrelemek istediğimiz metnin başına anahtarın hangi kısmını kullanmak istiyorsak ondan bir önceki dörtlü sayı grubunu getirelim.
2214'ü kullanalım.
Şifrelenecek metin-> 2214 1905 0318 0520 2005 2420
Anahtar-------------------------->0112 0325 2123 0702 1624
Şifreli metin-----------> 2214 1017 0632 2643 2707 3044
Metnin boyutu hakkında fikir vermek istemiyorsak tuzlama yaparak bu sorunu çözebiliriz.


## Deşifreleme.
İkinci örneğimizi deşifreleyelim.
Şifreli metin----------> 2214 1017 0632 2643 2707 3044
Anahtar----------------> 2214 0112 0325 2123 0702 1624
Şifrelenmiş metin--------> 0 1905 0318 0520 2005 2420
Bu işlem sonucunda şifrelenmiş metni elde ediyoruz. Deşifreleyen kişi şifreli metnin ilk dört sayısına bakarak anahtarın hangi kısmını kullanacağını anlar.


## Örnek.
Alice Bob'a "MYSECRET" mesajı gönderdiğini varsayalım.
 MESAJ="MYSECRET"
 MYSECRET=1325 1905 0318 0520
Rastgele seçilmiş bir anahtarımız olmalı.
 ANAHTAR="HLMSEZRBHPSJOTDW"
 ANAHTAR=0812 1319 0526 1802 0816 1910 1520 0425
Şifrelenmiş bir metin elde etmek için;
 Sifrelenmis Metin= Mesaj ⊕Anahtar 
 MESAJ=1325 1905 0318 0520
 ANAHTAR=1319 0526 1802 0816 1910 1520 0425
 ŞİFRELENMİŞ METİN=1319 1841 2707 0124 1430