Thuận lợi 10 2-

Một phần của tài liệu Hệ mật mã khóa công khai ứng dụng bảo mật thông tin trong thương mại điện tử (Trang 102 - 104)

Hệ thống này có thuận lợi chính là không dùng giao thức chia cắt và lựa chọn hoặc chia sẻ bí mật. Do đó khách hàng không cần tạo ra k hóa đơn khác nhau, cũng không phải chia các bản copy của định danh thành hai phần. Ngân hàng cũng không yêu cầu kiểm chứng hóa đơn bằng cách lấy ra phần thứ (k-1) của k hóa đơn trên.

Độ an toàn của hệ thống Brand là dựa trên độ khó trong tính toán của bài toán logarit rời rạc chứ không phải RSA, do đó khả năng tìm ra các hệ số nguyên tố không làm ảnh hưởng gì đến độ an toàn của hệ thống.

Brand sử dụng hàm băm để bảo vệ các thông báo truyền đi trên những phương tiện không tin cậy như Internet. Thông báo truyền đi giữa hai người cần được xác thực, có thể dùng chữ ký điện tử để làm điều này. Tuy nhiên sử dụng chữ ký mất thời gian và không hiệu quả nếu ta muốn dùng chữ ký cho mọi thông báo được truyền đi. Một giải pháp khác để xác thực là băm mỗi thông báo trước khi gửi để người nhận tính lại giá trị băm và kiểm chứng thông báo.

3.5.10. Một số vấn đề trong cài đặt

Phần này sẽ thảo luận một số vấn đề về cài đặt và các vấn đề cơ bản tương ứng với hệ thống tiền điện tử của Brand.

Vấn đề phần tử sinh

Ta biết rằng ngân hàng phải công bố các phần tử sinh g1, g2G. Hai phần tử này sử dụng để biểu diễn tài khoản, có nghĩa là khách hàng sở hữu tài khoản I thì phải biết dạng biểu diễn của I sao cho I=g1u1+g2u2, u1, u2Z.

Số g1 và g2 phải đủ lớn để không ai có thể đoán được dạng biểu diễn của tài khoản. Đồng thời tại một thời điểm, ngân hàng và khách hàng dễ dàng tính được các bước khác nhau của bài toán biểu diễn. Mặt khác g1 và g2 phải được chọn sao cho có thể tìm ra đủ cặp (u1, u2) để biểu diễn cho tất cả các khách hàng muốn mở tài khoản.

Thậm chí khi ta đã chọn lựa được những phần tử sinh g1, g2 đủ tốt để đáp ứng những điều kiện cần thiết thì một câu hỏi khác đặt ra là liệu ta sẽ giữ được các phần tử sinh giống như thế trong bao lâu. Ta cũng biết rằng nếu dùng g1 và g2 lặp đi lặp lại sẽ tạo cơ hội cho kẻ gian đoán ra dạng biểu diễn của I. Vì thế để tăng độ an toàn cho hệ thống ta phải thay đổi các phần tử sinh theo chu kỳ khoảng n tháng một lần (ví dụ n=36). Nhưng phải có cách nào đó để đánh dấu lại khách hàng đã mở tài khoản bằng cách sử dụng cặp phần tử sinh đầu tiên. Và cũng phải đánh dấu lại các đồng tiền của khách hàng đó vì sau này chủ hàng còn phải biết cặp phần tử sinh nào

họ đã dùng trước khi chấp nhận thanh toán. Ngân hàng cũng cần nhận ra đồng tiền để có thể tìm ra định danh của khách hàng trong trường hợp chi tiêu đúp.

Giải pháp cho vấn đề trên là mở lại tài khoản cho tất cả các khách hàng với cặp phần tử sinh mới và thay đổi những đồng tiền chưa sử dụng. Giải pháp này tốn tiền và thời gian của ngân hàng mà cũng không được khách hàng đánh giá cao. Do đó vấn đề với các phần tử sinh vẫn chưa được giải quyết.

Vấn đề với các số định danh

Một câu hỏi khác đặt ra khi thiết lập giao thức là làm thế nào khách hàng tìm ra hai số u1 và u2 để tính ra định danh của mình? Một giải pháp là để khách hàng chọn hai số ngẫu nhiên hoặc ta để cho một hàm ngẫu nhiên làm công việc đó. Đến giờ dường như mọi thứ đã tốt cả, nhưng chú ý u1, u2Zq và Brand gợi ý độ dài của q ít nhất là 140 bit, có nghĩa là độ dài của u1 và u2 trung bình khoảng 70 bit. Vấn đề bây giờ là làm sao khách hàng nhớ được u1 và u2. Họ có thể lưu trữ các số này ở một nơi nào đó. Giả sử lưu chúng trong ổ cứng của máy tính hoặc trong đĩa mềm. Nếu vậy sẽ không đảm bảo độ an toàn vì kẻ gian có thể tìm ra u1 và u2 của khách hàng. Sau đó giả danh khách hàng và sử dụng hết tiền của khách hàng. Giải pháp khác là có thể lưu trữ u1 và u2 vào tấm thẻ thông minh. Khi đó lại phải giải quyết các vấn đề liên quan đến việc sử dụng thẻ thông minh như làm thế nào để khách hàng sử dụng được u1 và u2 khi cần chúng? Khách hàng có nên sở hữu một cái thẻ đọc hay không?

Một phần của tài liệu Hệ mật mã khóa công khai ứng dụng bảo mật thông tin trong thương mại điện tử (Trang 102 - 104)