Cách tìm khóa ngẫu nhiên.

Một phần của tài liệu Giải thuật mã hóa mật mã RSA (Trang 45 - 48)

b. Ví dụ 2: Ta chọn

6.4.Cách tìm khóa ngẫu nhiên.

Bạn cần những số ngẫu nhiên để tìm hai số nguyên tố ngẫu nhiên cho mođun n. Nếu bạn dùng phương pháp dự đoán để phát sinh số nguyên tố, kẻ xâm nhập có thể tấn công bằng cách cố gắng tái tạo lại quá trình phát sinh khoá.

Những số ngẫu nhiên thu được từ một tiến trình vật lý nói chung là tốt nhất. Người ta có thể dùng một thiết bị phần cứng, như điôt chẳng hạn, được bán trên những mạch thêm vào máy tính cho mục đích này. Một ý khác là sử dụng những môi trường vật lý của người sử dụng máy tính, chẳng hạn như việc định giờ phím nhấn được đo bằng micrô giây. Nhưng bằng bất kỳ

phương pháp nào thì những số ngẫu nhiên chứa những sự tương quan tính ngẫu nhiên thống kê đủ.

Chú ý: Người ta không cần những số ngẫu nhiên để xác định để xác định những khoá chung và khoá riêng sau khi chọn muđun n. Họ có thể chọn một giá trị tuỳ ý cho khoá công khai.

Phát sinh khóa ngẫu nhiên:

int RSA_generate_keys(char *privatekey, char *publiccertificate, int *privatekey_length, int *publiccertificate_length, int primeBitSize) {

generate_key:

prikey->p = BN_generate_prime(NULL, primeBitSize, 0, NULL, NULL, NULL, NULL);

prikey->q = BN_generate_prime(NULL, primeBitSize, 0, NULL, NULL, NULL, NULL);

}

Việc bảo vệ khóa hay còn xem xét đến việc kiểm tra khóa được thể hiện qua hình sau:

Sơ đồ bảo vệ khóa, thông qua hệ thống bảo mật:

Hình 9: Hình thức kiểm tra khóa bảo mật.

Những người sử dụng phải giữ được một cách chắc chắn cặp khóa phù hợp với khả năng và những bảo mật cần thiết. Đó phải là cách tìm kiếm khóa chung của người khác đưa ra công khai khóa mà người đó sở hữu. Những người sử dụng phải giải trình tính hợp pháp trong những khóa công khai của người khác; nói cách khác người xâm nhập có thể thay đổi những khóa công khai được liệt kê trong một thư mục hay đóng vai một người sử dụng khác. Chứng nhận được sử dụng cho mục đích này. Chứng nhận phải thật, có thể tìm thấy trong danh sách bảo mật và được xử lý như trong trường hợp kẻ xâm nhập lạm dụng điều này. Ban hành chứng nhận phải được xử lý trong trường hợp bảo mật, ngăn chặn mọi tấn công. Nếu như một khóa bí mật của một ai đó bị mất hay bị xâm phạm, những người khác trong hệ thống phải nhận ra điều này, chính vì thế họ không thể mã hoá những thông điệp dưới những khóa chung đã bị vô hiệu và cũng không cho phép những thông điệp gán với khóa bí mật bị vô hiệu đó nữa. Những người sử dụng phải lưu trữ khóa bí mật của họ một cách an toàn mà không một kẻ xâm nhập nào có thể tìm kiếm được nó còn những khóa khác phải được sẵn sàng sử dụng cho việc sử dụng hợp pháp. Những khóa đó có giá trị trong một thời hạn cho phép. Thời hạn cho phép phải được chọn có mục đích thích đáng và được đưa ra công khai một cách an toàn. Một vài văn bản phải có chữ ký để thẫm tra thời gian khi khóa được sử dụng để gán còn thời hạn. Mặc dù những vấn đề quản lý khóa nảy sinh trong một số hệ thống mã hóa, để thích hợp họ đưa vấn đề này vào RSA.

Một phần của tài liệu Giải thuật mã hóa mật mã RSA (Trang 45 - 48)