İster sınıfta gizli notlar iletin ister bir uzay sondasından görüntü indirin, Reed-Solomon kodları bilgiyi gömmek ve hataları düzeltmek için dahiyane bir yöntem sunar.

Uzay keşfi olağanüstü bir hassasiyet gerektirir. Mars’a, dünyadan 70 milyon mil uzakta bir keşif aracı indirirken, verimliliği en üst düzeye çıkarmak ve beklenmedik durumlara hazırlıklı olmak şarttır. Bu gereklilik, uzay aracı tasarımından veri iletimine kadar her alanda geçerlidir. Dünya’ya geri gönderilen ve sürekli akan 0 ve 1’lerden oluşan mesajlar kaçınılmaz olarak bazı hatalar içerecektir. Bu nedenle, zaman ve enerji kaybını en aza indirerek bu hataları tespit edebilmeli ve düzeltebilmelisiniz.
İşte burada matematik devreye giriyor. Matematikçiler, bilgiyi iletmek ve depolamak için dahiyane yöntemler geliştirdi. Bunlardan biri, öğrencilerin okulda öğrendiği temel cebir üzerine kurulu olan Reed-Solomon kodlarıdır.

Peki Nedir Bu Reed-Solomon Kodları?
Bir ağı kullanarak veri aktardığımızda, çeşitli ağ sorunları nedeniyle verilerin bozulma ihtimali vardır. Parazit veya ağdaki hatalar, verinin içindeki bitleri değiştirebilir ve bu da aktarım sırasında veri kaybına yol açabilir. Reed-Solomon kodları, bu tür hataları tespit etmek ve düzeltmek için geliştirilmiştir.
Şimdi bir matematik sınıfına göz atalım. Reed-Solomon kodlarının bilgiyi nasıl ilettiğini, güvenli hale getirdiğini ve hataları nasıl düzelttiğini görelim. Eski günlere dönüp ortaokulda arkadaşınızla şifreli bir şekilde anlaşmaya çalıştığınız bir anı hayal edin. Diyelim ki siz ve arkadaşınız ikişer sayı belirlediniz. Sizin seçtiğiniz sayılar 3 ve 6, arkadaşınızın seçtiği sayılar ise 57 ve 99 olsun.

