Ben Algoritma'mı kendim oluşturduğum ve anahtarlarının, çözümünün daha da kolay ve anlaşılır olduğu bir yöntem kullanacağım. Ancak metin şifrelendikten sonra anahtarları ele geçirmeden şifrenin çözülmesinin mümkün olmayacağı bir yöntem olacak.
Öncelikle algoritmamı anlatayım;
Yine her harf'e bir numara vererek bu işe başlayacağız. Bu işi ileride geliştirmek isteyenler, harflere 256 ascii karakterlere, karakter numarasına başvurarak çalışma yapabilir.
x grubu : A=1 'dir
y grubu : B=2 'dir
Cümlemiz ALİ olsun
Cümle grubu: A=1 , L=15 , İ =12
Şifreleme tekniğimiz şu olsun: Cümle grubu1 + x grubu1 - ygrubu1 , Cümlegrubu2+xgrubu1-ygrubu1 ....
Buna göre formülümüz
A+A-b = 1+1-2=0
L+A-b = 15+1-2=14
İ+A-b = 12+1-2= 11
ALİ = 1,15,12 olarak tanımlıyken şimdi şifreli olarak 0,14,11 oldu
anahtar harflerimiz A ve B eğer bu iki harfi biliyorsak çözüm çok kolay olacaktır.
0 +2 -1 = 1 = A
14 +2-1=15 = L
11+2-1= 12 = İ
Sonucu elde edilir.
Ancak, bu çok ta basit bir yöntem oldu farkedeceğiniz gibi. Zaten bende basit olsun kolay anlaşılsın diye kısa yoldan anlattım. Şimdi algoritmamıza biraz zorluk katalım.
Bunun için anahtar'ın dişlilerini artırmamız gerekecek.
Diyelimki x grubu anahtarımız FIRAT y grubu anahtarımız ise İSTANBUL olsun.
x grubu : FIRAT
y grubu : İSTANBUL
Cümle Grubu : KULLANICI ADINIZ STURK
Buna göre şifreleme yapacak olursak
cümle grubu1 + x grubu1 - ygrubu1 = K+F-İ = 14+7-12 = 9
cümle grubu2 + x grubu2 - ygrubu2 = U+I-S = 26+11-23=14
cümle grubu3 + x grubu3 - ygrubu3 = L+R-T = ... şeklinde giderse sonuç şu olur.
| K |
+ |
X |
- |
Y |
= |
S |
|
|
| K |
+ |
F |
- |
İ |
= |
14+7-12 |
9 |
Ğ |
| U |
+ |
I |
- |
S |
= |
26+11-23 |
14 |
K |
| L |
+ |
R |
- |
T |
= |
15+22-25 |
12 |
İ |
| L |
+ |
A |
- |
A |
= |
15+1-1 |
15 |
L |
| A |
+ |
T |
- |
N |
= |
1+25-17 |
9 |
Ğ |
| N |
+ |
F |
- |
B |
= |
17+7-2 |
22 |
R |
| I |
+ |
I |
- |
U |
= |
11+11-26 |
-4 |
|
| C |
+ |
R |
- |
L |
= |
3+22-15 |
10 |
H |
| I |
+ |
A |
- |
İ |
= |
11+1-12 |
0 |
|
| |
+ |
T |
- |
S |
= |
0+25-20 |
5 |
D |
| A |
+ |
F |
- |
T |
= |
1+7-25 |
-17 |
|
| D |
+ |
I |
- |
A |
= |
|
|
... şeklinde devam eder. |
| I |
+ |
R |
- |
N |
= |
|
|
|
| N |
+ |
A |
- |
B |
= |
|
|
|
| I |
+ |
T |
- |
U |
= |
|
|
|
| Z |
+ |
F |
- |
L |
= |
|
|
|
| |
+ |
I |
- |
İ |
= |
|
|
|
| S |
+ |
R |
- |
S |
= |
|
|
|
| T |
+ |
A |
- |
T |
= |
|
|
|
| U |
+ |
T |
- |
A |
= |
|
|
|
| R |
+ |
F |
- |
N |
= |
|
|
|
| K |
+ |
I |
- |
B |
= |
|
|
|
Burada dikkat edilmesi gereken noktalar,
1. sıradaki K harfinin karşılığı Ğ çıktığı gibi 5. sıradaki A harfinin karşılığı'da Ğ harfi çıkmıştır.
2. dikkat edilmesi gereken nokta ise -4, -17 gibi çıkan negatif değerlerdir.
- (negatif) çıkan değerlerin'de çözülebilir bir değer olabilmesi için Mod alma yönetmini uygulayacağız. (Bu tür yöntemleri işi daha da karıştırmak, zorlaştırmak için uyguladım) Örneğin -4 değerini aldığımız I+I-U : 11+11-26 = -4 değerini aldığımız formül üzerinden gidelim. Bunun için önce mod alacağımız bir sayı bulmamız gerek. Ben bu örnekte mod alınacak sayı olarak 32 sayısını buldum. a-z'ye kadar 29 , 0='boşluk', 30=':' 31=' " ' 32='.'
Bu karakterleri de katarak 32 karakterden oluşan bir alfabe kullanmış oldum.
Mod 32 kabul ederek işlemimize devam edelim.
I+I-U formülünü mod((I+I-U),32) şeklinde yeniden kurgulayalım. Mod((11+11-26),32)
sonuç olarak 28 rakamını elde ederiz. Ancak burada dikkat etmemiz gerekn şudur.
Biz cümlemizde hangi kelimenin - sonuç hangisinin + sonuç vereceğini tahmin edemediğimiz için tüm formülü Mod içine alarak yeniden yapmamız gerekecektir.
DECRYPTION YÖNTEMİ
Formülü tersten uygulamamız sonucu verecektir. Yeterki anahtar kelimeleri ve sırasını (hangi anahtar kelime x hangi anahtar kelime y) bilelim.
Şifreleme yöntemimiz S = K+X-Y 'idi. (S=Şifre, K= Kelime, X = Anahtar1, Y= Anahtar2)
Şimdi S'yi biliyoruz K 'yı bilmiyoruz, X ve Y'yi biliyoruz.
örneğin ilk harf için;
Şifrede elimizde olan harf = Ğ, X= F, Y=İ 'dir
Ğ=9 , F=7, İ=12
Ğ= K + F - Y
9 = K + 7 - 12 olduğuna göre
K'yı yalnız bırakmak için K=S-X+Y
K= -7 + 12 + 9 olur.
K= 14 tür. Yani K = K 'dır. (K(Kelime) = K (Kullanıcı adınızın ilk harfi olan K) 'dır.
Ancak çözüm yolu içinde de mod alma yöntemini aynen uygulamak durumundayız. Çünkü şifrelerken mod alarak şifreleme yapmıştık.
Bu durumda formül
K= MOD(S) - X + Y 'dir.
Bu formülü daha da zorlaştırmanın bir yolu'da şudur.
FIRAT ve İSTANBUL gibi kullanılan anahtarların yanına rakamlar koymaktır. Örneğin FIRAT4578 gibi. Bu da şu anlama getirilerek kullanılmalıdır.
FIRATFIRATFIRATFIRATFIRAT şeklinde yan yana kullanılacak şifreleme anahtarı'nda
1. seferde FIRAT 4 ile toplanacak. F= 7 + 4= 11 , I=11+4=15, R=22+4=26 gibi.
2. FIRAT yazılımında 4578'in ikinci karakteri olan 5 ile toplnacak böylece anahtar her seferinde farklı değerlerle çarpılmasını sağlayacaktır.
Bu yöntemle de daha da karmaşık hal alan şifrenin anahtarlar olmadan çözülebilmesi milyonda bir ihtimal bile değildir.
Şifreleme ve çözme konusunu ileride daha derinlemesine belkide örnekleriyle ele alabilirim. Şimdilik bu kadar yeter.
[Not: Bu metin tamamen Yusuf FIRAT tarafından oluşturulmuştur. İzinsiz alınması, kullanılması yasaktır. Yusuf FIRAT]
|