CRC (Cyclic Redundancy Check) verilerinizin doğru olup olmadığını kontrol eden bir sistemdir. Gelen veriler ile alınan verilerin aynı olup olmadığını kontrol etmemiz gerekir. Eğer bu fark edilmezse bozuk olan veriler tekrardan iletilemez bu da sağlıklı sonuçlar vermez.
Ayrıca gelen verinin içeriği bozularak veriye bir virus eklenerek de tehlikeli sonuçlar elde edebiliriz. İşte CRC bunları engellemek amacıyla kullanılır
CRC'nin mantığından biraz bahsedersek iyi olur. Örneğin 100101011 şeklindeki bir veriyi x^ 0 + x^ 1 + x^ 4 şeklinde bir polinoma dönüştürerek, 100101011 gibi bir veride tek sayı kadar 1 varsa 0 çift sayıda 1 varsa 0 yazılıyor. Uzun olan polinom kısa olana bölünüyor. Sonuçta; elde edilen sonuca göre, verideki hatanın hangi bitte olduğu anlaşılabiliyor. Daha öncelerde LRC sisteminde iste sadece hata olduğu bulunabiliyordu, ama CRC'de hatanın hangi bitte olduğu anlaşılabiliyor ve hatalı veri tekrar isteniyor.
Bu işleyişte veriler belirli bir topluluğa ayrılır .Grup gibi. Bu çeşitler : CRC-8, CRC-16, CRC-32 dir.
örnegin:
Dergiye herhangi bir şeyin HEXAdecimal 16 bitlik veriler halinde 8 er blokluk olarak bişey basacaksınız.Farzedin yazılı dökümandaki verileri okuyucu kendi bilgisayarına elle girecek. Fakat hata yapma şansı çok fazla. Kullanıcı hatasını önlemek için yada en aza indirmek için CRC kriptolamasını kullanırız.
Veri blogu | CRC
-------------------------------
ff cc 00 33 4F 45 8A D0 - 06
xx xx xx xx xx xx xx xx - xx
.
.
xx xx xx xx xx xx xx xx - xx
Bu şekilde bir veri blogu yanındaki CRC kodunu oluşturmak için neler yapiyoruz,simdi onu anlatacagim:
Yukardaki 8 veri kendi aralarında toplanır.
CRC16 oldugu için, kendimize kriptoluyacak.16 bitlik CRC Key'i seçecelim Key = 0xA0 olsun (degeri tamamen bizim tercihimize kalmıştır.) Şimdi veri blogundki 8 tane 16 bitlik veriyi toplayalım.
ff+cc+00+33+4F+45+8A+D0 = 0x03EB dir.Sonraki adımda çıkan toplamı / key'e böleriz.CRC = 3EB/A0
CRC = 06 Demekki bizim dergiye basacagımız 8 bitlik veri blogumuzun CRCsi 0x06 imiş.Bu bloklar böylece sürüp gider Key hep aynıdır.Buradaki ince nokta
Keyi, dergiyi okuyan okuyucunun bilmesi veya dergi yanında bizim keyimizi içeren bir programın olması gerektigidir.
Kullanıcı her veri blogunu girdikten sonra CRC yi yazarın verdiği programa girerek verileri dogrulugunu kontrol ettirebilir. CRC sistemi 100% dogruluk saglamaz fakat Blok içindeki bir verinin Değer değiştirmesi veya bozulması durumunda CRC degerinin aynı olma olasılıgı çok düşük bir ihtimaldir.Yazarın verdiği Program, Periyodik elde Kontrolü (crc)işlemini yapmaktadır.Bu işlem aklınıza gelecek herhangi bir iletişim sisteminde de kullanılabilir.Çeşitlendirmek sizin kriptolama kabiliyetinize kalmıştır.Çözmek için yapılan işlem:
Bloktoplamı - CRC / Key
CRCsonuc = 3EB-06 / A0
Crcsonuc = 06
CRCsonuc eşitse CRC verisine, gönderilen bloktaki veriler doğrudur.