Sizin seçtiğiniz sayılar x eksenini, arkadaşınızın seçtiği sayılar ise y eksenini temsil eder. Bu durumda, iki noktanız olur: (3,57) ve (6,99). Reed-Solomon kodlarını kullanarak mesajı çözmek için, bu noktaları y = Ax + B denklemine yerleştirmeniz gerekir. Bu sayede elinizde şu denklemler olmuş oluyor: 57 = 3A + B ve 99 = 6A + B
Eşitlikten kolayca görülebileceği gibi, denklemleri taraf tarafa çıkardığımızda A = 14 ve B = 15 bulunur. Artık elimizde y = 14x + 15 denklemi var. Reed-Solomon kodlarında gizli mesajın katsayılarda saklı olduğunu bildiğiniz için, arkadaşınızın yolladığı şifreyi çözmek için önceden anlaştığınız alfabenin 14. ve 15. harflerine bakıyorsunuz. Alfabede 14. harf “N”, 15. harf ise “O” olduğuna göre, mesajın “NO” olduğunu anlıyorsunuz. Bu da arkadaşınızın okuldan sonra oyun oynamaya gelmeyeceğini gösteriyor.
Bu basit Reed-Solomon kodunun sırrı, geometrinin iki temel gerçeğine dayanıyor. Birincisi, her iki noktadan yalnızca bir tekil doğru geçer. İkincisi, A ve B katsayıları kullanılarak her doğruyu, y = Ax + B formunda yazmak mümkündür. Yani bir doğrudaki iki noktayı biliyorsanız A ve B katsayılarını bulabilirsiniz. Aynı şekilde, A ve B değerlerini bildiğinizde, doğrunun üzerindeki tüm noktaları belirleyebilirsiniz.
Reed-Solomon Kodları Nasıl Çalışır?
Reed-Solomon kodları, iki bilgi kümesini kullanır. Gizli mesaj, A ve B katsayıları olarak kodlanır ve doğrunun noktaları parçalar halinde ayrılır. Bu parçaların bazıları açıkça iletilirken, bazıları gizli tutulur. Mesajı çözmek için yapılması gereken tek şey, bu parçaları toplayıp yeniden bir araya getirmektir ve bunun için sadece temel cebir bilgisi yeterlidir.
Diğer şifreleme yöntemlerinde olduğu gibi, mesajları güvende tutan şey açık ve özel bilgilerin akıllıca birleştirilmesidir. Arkadaşınız, 57 ve 99 sayılarını sınıfta yüksek sesle söylese bile, mesajın güvenliği tehlikeye girmezdi. Bunun nedeni, karşılık gelen özel bilgiler olmadan—yani x-koordinatları olan 3 ve 6 bilinmeden—doğrunun denklemini bulmanın imkansız olmasıdır.
Ancak öğrenciler daha uzun bir mesaj paylaşmak isteselerdi ne olurdu? İşte burada cebir, geometri ve doğrusal denklem sistemlerinin tam gücü devreye girer.
Ya Daha Uzun Bir Mesaj Göndermek İstersek Ne Olacak?
Diyelim ki arkadaşınız dünkü Türkçe sınavınızın nasıl geçtiğini öğrenmek istiyor. Siz de 3 harfli mesajınızı sayılara çeviriyorsunuz. 14, 59 ve 82 sayılarını arkadaşınıza yolluyorsunuz. Daha önceden 3 harfli mesajlarınız için anlaşmış olduğunuz x eksenini temsil eden 2, 5 ve 6 sayıları ise arkadaşınızda. Böylece arkadaşınız sizin sayılarınızla kendisindekileri birleştirerek (2,14), (5, 59) ve (6, 82) noktalarını elde ediyor.
Şu an bir önceki mesajda olduğu gibi elimizde doğrusal bir denklem yok. Bunun yerine y = Ax2 + Bx + C şeklinde ikinci dereceden bir denkleme sahibiz. Ve ikinci dereceden denklemleri de bir önceki mesajı çözdüğümüz gibi çözeceğiz. Her bir noktayı y = Ax2 + Bx + C denkleminde yerine yazarsak şu 3 eşitliği elde ederiz:
- (2, 14): 14 = 4A + 2B + C
- (5, 59): 59 = 25A + 5B + C
- (6, 82): 82 = 36A + 6B + C
Elimizde 3 denklem olduğu için çözmesi daha uzun sürecek ancak izlediğimiz yol aynı olacak. Örneğin; eğer ikinci denklemden birinciyi çıkarırsanız 45=21A+3B bulursunuz. Üçüncü denklemden de ikinciyi çıkarırsanız 23=11A+B bulursunuz. Şimdi işimiz kolaylaştı.
İkinci satırdaki denklemi -3 ile çarpar ve bu iki denklemi taraf tarafa toplarsak A=2 buluruz. Daha sonra A’yı denklemde yerine yazarsak B=1 ve C=4 buluruz. Alfabenin 2. harfi B; 1. harfi A ve 4. harfi D olduğundan gizli mesaj “BAD” dir. Buradan da arkadaşınız, dünkü Türkçe sınavının sizin için kötü geçtiğini anlayacaktır.
Reed-Solomon kodlarını kullanarak herhangi bir uzunluktaki mesajı iletebilirsiniz. Yaptığımız örneklere dikkat edecek olursanız 2 harfli bir mesaj için 1. dereceden bir denklem kullandık. 3 harfli bir mesaj için 2. dereceden bir denklem kullandık. Eğer n harfli bir mesaj göndermek isterseniz (n-1). dereceden bir denklem kullanmanız gerekmektedir. Elbette Reed-Solomon kodları gerçekte bunlardan daha karmaşıktır ancak temel fikir örneklerimizle aynıdır.
Reed-Solomon Kodlarıyla Hataları da Düzeltebilirsiniz!
Reed-Solomon kodları yalnızca mesajları güvenli tutmakla kalmaz, aynı zamanda basit ve verimli bir şekilde hataları tespit etme ve düzeltme imkanı da sunar. Veri iletimi veya depolama sırasında bilgi kaybı ya da bozulma ihtimali her zaman vardır, bu nedenle hata düzeltme oldukça önemlidir.
Hataları kodları tespit etmenin yollarından biri verilerin fazladan kopyalarını göndermektir. Örneğin arkadaşınız size [14, 15] yerine [14, 14, 14, 15, 15, 15] gönderebilir. Siz mesajın her bölümünün üç kez gönderileceğini bildiğiniz sürece mesajı çözebilir ve hataları fark edebilirsiniz.
Eğer arkadaşınız size [14, 14, 24, 15, 15, 15] gönderirse 24’ün 14 olması gerektiğini bilirsiniz. Böylece arkadaşınızdan mesajı tekrar göndermesini istemez; zamandan ve enerjiden tasarruf edersiniz.
Ancak Reed-Solomon kodlarının arkasındaki matematik sayesinde hataları daha kolay bir şekilde tespit edebilirsiniz. Bunun için her verinin birden fazla kopyasını göndermek yerine ekstra bir nokta gönderebilirsiniz. Eğer bu ekstra nokta polinomunuza uymuyorsa hata var demektir.
Ekstra nokta, yalnızca hataları tespit etmekle kalmaz, aynı zamanda hataları düzeltmeye de yardımcı olur. Eğer alıcı mesajı içeren polinomu oluşturamazsa, bunun yerine “en iyi uyum sağlayan” polinomu oluşturur. Bu polinom verilen noktalara matematiksel olarak en yakın olan fonksiyon olarak belirlenir, ancak her noktadan tam olarak geçmez.
Bu en iyi uyum sağlayan polinom, asıl polinomu yeniden oluşturmanıza yardımcı olur.. Böylece, bozulmuş veya eksik bilgiye rağmen orijinal mesajı doğru bir şekilde geri getirmek mümkün olacaktır. Bu hata düzeltme yeteneği, NASA’nın Reed-Solomon kodlarını Ay ve Mars görevlerinde kullanmasının başlıca nedenlerinden biridir.
Bir sonraki denklem sisteminizi çözerken, Reed-Solomon kodlarının gücünü ve zarafetini düşünün. Çözüm yolunuz, keşfedilmeyi bekleyen bir sırrı barındırıyor olabilir.
Kaynaklar ve İleri Okumalar
- The Basic Algebra Behind Secret Codes and Space Communicationç. Bağlantı: The Basic Algebra Behind Secret Codes and Space Communication | Quanta Magazine. Yayınlanma tarihi: 23 Ocak 2023
- What is Reed–Solomon Code? ; Bağlantı: What is Reed–Solomon Code? – GeeksforGeeks ; Yayınlanma tarihi: 24 Şubat 2022
Matematiksel