Tấn công thông minh của Kocher cho thấy rằng bằng phương pháp lựa chọn thời gian chính xác để giải mã (hoặc ký số) RSA của smartcard, Marvin có thể nhanh chóng tìm ra thành phần giải mã riêng d.
Sử dụng thuật toán “repeated squaring algorithm” tính C = Md mod N. Với d =
dndn-1 . . . d0 là biểu diễn nhị phân của d (hay d = ∑ = n i idi 0 2 với di ∈ {0,1}), sử dụng nhiều
nhất 2n modul nhân. Nó dựa trên việc xem xét C = ∏=
n
i 0M2idi mod N. Thuật toán làm việc như sau:
Đặt: z = M và C =1.
For i = 0,…,n, thực hiện các bước: Nếu di = 1 đặt C = C – z mod N
Đặt z = z2 mod N
Tại trạng thái kết thúc, C có giá trị là Md mod N.
Để thực hiện tấn công, Marvin sẽ yêu cầu smartcard cung cấp chữ ký điện tử trên trường số lớn ngẫu nhiên với một trong các thông điệp M1, . . . , Mk∈ Z*
N và với đơn vị thời gian Ti nó yêu cầu card cung cấp các chữ ký khác nhau.
- Nếu d1 = 1, smardcard sẽ tính C.z = M . M2 mod N. Nếu khác 1 thì không tính. Gọi ti là thời gian tính Mi.Mi2 mod N. Các giá trị ti’s sẽ khác nhau phụ thuộc vào giá trị của Mi (Cũng như thuật toán rút gọn, thời gian tính toán sẽ phụ thuộc vào giá trị mà ta cần tình toán). Đơn vị ti’s là số lần anh ta ngừng để yêu cầu với card (trước khi thực hiện tấn công) tương ứng với những lần anh ta thao tác vật lý trực tiếp card.
- Khi d1 = 1, hai bộ {ti} và {Ti} có tương quan với nhau. Ví dụ: Nếu với i, ti lớn hơn so với sự mong đợi, thì Ti cũng lớn hơn so với sự mong đợi. Mặt khác: nếu d1 = 0, hai bộ {ti} và {Ti} độc lập như các biến ngẫu nhiên. Với độ đo độ tương quan, Marvin có thể xác định được d1 hoặc bằng 1 hoặc bằng 0. Tiếp tục với phương pháp này, anh ta có thể khôi phục được d2,d3… Lưu ý rằng, khi thành phần e của khóa công khai được sử dụng
thấp, khóa riêng tìm được theo phương pháp ở phần trên giúp cho phương pháp của Kocher có thể khôi phục được toàn bộ d chỉ cần biết trước một phần tư số bít của d.
Giải pháp chống đỡ:
1) Đơn giản nhất là tăng độ trễ nhất định để quá trình mũ hóa luôn mất một thời gian nhất định.
2) Rivest đưa ra dựa trên cơ chế bịt các kẽ hở (blinding).
Kocher đã khám phá ra một cách tấn công khác dọc theo các hàng được gọi là phân tích mật mã theo lũi thừa (power cryptanalysis). Kocher đã chỉ ra rằng bằng cách đo chính xác lũy thừa của smartcard trong suốt quá trình sinh chữ ký, Marvin có thể dễ dàng ra khóa riêng. Thật vậy, trong suốt quá trình thực hiện một phép nhân, năng lương tiêu thụ của card cao hơn mức bình thường. Bằng phương pháp đo chiều dài của độ cao của sự tiêu thụ trong phần trước, Marvin có thể dễ dàng xác định được nếu card lặp đi lặp lại một vài phép nhân, bằng cách anh ta thu được chuỗi bít của d.