Thẻ tín dụng đã trở thành phương thức thanh toán phổ biến trong cuộc sống hàng ngày của chúng ta. Tuy nhiên, khi việc sử dụng thẻ tín dụng ngày càng tăng, các vấn đề cũng phát sinh, đặc biệt là trong việc xác định tính hợp lệ và tránh sai sót. Vào thời điểm này, sự xuất hiện của thuật toán Luhn đã mang lại một tuyến phòng thủ vững chắc cho hệ thống thanh toán của chúng tôi.
Thuật toán Luhn, còn được gọi là thuật toán modulo 10, ban đầu được nhà khoa học Hans Peter Luhn của IBM đề xuất vào năm 1960. Đây là công thức tính tổng kiểm tra đơn giản được sử dụng để xác minh tính hợp lệ của nhiều loại số nhận dạng khác nhau, đặc biệt là số thẻ tín dụng. Thuật toán được chỉ định trong tiêu chuẩn ISO/IEC 7812-1 và là kiến thức thuộc phạm vi công cộng.
Thuật toán này được thiết kế để bảo vệ người dùng khỏi những lỗi nhập liệu vô tình, chứ không phải để bảo vệ khỏi các cuộc tấn công độc hại.
Ví dụ, với số tài khoản là 1789372997 (không có chữ số kiểm tra), chữ số kiểm tra có thể được tính theo các bước sau. Đầu tiên, tất cả các số được xử lý và cuối cùng có thể kiểm tra giá trị tính toán để xem nó có khớp với chữ số kiểm tra ban đầu hay không. Điều này có thể xác minh hiệu quả tính hợp lệ của số và ngăn ngừa lỗi.
Ưu điểm của thuật toán Luhn là nó có thể phát hiện tất cả các lỗi đơn lẻ, cũng như hầu hết các phép hoán vị của các số liền kề. Ví dụ, nếu một chữ số bị sai, thuật toán sẽ nhận ra ngay lập tức. Tuy nhiên, thuật toán này không hiệu quả đối với một số lỗi đầu vào cụ thể, chẳng hạn như chuyển vị 09 và 90.
Ngoài ra, mặc dù thuật toán Luhn có thể xác định hầu hết các lỗi, khả năng phát hiện của nó vẫn kém hơn các thuật toán tổng kiểm tra phức tạp khác, chẳng hạn như thuật toán Verhoeff và Damm.
Thuật toán Luhn không chỉ giới hạn ở việc xác minh thẻ tín dụng mà còn được sử dụng rộng rãi trong các hệ thống số nhận dạng khác. Ví dụ, Mã số nhận dạng nhà cung cấp quốc gia của Hoa Kỳ, Số bảo hiểm xã hội của Canada, Số căn cước của Israel, v.v. đều được kiểm tra bằng thuật toán này.
Thuật toán của Luhn gần như không thể thiếu trong thế giới số của chúng ta. Lần tới khi bạn sử dụng thẻ tín dụng để thanh toán, bạn có nghĩ đến cách thuật toán này bảo vệ tính bảo mật của bạn không?