Matematiğin Şifrelemedeki Gücü:Modüler Aritmetik

Devrim Ozcay
4 min readApr 30, 2022

--

kriptoloji

Öncellikle bayrama bir gün kala herkesin Ramazan Bayramını kutlarım inşallah nice bayramlar görürüz:)

Şimdi modüler aritmetiğe geçmeden önce çocukluğumuzda kimimizin sevmediği ve bazılarımız için baş belası olan matematikten biraz bahsetmek istiyorum.

“Matematik, numaralar, felsefe, uzay ve fizik gibi konularla ilgilenir. Matematikçiler ve filozoflar arasında matematiğin kesin kapsamı ve tanımı konusunda görüş ayrılığı vardır. Matematikçiler örüntüleri araştırır ve bunları yeni konjektürler formüle etmekte kullanırlar.”

Yani matematik aslında hayatın hesaplarını modelleyen ve insanları bu konular hakkında yoran bir bilimdir. Matematik sadece 2*2=4, bende 100 TL var, 1/5'nin 1/2 katını arkadaşıma verdim bende kaç TL kalır soruna cevap vermek değildir. Üniversiteye girmeden ÖSYM tarafından sorulan problemlerden de sınırlı değildir. Matematik çok geniş bir disiplindir. Aslında

biz matematikle yaşarız. Mesela nasıl? : Mesela her geçen günümüz aslında herkesin en küçük birim bildiği ama aslında en küçük birim olmayan saniyelerin bir araya gelip bir dakika elde etmesi, dakikaların bir araya gelip bir saat elde etmesi, saatlerin bir araya gelip bir gün elde etmesi, günlerin bir araya gelip bir ay elde etmesi, ayların bir araya gelip bir yıl elde etmesi, ve tabiki yılların toplanıp bir ömrü elde etmesi matematik değildir de nedir.

bunu formülüze edelim:

x: saniye olsun , y: dakika olsun, z: saat olsun.

aynı şekilde,

a: gün olsun: b: ay olsun ve c: de yıl olsun.

şimdi okurlara basit bir soru soralım .

c değişkenini x cinsinden elde edin?

cevabına bakmadan önce biraz düşünün..

CEVAP:

şimdi

x=1 birim saniye

y=60 sn

y=60*x

z=60 dakika

z=60*y ise

z=60*60*x=3600*x dir

a=24 *z

a=60*60*24*x=3600*24*x=86400*x olur. cevabı bulmaya az kaldı😊

b=30*a

a=86400*x ise

b=30*86400*x=259.200*x dir

c=12*b=12*259.200*x olur

c=3.110.400*x olur

c ‘ yi x cinsinden bulduk. Bu ne anlama geliyor.

bir yılda 3.110.400 saniye bulunuyor demektir. Basit bir matematik. Basit bir algortima ile hemen bulunur.

Not: Biz burda 365 gün yerine aylarıda katıp hesapladık.ama hepsini 30 gün olarak sabit aldık. Aynı sonuç sadece 5 gün fark ediyor onu da eklersek.

5*24*60*60=432.000 saniye eder

bunu 3.110.400 ile toplarsak

3.542.400‬ sonucu elde ederiz.

Şimdi ise Kriptografların ve Kriptoanalistlerin sevdiği Modüler Aritmetiğe geçelim:)

MODÜLER ARİTMETİK

moduler aritmetic

“Modüler aritmetik, tamsayılarda kullanılan bir hesap yöntemidir. Saatin her on iki saatte bir yinelenmesi gibi modül denen belli bir değere gelindiğinde yeniden sıfıra dönülmesiyle olur. Birçok eski kültürde insanlar modüler aritmetikte söz etmişlerdir. Çinlilerin kalan teoremi buna örnek verilebilir.”

Şimdi matematiğine geçelim.

Bölüm Kalan Teoremi :
Herhangi bir a ve b tamsayı çifti için (b pozitiftir), iki benzersiz q ve r tamsayısının bulunduğunu belirtir, öyle ki:

