Kode bergulir memerlukan beberapa bagian agar berfungsi dengan benar. Di sini saya akan menjelaskan implementasi generik yang menggunakan semua bagian dengan cara tertentu. Sistem lain adalah variasi pada tema ini, tetapi umumnya menggunakan banyak teknik yang sama dengan cara yang sama. Daripada mencoba menggambarkan implementasi lengkap dan cara kerjanya sekaligus, saya akan menggambarkan sistem sederhana, dan menambah kompleksitas saat kita sampai kita mencapai sistem yang aman secara kriptografis.
Kode bergulir non kriptografi hanyalah sebuah pemancar dan penerima yang keduanya menggunakan generator nomor acak pseudo (PRNG) yang sama. Generator ini memiliki dua informasi penting: perhitungan, dan nomor yang dihasilkan sebelumnya. Perhitungan umumnya merupakan persamaan umpan balik linier yang dapat diwakili oleh satu angka. Dengan memberi makan PRNG dengan nomor sebelumnya, dan menjaga nomor umpan balik sama urutan nomor tertentu dihasilkan. Urutan tidak memiliki urutan berulang sampai melewati setiap angka yang bisa dihasilkan, dan kemudian mulai lagi dengan urutan yang sama.
Jika remote dan transmitter mengetahui nomor umpan balik, dan nomor saat ini, maka ketika remote mentransmisikan nomor berikutnya, penerima dapat mengujinya terhadap generatornya sendiri. Jika cocok, itu aktif. Jika tidak, ia akan menggulung melalui urutan sampai menemukan nomor yang dikirim jauh. Jika Anda menekan lagi remote, maka itu harus cocok, dan itu akan aktif karena transmisi sebelumnya sudah menyinkronkan generator nomor. Inilah sebabnya mengapa Anda terkadang harus menekan tombol buka kunci dua kali - penerima atau pemancar Anda tidak sinkron.
Itulah bagian bergulir dari kode. Jika PRNG cukup panjang, sangat sulit untuk menemukan nomor umpan balik tanpa banyak angka dalam urutan berturut-turut, yang sulit diperoleh dalam penggunaan normal. Tapi itu tidak aman secara kriptografis.
Selain itu, Anda menambahkan enkripsi khas. Pabrikan kendaraan menggunakan kunci rahasia khusus untuk pemancar dan penerima. Tergantung pada pabrikannya, Anda mungkin menemukan bahwa setiap model dan tahun memiliki kode yang berbeda, atau mereka mungkin membagikan kode tersebut di antara beberapa model kendaraan dan selama beberapa tahun. Yang menarik adalah bahwa masing-masing memerlukan remote yang berbeda untuk diisi, tetapi masalah dengan berbagi kode pada banyak model adalah bahwa jika rusak maka lebih banyak mobil yang rentan.
Di belakang enkripsi Anda memiliki info tombol, nomor yang dihasilkan PRNG, dan sedikit informasi tentang nomor umpan balik. Tidak cukup untuk membuat PRNG dari awal, tetapi cukup bahwa setelah sejumlah tombol ditekan, dan dengan beberapa informasi orang dalam tentang ruang terbatas, sejumlah umpan balik dapat melibatkan (sekali lagi, pabrikan, jalur khusus) kemudian penerima dapat, setelah beberapa pelatihan transmisi, tentukan nomor umpan balik, dan mulailah melacak PRNG untuk kendali jarak jauh itu.
Kode bergulir hanya dimaksudkan untuk menghentikan serangan replay. Enkripsi dimaksudkan untuk mengamankan kode bergulir agar tidak rusak. Dengan hanya satu atau yang lain sistem akan terlalu mudah rusak. Karena pabrikan mengontrol pemancar dan penerima, pelatihan tidak melibatkan kriptografi kunci publik atau apa pun yang terlibat secara khusus. Ini juga mencegah fob aftermarket bekerja di mobil dengan sistem jenis ini.
Kode bergulir tidak kebal. Sistem keeloq lama berhasil diserang hanya beberapa tahun yang lalu (setelah satu dekade digunakan) sehingga kode enkripsi pabrikan dapat ditemukan, dan kode bergulir dapat ditemukan dengan lebih mudah. Lebih awal dari itu telah diserang dengan cara yang memungkinkan orang untuk mengambil kendaraan tanpa benar-benar melanggar kode. Sebagai tanggapan, kunci enkripsi baru adalah 60 bit. Tidak seaman banyak sistem enkripsi modern, tetapi cukup aman sehingga mungkin akan bertahan bertahun-tahun sebelum rusak.