Yuvarlama kodlarının düzgün çalışması için birkaç parça gerekir. Burada tüm parçaları belirli bir şekilde kullanan genel bir uygulamayı tarif edeceğim. Diğer sistemler bu temanın varyasyonlarıdır, ancak genellikle aynı tekniklerin çoğunu benzer şekilde kullanırlar. Uygulamanın tamamını ve bir kerede nasıl çalıştığını anlatmaya çalışmak yerine, basit bir sistemi tanımlayacağım ve kriptografik olarak güvenli bir sisteme ulaşıncaya kadar karmaşıklık ekleyeceğim.
Kriptografik olmayan bir döner kod, her ikisi de aynı sahte rasgele sayı üretecini (PRNG) kullanan bir verici ve alıcıdır. Bu jeneratörün iki önemli bilgisi vardır: bir hesaplama ve önceden oluşturulmuş sayı. Hesaplama genellikle tek bir sayı ile temsil edilebilen doğrusal bir geri besleme denklemidir. PRNG'yi bir önceki sayı ile besleyerek ve geri besleme numarasını aynı tutarak belirli bir sayı dizisi üretilir. Sekans, üretebildiği her sayıdan geçene kadar tekrarlanan sekansa sahip değildir ve daha sonra aynı sekans ile tekrar başlar.
Hem uzaktan hem de verici geri besleme numarasını ve geçerli numarayı biliyorsa, uzaktan kumanda bir sonraki numarayı ilettiğinde, alıcı kendi jeneratörüne karşı test edebilir. Eşleşirse etkinleşir. Başlamazsa, uzaktan kumandanın gönderdiği numarayı bulana kadar sekans boyunca ilerler. Uzaktan kumandayı tekrar basarsanız, eşleşmelidir ve önceki iletim sayı jeneratörlerini senkronize ettiği için etkinleşecektir. Bu yüzden bazen kilit açma düğmesine iki kez basmanız gerekir - alıcınız veya vericiniz senkronize değil.
Bu kodun yuvarlanan kısmı. PRNG yeterince uzunsa, normal kullanımda elde edilmesi zor olan arka arkaya çok sayıda numara olmadan geri bildirim numarasını bulmak çok zordur. Ancak kriptografik olarak güvenli değil.
Bunun üzerine tipik şifreleme eklersiniz. Araç üreticisi verici ve alıcı için özel bir gizli anahtar kullanır. Üreticiye bağlı olarak, her model ve yılın farklı bir kodu olduğunu veya kodu birkaç araç modeli arasında ve birkaç yıl içinde paylaşabileceğini görebilirsiniz. Alım satım, her birinin farklı bir uzaktan kumandanın stoklanması gerektiğini, ancak birçok model üzerinde bir kod paylaşmanın sorunu, eğer kırılırsa daha fazla otomobilin savunmasız olmasıdır.
Şifrelemenin arkasında düğme bilgisi, oluşturulan PRNG numarası ve geri bildirim numarası hakkında biraz bilgi var. PRNG'yi sıfırdan yapmak için yeterli değil, ancak belirli sayıda düğmeye basıldıktan sonra ve sınırlı alan hakkında bazı iç bilgilerle bir geri bildirim numarası içerebilir (tekrar, üreticiye, hatta özgü), alıcı birkaç eğitimden sonra iletimler, geri bildirim numarasını belirleyin ve uzaktan kumandanın PRNG'sini izlemeye başlayın.
Dönme kodu yalnızca tekrar saldırılarını durdurmak içindir. Şifreleme, yuvarlanma kodunun kırılmasını önlemek için güvenliğini sağlamak içindir. Sadece biri ya da diğeri ile sistemin kırılması çok kolay olurdu. Üretici hem vericiyi hem de alıcıyı kontrol ettiğinden, eğitim ortak anahtar şifrelemesini veya özellikle ilgili herhangi bir şeyi içermez. Ayrıca bu tür bir sistemle satış sonrası fobların araçlarda çalışmasını önler.
Ancak haddeleme kodu geçirimsiz değildir. Eski keeloq sistemi sadece birkaç yıl önce (on yıl kullanımdan sonra) başarılı bir şekilde saldırıya uğradı, böylece üretici şifreleme kodu bulunabilir ve yuvarlanma kodları daha kolay bulunabilir. Bundan daha önce, insanların kodu gerçekten kırmadan araç almasına izin verecek şekilde saldırıya uğradı. Yanıt olarak yeni şifreleme anahtarı 60 bittir. Birçok modern şifreleme sistemi kadar güvenli değil, ama kırılmadan önce muhtemelen daha uzun yıllar sürecek kadar güvenli.