a = bxq + r
burada 0 <= r < b

Örnek:
a = 20, b = 6 ise
q = 3, r = 2
20 = 6 x 3 + 2

Öncellikle n pozitif tam sayı olsun ve kümesi de [0..n-1] ‘dir. Zn ile ifade edilir.

İki tam sayıyı ele alalım bu sayılar x ve y olsun. x , y ve n sayıları arasındaki ilişki şu şekilde ifade edilebilir:

x= y mod(n) ifade edilebilir.

bu ne anlama geliyor?

bizim elimde x diye bir sayı olsun, bu x sayısını n’ e böldüğümüzde kalanını y olarak biz geri döndürüyor.

Örnek verecek olursak.

17=1 mod(4)

17 sayısı 4' e bölündüğünde 1 kalanını veriyor.

17=4*4+1 → 17=16+1 sonucu elde ediyoruz.

Modüler Toplama : Modüler toplamanın
kuralı:

(a + b) mod m = ((a mod m) + (b mod m)) mod m

Misal:

(15 + 17) % 7
= ((15 % 7) + (17 % 7) % 7
= (1 + 3) % 7
= 4 % 7
= 4

Modüler Çarpma: Modüler çarpma
kuralı:

(axb) mod m = ((a mod m) x (b mod m)) mod m

Misal:

(12 x 13) % 5
= ((12 % 5) x (13 % 5)) % 5
= (2 x 3) % 5
= 6 % 5
= 1

Aynı kural modüler çıkarma için de geçerlidir. Çok fazla modüler çıkarma işlemine gerek duymuyoruz ama aynı şekilde de yapılabilir.

Modüler Aritmetikte Ters işlemler

Bir mod m ‘in modüler tersi olması için a ve m iki değerin yalnızca asal olursa mümkündür, sonuç olarak gcd(a,m)=1.

Not: gcd:ebob

eğer 1=(a*b)modm=1 ise b a’nın modüler tersidir.

Örnek:

a=5, m=7 olsun , b=?

a*bmodm=1 →5*b=1mod7 olması gerekiyor

o zaman 15=2*7+1 ise

5*3=15 →a=5,b=3 olmalı ki sonuç 15 olsun ve 7 ‘ye göre kalan 1 olsun.

b=3 bulunur.

NOT: Siber güvenlikte bilgilerimizi bir kullanıcıya gönderirken, Şifreleme ve Deşifreleme işlemlerine ihtiyaç duyarız. Hani a,b diye iki tane sayı örneği verdik ya, bu sefer a şifreleme ise b ‘ de deşifrelemedir. m de şifreleme algoritmasıdır.

a:encrpyt

b: decrypt

m: cipher algortihm

bilgi →a →m — b →bilgi

a ve b de aynı anahtar kullanılır ve arasında bir matematiksel ilişki vardır.

Kriptoloji Biliminin Basit Bir Sorusu

5/7=? mod9 , soru işaretinin yerine ne gelmeli?

cevap: Şimdi ters işlem yaparak bölümden kurtarmak istiyoruz.5 bizim normal sayımız o kalacak ama 1/7 nin tersini 9 ‘ göre bulayım ki rasyonel sayılardan kurtulayım.

o zaman

a=7 olmalı kesin olarak b=? bulmam gerekiyor. Çok basit.

a*b=1 mod m → 7*b=1 mod9 dersek. 28 7 ‘nin katı ve aynı zamanda 9’ a göre kalan 1 değerini veriyor. 28 sonucu elde etmem için b=4 olmalı

sonuç 7*4=1 mod9

7 nin tersi 4 ‘tür

o zaman

5*1/7=? mod9 ,1/7 yerine 4 yazıp rasyonellikten kurtuldum. sonucu doğru olarak çözmüş olurum:)).

5*4=? mod9 → 20=2 mod9 olur.

?=2 olarak bulunur.

Hepinize Başarılar Diliyorum.😊🦾

--

--

No responses yet