2.3.1. Giới thiệu
Thuật toán A5/1 là một thuật toán mã hóa và giải mã sử dụng trong hệ thống thông tin di động GSM để bảo vệ thông tin Voice của thuê bao di động gửi qua đường vô tuyến, tránh các trường hợp nghe lén.
Hiện tại trên thế giới đang triển khai các phiên bản của thuật toán A5 như sau:
• A5/0 là một phiên bản của thuật toán A5 nhưng nó yếu hiện không được sử dụng.
• A5/1 là một thuật toán mạnh nhất hiện nay, đang được triển khai tại Western Europe và America
• A5/2 là một phiên bản của A5, yếu hơn A5/1 và được triển khai chủ yếu ở các nước Asia.
• A5/3 đang trong giai đoạn nghiên cứu.
Cùng với các thuật toán A3 và A8, thuật toán này được phát triển phục vụ cho việc bảo mật trong mạng GSM, nó không được công bố rộng rãi. Nhưng hiện nay các thuật toán này đã bị bẻ khóa và có thể dễ dàng tìm thấy chúng ở trên mạng Internet. Ở đây chúng ta chỉ tìm hiểu thuật toán A5/1 đang được sử dụng rộng rãi ở Việt Nam cũng như nhiều nước khác.
Hai thông số vào của thuật toán A5 là session key Kc( 64bit ) và số khung(22 bit), và bộ mã hóa sẽ thực hiện sinh ra keystream sau mỗi lần khung mang dữ liệu thay đổi. Cùng một Kc được sử dụng xuyên suốt cuộc gọi, nhưng số thứ tự khung Frame Number( một số 22 bit ) thay đổi trong suốt chu kỳ cuộc gọi. Do vậy, thuật toán sinh ra chuỗi khóa 228 bit duy nhất tương ứng với mỗi khung. Chi tiết bộ mã hóa như sau:
Hình 2.5. Chi tiết bộ mã hóa
Mục đích của thuật toán A5 là sinh ra 228 bit Cipher Stream từ Kc và Fn( số khung), sau đó dùng Cipher Stream này để mã hóa dữ liệu của thuê bao.. Tại BTS, 114 bit đầu dùng để giải mã luồng dữ liệu từ MS đến BTS còn 114 bit sau được dùng để mã hóa luồng dữ liệu từ BTS đến MS. Tại MS, 114 bit đầu được dùng để mã hóa luồng dữ liệu từ BTS đến MS và 114 bit sau được dùng để mã hóa luồng dữ liệu từ MS đến BTS.