1 .Quản lý khóa 1.1 Quản lý khóa Giải quyết quản lý khóa với các hệ an toàn, phân phối, và lưu trữ các key. phương pháp quản lý key An toàn là vô cùng quan trọng. Một khi một key được tạo ngẫu nhiên nó phải được giữ bí mật để tránh rủi ro đáng tiếc (như mạo danh).Trong thực tế, hầu hết các cuộc tấn công vào hệ thống khoá công khai có thể sẽ được nhằm vào mức quản lý key hơn là ở các thuật toán mã hóa riêng của chính nó. Người sử dụng phải có khả năng thu được một cặp khóa an toàn phù hợp với hiệu quả của họ và nhu cầu bảo mật. Phải có một cách để tìm public keys của người khác và công bố công khai public keys của riêng người đó . Người sử dụng phải có khả năng thu được public keys hợp pháp của người khác, nếu không, một kẻ xâm nhập có thể thay đổi public keys được liệt kê trong một thư mục, hoặc mạo nhận một người dùng khác. Việc xác thực được sử dụng cho mục đích này Việc xác thực phải được unforgeable. Việc cấp giấy xác thực phải tiến hành một cách an toàn, không lọt ra ngoài để tránh tấn công. Trong thực tế, các tổ chức phát hành phải xác thực danh tính và public key của một cá nhân trước khi ban hành giấy xác nhận cho người đó. Nếu private key của ai đó bị mất hoặc bị tổn thất, những người khác phải được biết về điều này, vì vậy họ sẽ không còn mã hóa các thông điệp theo public key không hợp lệ và cũng không chấp nhận các thông điệp đã ký kết với các private key không hợp lệ. Người sử dụng phải có khả năng lưu trữ các private key của họ một cách an toàn, vì vậy không có kẻ xâm nhập có thể thu được chúng, nhưng các key phải sẵn sàng truy cập để sử dụng hợp pháp. Keys cần có giá trị chỉ cho đến khi một ngày hết hạn quy định nhưng ngày hết hạn phải được lựa chọn đúng và công bố công khai trong một kênh chứng thực. 1.2 Tổng quan 1.2.2 Tìm một số ngẫu nhiên cho các key Cho dù sử dụng hệ thống mật mã secretkey hay hệ thống mật mã publickey, cũng cần một nguồn cung cấp các số ngẫu nhiên để tạo ra khóa. Một hệ thống nguồn cung cấp tốt là nó có thể tạo ra một dãy số ko thể nào biết và đoán trước. Những chuỗi số ngẫu nhiên thu được từ một phương pháp vật lý là tốt nhất, khi nhiều phương pháp vật lý được áp dụng thì chuỗi số mới thực sự là ngẫu nhiên. Người ta có thể sử dụng một thiết bị phần cứng, như một diode nhiễu, một số được bán tích hợp vào máy tính nhằm mục đích thương mại. Một ý tưởng khác là sử dụng chuyển động vật lý của người sử dụng máy tính, chẳng hạn như định thời gõ cách khóa nhịp đều đặn vào khoảng micro giây. Kỹ thuật sử dụng quay của đĩa để tạo ra dữ liệu ngẫu nhiên nhưng chúng không thực sự ngẫu nhiên, như sự chuyển động của đĩa platter không thể được coi là thực sự ngẫu nhiên. Một giải pháp thay thế đáng kể chi phí hiện có sẵn; Davis et al. thiết kế một máy phát số ngẫu nhiên dựa trên các biến thể của một ổ đĩa tốc độ của động cơ. Sự thay đổi này là do biến động không khí, và đã được chứng minh là không thể đoán trước. Bằng phương pháp nào mà có thể tạo ra được như vậy, các số ngẫu nhiên vẫn còn có thể chứa một số tương quan, do đó việc ngăn ngừa là không đầy đủ. Vì vậy, tốt nhất là chạy chúng thông qua một hàm băm. Một phương pháp khác là sử dụng tạo dãy số ngẫu nhiên giả bằng cách dùng gieo ngẫu nhiên. Sự khác biệt chính giữa các số ngẫu nhiên và giả ngẫu nhiên là các số giả ngẫu nhiên nhất thiết có chu kỳ trong khi con số thực sự ngẫu nhiên thì không. Kể từ khi máy phát số giả ngẫu nhiên là các thuật toán tất định, điều quan trọng là để tìm thấy một trong đó là mã hóa an toàn và cũng để sử dụng một hạt giống tốt ngẫu nhiên, tạo một dãy hiệu quả như “expander” từ hạt giống sẽ tạo ra số lượng lớn các dữ liệu ngẫu nhiên giả . Các hạt giống phải đủ tham sỗ để ngăn các cuộc tấn công. Nó không đủ để tạo một số ngẫu nhiên giả chỉ để vượt qua một loạt các bài kiểm tra thống kê, như mô tả trong Knuth Knu81 và các nơi khác, vì đầu ra của việc tạo số như vậy vẫn có thể dự đoán được. Đúng hơn, nó phải được tính toán khả thi không cho một kẻ tấn công xác định bất kỳ bit nào của dãy đầu ra, ngay cả khi những người khác đều biết, với xác suất tốt hơn so với 1 2. Blum và Micali dựa trên logarit rời rạc vấn đề BM84 sẽ được định nghĩa mạnh hơn, giả định rằng máy tính logarit rời rạc là khó khăn Người khởi tạo khác có thể dựa trên DES hoặc một hàm băm cũng có thể được xem xét để đáp ứng các định nghĩa này, theo các giả định hợp lý. Lưu ý rằng người ta không cần những con số ngẫu nhiên để xác định số mũ public và private trong RSA. Sau khi tạo ra các số căn bản, và do đó các môđun một trong những cách đơn giản có thể chọn một giá trị tùy ý (chịu sự ràng buộc tiêu chuẩn) cho các số mũ public, mà sau đó xác định số mũ private.
1 .Quản lý khóa 1.1 Quản lý khóa Giải quyết quản lý khóa với các hệ an toàn, phân phối, và lưu trữ các key. phương pháp quản lý key An toàn là vô cùng quan trọng. Một khi một key được tạo ngẫu nhiên nó phải được giữ bí mật để tránh rủi ro đáng tiếc (như mạo danh).Trong thực tế, hầu hết các cuộc tấn công vào hệ thống khoá công khai có thể sẽ được nhằm vào mức quản lý key hơn là ở các thuật toán mã hóa riêng của chính nó. Người sử dụng phải có khả năng thu được một cặp khóa an toàn phù hợp với hiệu quả của họ và nhu cầu bảo mật. Phải có một cách để tìm public keys của người khác và công bố công khai public keys của riêng người đó . Người sử dụng phải có khả năng thu được public keys hợp pháp của người khác, nếu không, một kẻ xâm nhập có thể thay đổi public keys được liệt kê trong một thư mục, hoặc mạo nhận một người dùng khác. Việc xác thực được sử dụng cho mục đích này Việc xác thực phải được unforgeable. Việc cấp giấy xác thực phải tiến hành một cách an toàn, không lọt ra ngoài để tránh tấn công. Trong thực tế, các tổ chức phát hành phải xác thực danh tính và public key của một cá nhân trước khi ban hành giấy xác nhận cho người đó. Nếu private key của ai đó bị mất hoặc bị tổn thất, những người khác phải được biết về điều này, vì vậy họ sẽ không còn mã hóa các thông điệp theo public key không hợp lệ và cũng không chấp nhận các thông điệp đã ký kết với các private key không hợp lệ. Người sử dụng phải có khả năng lưu trữ các private key của họ một cách an toàn, vì vậy không có kẻ xâm nhập có thể thu được chúng, nhưng các key phải sẵn sàng truy cập để sử dụng hợp pháp. Keys cần có giá trị chỉ cho đến khi một ngày hết hạn quy định nhưng ngày hết hạn phải được lựa chọn đúng và công bố công khai trong một kênh chứng thực. 1.2 Tổng quan 1.2.2 Tìm một số ngẫu nhiên cho các key Cho dù sử dụng hệ thống mật mã secret-key hay hệ thống mật mã public-key, cũng cần một nguồn cung cấp các số ngẫu nhiên để tạo ra khóa. Một hệ thống nguồn cung cấp tốt là nó có thể tạo ra một dãy số ko thể nào biết và đoán trước. Những chuỗi số ngẫu nhiên thu được từ một phương pháp vật lý là tốt nhất, khi nhiều phương pháp vật lý được áp dụng thì chuỗi số mới thực sự là ngẫu nhiên. Người ta có thể sử dụng một thiết bị phần cứng, như một diode nhiễu, một số được bán tích hợp vào máy tính nhằm mục đích thương mại. Một ý tưởng khác là sử dụng chuyển động vật lý của người sử dụng máy tính, chẳng hạn như định thời gõ cách khóa nhịp đều đặn vào khoảng micro giây. Kỹ thuật sử dụng quay của đĩa để tạo ra dữ liệu ngẫu nhiên nhưng chúng không thực sự ngẫu nhiên, như sự chuyển động của đĩa platter không thể được coi là thực sự ngẫu nhiên. Một giải pháp thay thế đáng kể chi phí hiện có sẵn; Davis et al. thiết kế một máy phát số ngẫu nhiên dựa trên các biến thể của một ổ đĩa tốc độ của động cơ. Sự thay đổi này là do biến 1 động không khí, và đã được chứng minh là không thể đoán trước. Bằng phương pháp nào mà có thể tạo ra được như vậy, các số ngẫu nhiên vẫn còn có thể chứa một số tương quan, do đó việc ngăn ngừa là không đầy đủ. Vì vậy, tốt nhất là chạy chúng thông qua một hàm băm. Một phương pháp khác là sử dụng tạo dãy số ngẫu nhiên giả bằng cách dùng gieo ngẫu nhiên. Sự khác biệt chính giữa các số ngẫu nhiên và giả ngẫu nhiên là các số giả ngẫu nhiên nhất thiết có chu kỳ trong khi con số thực sự ngẫu nhiên thì không. Kể từ khi máy phát số giả ngẫu nhiên là các thuật toán tất định, điều quan trọng là để tìm thấy một trong đó là mã hóa an toàn và cũng để sử dụng một hạt giống tốt ngẫu nhiên, tạo một dãy hiệu quả như “expander” từ hạt giống sẽ tạo ra số lượng lớn các dữ liệu ngẫu nhiên giả . Các hạt giống phải đủ tham sỗ để ngăn các cuộc tấn công. Nó không đủ để tạo một số ngẫu nhiên giả chỉ để vượt qua một loạt các bài kiểm tra thống kê, như mô tả trong Knuth [Knu81] và các nơi khác, vì đầu ra của việc tạo số như vậy vẫn có thể dự đoán được. Đúng hơn, nó phải được tính toán khả thi không cho một kẻ tấn công xác định bất kỳ bit nào của dãy đầu ra, ngay cả khi những người khác đều biết, với xác suất tốt hơn so với 1 / 2. Blum và Micali dựa trên logarit rời rạc vấn đề [BM84] sẽ được định nghĩa mạnh hơn, giả định rằng máy tính logarit rời rạc là khó khăn Người khởi tạo khác có thể dựa trên DES hoặc một hàm băm cũng có thể được xem xét để đáp ứng các định nghĩa này, theo các giả định hợp lý. Lưu ý rằng người ta không cần những con số ngẫu nhiên để xác định số mũ public và private trong RSA. Sau khi tạo ra các số căn bản, và do đó các môđun một trong những cách đơn giản có thể chọn một giá trị tùy ý (chịu sự ràng buộc tiêu chuẩn) cho các số mũ public, mà sau đó xác định số mũ private. 1.2.3 Vòng đời của một khóa Các khóa có giới hạn thời gian sống cho một số lý do. Lý do quan trọng nhất là bảo vệ chống lại giải mã mỗi lần khoá được sử dụng, nó tạo ra một số ciphertexts. Sử dụng một khóa lập đi lập lại cho phép một kẻ tấn công xây dựng một kho lưu trữ ciphertexts (và có thể plaintexts) có thể chứng minh đủ cho một giải mã thành công giá trị của khóa Như vậy key cần phải có một vòng đời hạn chế. Nếu bạn nghi ngờ rằng một kẻ tấn công có thể đã có được key của bạn,key đó phải được coi là được xâm phạm, và việc sử dụng của nó chấm dứt. Nghiên cứu trong phân tích mật mã có thể dẫn đến các cuộc tấn công có thể chống lại khóa hoặc thuật toán. Ví dụ, khuyến cáo độ dài khóa RSA được tăng lên mỗi năm để đảm bảo rằng các thuật toán được cải thiện không xâm phạm sự bảo mật của thông điệp được mã hóa bằng RSA. Chiều dài key đề nghị phụ thuộc vào các vòng đời dự kiến của khoá. Khóa Tạm thời , trong đó có giá trị cho một ngày hoặc ít hơn, có thể ngắn đúng 512 2 bit. Các key được sử dụng để ký hợp đồng dài hạn ví dụ, nên có độ dài 1024 bit hoặc nhiều hơn. Một lý do khác cho việc hạn chế vòng đời của một key là để giảm thiểu thiệt hại từ một khóa bị tổn hại. Không chắc rằng người sử dụng sẽ phát hiện ra một kẻ tấn công đã xâm nhập key của người đó nếu kẻ tấn công vẫn "thụ động." Tương đối thường xuyên thay đổi key sẽ hạn chế thiệt hại tiềm ẩn từ khóa bị tổn hại. Ford [ For94 ] mô tả các chu kỳ sống của một chìa khóa như sau: 1.Phát sinh Key và đăng ký có thể (cho một khóa công cộng). 2.Phân phối Key . 3.Kích hoạt Key / tắt và bật. 4.Thay thế key hoặc cập nhật key. 5.Thu hồi key. 6.Chấm dứt Key , liên quan đến tiêu huỷ hoặc có thể lưu trữ. 1.3 Public Key Issues 1.3.1 PKI Một cơ sở hạ tầng khoá công khai”A public-key infrastructure “ (PKI) bao gồm các giao thức, dịch vụ, và các tiêu chuẩn hỗ trợ ứng dụng của public-key cryptography. Thuật ngữ PKI , đó là tương đối , được xác định đa dạng trong văn học hiện hành. PKI đôi khi đơn giản chỉ để một hệ thống dựa trên sự tin tưởng chứng nhận public-key [1], và trong các ngữ cảnh khác bao trùm mã hóa và dịch vụ kỹ thuật số cung cấp chữ ký cho người dùng cũng như các ứng dụng OG99 .Một quan điểm trung bình là một PKI bao gồm các dịch vụ và các giao thức quản lý khóa công khai, thường thông qua việc sử dụng các thành phần Certification Authority (CA) và Registration Authority (RA) , nhưng không nhất thiết để thực hiện các hoạt động mã hóa với các key. Một trong số các dịch vụ có khả năng được tìm thấy trong một PKI như sau: Đăng ký Key: cấp chứng nhận mới cho một khoá công khai. Thu hồi chứng nhận: hủy bỏ cấp chứng nhận trước đây. Chọn key : có được khóa công khai của một bên. Đánh giá tin tưởng : xác định chứng nhận là hợp lệ và cho phép những hoạt động đó . Phục hồi key cũng đã được đề xuất như là một khía cạnh có thể có của một PKI. Không dễ có một cơ sở hạ tầng khoá công khai phổ biến như ngày hôm nay, mặc dù những nỗ lực để xác định một PKI thường cho là sẽ có được một, hoặc, ngày càng tăng, có nhiều PKIs độc lập sẽ phát triển với mức độ khác nhau cùng tồn tại và khả năng tương tác. Trong ý nghĩa này, ngày hôm nay PKI có thể được xem giống như mạng cục 3 bộ và mạng diện rộng trong những năm 1980, trước khi có kết nối phổ biến rộng rãi thông qua Internet. Theo kết quả của quan điểm này đối với một PKI toàn cầu, các định dạng chứng nhận và cơ chế tin cậy được xác định một cách cởi mở và khả năng mở rộng, nhưng với các cấu hình sử dụng tương ứng với sự tin cậy và chính sách yêu cầu của khách hàng cụ thể và môi trường ứng dụng. Ví dụ, nó thường chấp nhận rằng sẽ có nhiều “root”hoặc “top level” các cơ quan chứng nhận trong một PKI toàn cầu, không chỉ là một “root”mặc dù trong một PKI cục bộ chỉ có thể có một gốc. Theo đó, các giao thức được định nghĩa với việc cung cấp để chỉ định nguồn gốc là đáng tin cậy của một ứng dụng nhất định, hoặc người sử dụng. Những nỗ lực để xác định một PKI ngày nay đang được tiến hành trong nhiều chính phủ cũng như các tổ chức tiêu chuẩn . Cục Kho bạc của Mỹ và NIST cả hai đều có chương trình PKI [2,3], cũng như Canada [4] và Vương quốc Anh [5]. NIST đã phát hành một cấu hình tương tác cho các thành phần PKI [BDN97], nó xác định các thuật toán và các định dạng chứng nhận rằng các cơ quan chứng nhận phải hỗ trợ. Một số cơ quan tiêu chuẩn đã làm việc trên các khía cạnh PKI đã bao gồm PKIX của IETF và SPKI nhóm làm việc [6,7] và The Open Group [8]. Hầu hết các định nghĩa PKI dựa trên chứng nhận X.509, với ngoại lệ đáng chú ý của SPKI của IETF. [1] PKI - PC Webopedia Định nghĩa và Liên kết: http://webopedia.internet.com/TERM/P/PKI.html . [2] Chính phủ Dịch vụ Công nghệ thông tin, liên bang cơ sở hạ tầng khóa công khai: http://gits-sec.treas.gov/oofpkisteer.htm . [3] NIST cơ sở hạ tầng khóa công khai Chương trình: http://csrc.ncsl.nist.gov/pki/ . [4] Chính phủ Canada chính cơ sở hạ tầng công cộng: http://www.cse.dnd.ca/cse/english/gov.html . [5] Tập đoàn Mở khóa công khai cơ sở hạ tầng, nhất đề xuất cho một PKI HMG. http://www.opengroup.org/public/tech/security/pki/cki/ [6] Cơ sở hạ tầng khóa công khai (X.509) (pkix) làm việc nhóm: http://www.ietf.org/html.charters/pkix-charter.html . [7] Wikipedia khóa công khai cơ sở hạ tầng (spki) làm việc nhóm: http://www.ietf.org/html.charters/spki-charter.html . [8] Group mở khóa công khai cơ sở hạ tầng: http://www.opengroup.org/security/pki/ . 4 1.3.2 Ai cần một cặp khoá? Bất kỳ ai muốn đăng ký các thông điệp hoặc để nhận các thông điệp được mã hóa phải có một cặp khóa. Mọi người có thể có nhiều hơn một cặp khoá. Trong thực tế, Được khuyến khích sử dụng cặp khóa riêng cho việc ký kết các thông điệp và nhận thông điệp được mã hóa. Một ví dụ khác, một người nào đó có thể có một cặp khóa có quan hệ với công việc của mình và một cặp khóa riêng biệt để sử dụng cá nhân. Các đối tượng khác cũng có thể có cặp khóa, bao gồm cả các đơn vị điện tử như modem, máy trạm, máy chủ web (trang web) và máy in, cũng như các đơn vị tổ chức như một bộ phận doanh nghiệp, đăng ký một bàn khách sạn , hoặc văn phòng đăng ký của trường đại học. cặp khóa cho phép người dân và các tổ chức khác để xác thực và các thông điệp mã hóa. Tổng công ty có thể yêu cầu nhiều hơn một cặp khóa cho truyền thông. Họ có thể sử dụng một hoặc nhiều cặp khóa cho việc mã hóa (với các key được lưu trữ theo quỹ ký key để bảo vệ key trong trường hợp mất) và sử dụng một đôi duy nhất non-escrowed key cho xác thực. Độ dài của cặp khóa mã hóa và xác thực có thể được thay đổi theo mong muốn bảo mật. 1.3.3 Làm thế nào một nhận được một cặp khoá? Một người dùng có thể tạo ra một cặp khóa của chính mình , hoặc, tuỳ thuộc vào chính sách cục bộ, một nhân viên an ninh có thể tạo cặp khóa cho tất cả người dùng. Có sự cân bằng giữa hai phương pháp tiếp cận. Trong khuôn khổ, người sử dụng cần một số cách để tin tưởng bản sao của mình trong phần mềm tạo key, và sau này, người sử dụng phải tin tưởng vào nhân viên an ninh và key riêng của mình phải được chuyển an toàn cho người sử dụng. Thông thường, mỗi nút trên mạng phải có khả năng tạo ra key cục bộ. hệ thống xác thực Secret-key, chẳng hạn như Kerberos, thường không cho phép phát sinh các key cục bộ, nhưng thay vì sử dụng một máy chủ trung tâm để tạo ra các key. Một khi key được tạo ra, người sử dụng phải đăng ký khóa công khai của mình với một số chính quyền trung ương, gọi là chứng nhận Authority (CA). Các CA trả về cho người sử dụng giấy chứng nhận, chứng nhận tính hợp lệ của khoá công khai của người sử dụng cùng với các thông tin khác .Nếu một nhân viên an ninh tạo ra cặp khoá, sau đó các nhân viên an ninh có thể yêu cầu chứng nhận cho người sử dụng. Hầu hết người dùng không cần có nhiều hơn một chứng nhận cho các khóa tương tự, để đơn giản hóa nhiệm vụ kế toán khác nhau liên quan đến khoá. 1.3.4 Có nên chia sẽ một cặp khóa giữa người sử dụng? Các người dùng chia sẻ một khóa riêng có thể mạo danh người khác (có nghĩa là, thông điệp ký như nhau và giải mã thông điệp dành cho nhau), do đó, nói chung, khóa riêng không nên được chia sẻ giữa người sử dụng. Tuy nhiên, một số bộ phận của một khóa có thể được chia sẻ, tùy thuộc vào các thuật toán. Trong RSA, trong khi mỗi người cần phải có một môđun duy nhất và số mũ riêng (có nghĩa là, một khóa riêng duy nhất), số mũ công cộng có thể được phổ biến cho một nhóm người dùng mà không có bảo đảm là tổn thất. Một số số mũ công trong sử dụng 5 phổ biến ngày hôm nay là 3 và 2 16 +1; bởi vì những con số này là nhỏ, các thao tác public key (mã hóa và xác nhận chữ ký) được nhanh chóng liên quan đến các hoạt động khóa riêng (giải mã và ký kết).Nếu một mũ công trở thành chuẩn , phần mềm và phần cứng có thể được tối ưu hóa cho giá trị đó. Tuy nhiên, các mô đun không được chia sẻ. Trong hệ thống khóa công dựa trên logarit rời rạc, như là Diffie-Hellman, DSA, và ElGamal .Một nhóm người có thể chia sẻ một tập hợp các thông số hệ thống, trong đó có thể dẫn đến việc thực hiện đơn giản hơn.Điều này cũng đúng cho các hệ thống dựa trên đường cong elliptic logarit rời rạc. Cần lưu ý, điều này sẽ làm phá vỡ một khóa hấp dẫn hơn để kẻ tấn công bởi vì nó có thể phá vỡ tất cả các key với một tập hợp các thông số hệ thống với chỉ một chút nỗ lực nhiều hơn để phá vỡ một key duy nhất. Để kẻ tấn công, do đó, chi phí trung bình để phá vỡ một key là thấp hơn rất nhiều với một tập hợp các thông số phổ biến hơn nếu mỗi key có một bộ riêng biệt của các thông số. Thuật toán Diffie-Hellman Thuật toán thỏa thuận khóa Diffie-Hellman. Giả sử A và B muốn liên lạc sử dụng hệ mật khoá bí mật. Để thoả thuận mật khoá K chung cho cả hai bên qua một kênh không an toàn mà không ai khác có thể biết được, A và B có thể dùng thủ tục thoả thuận khoá Diffie -Hellman sau: ·Chọn trước một số nguyên tố p thích hợp và một phần tử sinh α của o Z*p (2 ≤ α ≤ p-2 ) Các giá trị p và α được công khai. ·A gửi cho B giá trị α^x mod p (2.1) ·B gửi cho A giá trị α^y mod p. (2.2) ·Thực hiện các bước sau mỗi khi cần có khoá chung: o A chọn một số nguyên bí mật x: 1≤x≤p-2 và gửi cho B thông báo (2.1). o B chọn một số nguyên bí mật y: 1≤y≤p-2 và gửi cho A thông báo (2.2). o B thu được αx và tính khoá chung k:k = (α^x)^y mod p o A thu được αy và tính khoá chung k: k = (α^y)^x mod p Ví dụ: Giả sử A và B chọn p = 11 và α = 2 Nhóm nhân xyclic sinh bởi α: 6 { αi , i=0, ,9}={1,2,4,8,5,10,9,7,3,6} (Các phần tử sinh của nhóm này bao gồm các phần tử sau: α =2, α^3 = 8, α^7 =7, α^9 = 6) Giả sử A chọn giá trị ngẫu nhiên x = 4 và gửi cho B giá trị 2^4mod 11 = 5. Giả sử B chọn giá trị ngẫu nhiên y = 7 và gửi cho A giá trị 2^7mod 11 = 7 B nhận được 5 và tính khoá chung k = 5^7 mod 11 =3 A nhận được 7 và tính khoá chung k = 7^4 mod 11 =3 L8xPro Hệ mật khóa công khai trong ElGamal. Hệ mật khóa công khai ElGamal tổng quát. 7 1.3.5 Điều gì xảy ra khi một key hết hạn? Để bảo vệ chống lại một thuật ngữ tấn công cryptanalytic kéo dài, mỗi khóa phải có một ngày hết hạn mà sau đó nó không còn hợp lệ .Thời gian để hết hạn phải ngắn hơn nhiều so với thời gian dự kiến để phân tích mật mã. Đó là, chiều dài key phải đủ để làm cho cơ hội phân tích mật mã trước khi hết hạn khóa cực kỳ nhỏ. Thời hạn hiệu lực cho một cặp khóa cũng có thể phụ thuộc vào hoàn cảnh mà trong đó key được sử dụng. Kích thước key phù hợp được xác định bởi thời hạn hiệu lực, cùng với giá trị của thông tin được bảo vệ bởi các key và sức mạnh ước tính của kẻ tấn công mong đợi. Trong chứng nhận ,ngày hết hạn của một key thường giống như ngày hết hạn của chứng nhận. Một chương trình xác minh chữ ký nên kiểm tra hết hạn và không nên chấp nhận một thông điệp đã ký kết với một key hết hạn. Điều này có nghĩa là khi key riêng của một người hết hạn, tất cả mọi thứ đã ký kết với nó sẽ không còn được coi là hợp lệ. Tất nhiên, sẽ có trường hợp, trong đó điều quan trọng là văn bản ký kết được coi là hợp lệ cho một thời gian dài . Thảo luận về kỹ thuật số Timestamping như một cách để đạt được điều này. Sau khi hết hạn, key cũ cần được phá hủy để bảo vệ an ninh của các thông điệp cũ (lưu ý, tuy nhiên, có một key hết hạn có thể cần phải được giữ lại trong một số khoảng thời gian để giải mã thông điệp mà vẫn còn nổi bật nhưng được mã hóa trước khi hết hạn của key). Tại thời điểm này, người sử dụng thông thường nên chọn một khóa mới, có thể dài hơn so với khóa cũ để phản ánh cả sự gia tăng hiệu suất của phần cứng máy tính và các cải tiến gần đây trong các thuật toán factoring . Tuy nhiên, nếu một key đủ dài và không bị tổn hại, người sử dụng có thể tiếp tục sử dụng cùng một key. Trong trường hợp này, cơ quan xác nhận sẽ cấp chứng nhận mới cho cùng khóa, và tất cả các chữ ký mới sẽ chỉ vào chứng nhận mới thay vì cũ. Tuy 8 nhiên, thực tế là phần cứng máy tính tiếp tục cải thiện làm cho nó thận trọng để thay thế các khóa hết hạn với phiên bản mới hơn, các key dài hơn mỗi vài năm. Thay thế key cho phép tận dụng lợi thế của bất kỳ cải tiến phần cứng để tăng độ an toàn của mật mã này. phần cứng Nhanh hơn có tác dụng bảo mật ngày càng tăng, có lẽ đáng kể, nhưng chỉ khi độ dài key là gia tăng thường xuyên . 1.3.6 Điều gì xảy ra nếu khóa của tôi bị mất? Nếu khóa riêng của bạn bị mất hoặc bị phá hủy nhưng không bị tổn hại, bạn có thể không còn chữ ký hoặc thông điệp giải mã, nhưng bất cứ điều gì trước đây đã ký kết với các key bị mất là vẫn còn giá trị. Các CA phải được thông báo ngay lập tức để key có thể được thu hồi và được đặt trên một danh sách thu hồi chứng nhận để ngăn chặn việc sử dụng bất hợp pháp nếu khoá được tìm thấy hoặc thu hồi bởi một đối thủ .Mất một khóa riêng có thể xảy ra, ví dụ, nếu bạn làm mất thẻ thông minh được sử dụng để lưu trữ key của bạn, hoặc nếu đĩa trên đó có lưu key bị hư hỏng. Bạn cũng nên có được một key mới ngay tức thì đi để giảm thiểu số người nhắn tin gửi cho bạn được mã hóa theo khóa cũ của bạn, vì không những có thể được đọc. 1.3.7 Điều gì xảy ra nếu khóa bí mật bị tổn hại? Nếu private key của bạn bị tổn hại, bạn nghi ngờ một kẻ tấn công có thể đã thu được khóa riêng của bạn, sau đó bạn nên cho rằng những kẻ tấn công có thể đọc bất kỳ tin nhắn được mã hóa gửi cho bạn theo các khoá công khai tương ứng, và giả mạo chữ ký của bạn trên các tài liệu miễn như những người khác tiếp tục chấp nhận rằng khóa công cộng như của bạn. Các mức độ nghiêm trọng của những hậu quả này nhấn mạnh tầm quan trọng của việc bảo vệ khóa riêng của bạn với cơ chế cực kỳ mạnh mẽ . Bạn phải ngay lập tức phải thông báo cho cơ quan nào xác nhận cho các khóa công cộng và có khoá công khai của bạn được đặt trên một danh sách thu hồi chứng nhận , điều này sẽ thông báo mọi người rằng khóa riêng đã bị xâm phạm và các khóa công cộng đã bị thu hồi.Sau đó, tạo ra một cặp khoá mới và có được một chứng nhận mới cho các khoá công khai. Bạn có thể sử dụng những private key mới để tái ký các văn bản bạn đã ký với khóa riêng tư bị xâm phạm, mặc dù các tài liệu đã được timestamped cũng như ký kết vẫn có thể hợp lệ .Bạn cũng nên thay đổi cách bạn lưu trữ các khóa riêng của bạn để ngăn chặn một sự thỏa hiệp của khóa mới. 1.3.8 Nên lưu trữ khóa riêng bằng cách nào? Private keys phải được lưu trữ an toàn, vì sự giả mạo và sự mất riêng tư có thể là kết quả của sự tổn thất .Các biện pháp để bảo vệ một Private keys phải đảm bảo ít nhất bằng với yêu cầu bảo mật của các thông điệp được mã hóa bằng khóa đó. Nói chung, một khóa riêng không bao giờ được lưu trữ bất cứ nơi nào ở dạng thô. Cơ chế lưu trữ đơn giản nhất là để mã hóa một khóa riêng theo mật khẩu và lưu trữ kết quả trên đĩa. Tuy nhiên, mật khẩu đôi khi rất dễ đoán, khi sơ đồ này được theo sau, mật khẩu sẽ được lựa chọn rất cẩn thận vì bảo mật được gắn trực tiếp vào mật khẩu. 9 Lưu trữ các khóa mã hóa trên một đĩa đó là không thể truy cập thông qua một mạng máy tính, chẳng hạn như một đĩa mềm hoặc đĩa cứng, sẽ làm cho một số các cuộc tấn công khó khăn hơn. Nó có thể là tốt nhất để lưu trữ key trong một máy tính không thể truy cập cho người dùng khác hoặc trên các phương tiện di động, người dùng có thể loại bỏ và mang theo khi đã hoàn thành bằng cách sử dụng một máy tính cụ thể. Private keys cũng có thể được lưu trữ trên phần cứng di động, chẳng hạn như một thẻ thông minh. Người dùng có nhu cầu bảo mật rất cao, chẳng hạn như cơ quan xác nhận, nên sử dụng các thiết bị chống giả mạo để bảo vệ khóa riêng của họ . 1.3.9 Làm thế nào để tìm thấy public key của một người nào khác ? Giả sử Alice muốn tìm public key của Bob. Có một số cách có thể làm điều này. Cô có thể gọi anh ta lên và yêu cầu anh ta phải gửi khoá công khai của mình qua e-mail. Cô có thể yêu cầu thông qua thư điện tử, trao đổi nó trong người, cũng như cách khác. Vì khóa công khai là công khai hiểu biết, không cần mã hóa nó trong khi chuyển nó, mặc dù nên xác minh tính xác thực của một khóa công khai. Một sự tinh nghịch của bên thứ ba có thể chặn việc truyền tải, thay thế key của Bob với chính mình và do đó có thể đánh chặn và giải mã thông điệp được gửi từ Bob và Alice để mã hóa bằng khóa giả”fake”. Vì lý do này ,một cá nhân phải xác minh key (ví dụ, điều này có thể được thực hiện bằng cách tính toán một hash của khoá và kiểm tra nó với Bob qua điện thoại) hoặc dựa vào các cơ quan xác nhận .cơ quan chứng nhận có thể cung cấp dịch vụ thư mục, nếu Bob làm việc cho công ty Z, Alice có thể tìm trong thư mục lưu giữ của cơ quan xác nhận của Z. Hôm nay, thư mục chính thức đang nổi lên, làm on-line trang trắng hoặc màu vàng. Cùng với T X.509 tiêu chuẩn ITU , hầu hết các thư mục chứa chứng nhận cũng như các public keys; sự hiện diện của chứng nhận thấp hơn bảo mật của các thư mục cần 1.3.10 Chứng nhận Chứng nhận là văn bản kỹ thuật số làm chứng cho sự ràng buộc của một khoá công khai cho một cá nhân hoặc thực thể khác. Chúng cho phép xác minh các tuyên bố rằng một public key đặc biệt nào trong thực tế thuộc về một cá nhân cụ thể. Chứng nhận giúp ngăn ngừa một người nào đó sử dụng một khóa giả mạo danh người khác. Trong một số trường hợp, nó có thể cần thiết để tạo ra một chuỗi các chứng nhận, mỗi một xác nhận trước đó cho đến khi các bên liên quan tự tin vào nhận dạng trong câu hỏi. Trong hình thức đơn giản của chúng, chứng nhận chứa một khóa công khai và một tên. Như thường được sử dụng,chứng nhận cũng có ghi ngày hết hạn, tên của cơ quan xác nhận cấp chứng nhận, một serial number, và có lẽ các thông tin khác. Quan trọng nhất, nó có chứa các chữ ký số của người phát hành chứng nhận. Các định dạng chấp nhận rộng rãi nhất đối với chứng chỉ được xác định bởi các X.509 tiêu chuẩn quốc tế ITU , do đó, giấy chứng nhận có thể được đọc hoặc viết bằng bất kỳ ứng dụng thực hiện theo X.509.Một cuộc thảo luận chi tiết về định dạng chứng chỉ có thể được tìm thấy trong [ Ken93 ]. 10 [...]... key của tôi Hãy gửi cho tôi chứng thực Nếu CA bị lừa và gửi chứng thực cho B, anh ta co thể lừa ngân hàng và hoàn thành việc tấn công Để ngăn chặn tấn công đó, CA cần phải kiểm tra yêu cầu chứng thực là có thực đến từ chính chủ yêu cầu, nó cần yêu cầu chứng nhận rằng người yêu cầu chứng thực chính xác là A ví dụ, CA yêu cầu A xuất trình thông tin cá nhân và ngày sinh chứng thực Một vài CA có thể yêu... yêu cầu chứng thư thực Nếu ko bị lộ thì private key của CA vẫn còn giá trị sử dụng Một CA cũng phải chắc chắn rằng người dùng sở hữu các private key tương ứng với public key được chứng nhận nếu ko, một số cuộc tấn công có thể trở thành nơi người dùng gắn giấy chứng nhận thư được ký bởi một người khác 1.3.15 Nếu khóa của CA bị mất hoặc bị xâm nhập? Nếu key của CA bị mất hay bị hủy nhưng ko bị tổn hại,... để xác thực liên quan đến việc kết hợp một hoặc nhiều chứng nhận với tất cả các thông điệp đã ký kết Người nhận thông điệp sẽ kiểm tra chứng nhận sử dụng khoá công khai của cơ quan xác nhận và, bây giờ tự tin khóa công cộng của người gửi, xác minh chữ ký của thông điệp Có thể có hai hoặc nhiều chứng chỉ kèm theo thông điệp, hình thành một hệ thống chứng nhận phân cấp, trong đó một chứng nhận đã chứng. .. ko bị tổn hại, chữ kí chứng thư với khóa cũ sẽ ko con giá trị, cũng như người xác thực biết để sử dụng public key cũ để xác thực chứng thư Một vài thiết kế cho thiết bị kí chứng thư, các bản sao lưu mật mã của khóa riêng của CA được lưu giữ, do đó, một CA mà mất chìa khóa của nó sau đó có thể khôi phục nó bằng cách tải các bản sao lưu được mã hóa vào thiết bị Nếu chính thiết bị bị hủy, nhà sản xuất... xác nhận chứng thực với một mức an toàn thấp Mọi CA cần phải công khai trạng thái yêu cầu ID và nguyên tắc để người khác có thể nối kết phù hợp mức độ tin tưởng về chứng thực của mình Trong lần tấn công khác, B mua chuộc một vài người làm việc trong CA để họ cấp cho anh ta 1 chứng thực mang tên A và B có thể gửi tin nhắn có chữ kí của mang tên A và bất kì ai nhận tin cung đều tin rằng nó đáng tin cậy... bảo vệ bởi một CA, và nó cung cấp thông tin về chứng thư bị thu hồi mà được ban hành bởi CA Chỉ có những CRL trong danh sách chứng thực hiện thời, từ khi hết hạn thì chứng thư sẽ không được chấp nhận trong bất kì trường hợp nào: khi thu hồi các chứng thư hết hạn thì chứng sẽ bị xóa khỏi CRL Những CRL thường được phân bố theo 1 trong 2 cách Kiểu “pull”, những người xác thực tải CRL từ CA nếu cần Kiểu... hiệp Giấy chứng nhận có chữ ký của thiết bị còn giá trị, miễn là xác minh việc sử dụng key đúng công cộng Hơn nữa, một số thiết bị được sản xuất do đó, một tin quan trọng bị mất có thể được phục hồi vào một thiết bị mới 1.3.14 Làm thế nào để xác nhận cơ quan dễ bị tấn công? Một kẻ tấn công có thể cố gắng xâm nhập tìm ra private key của một CA nào đó bằng cách đảo ngược kết cấu của thiết bị trong khi... private key, ví dụ, nội dung là một mã hóa BER của một giá trị kiểu RSAPrivateKey • Attributes :là một tập hợp các thuộc tính Đây là những phần thông tin mở rộng được mã hóa cùng với các thông tin private-key 4 .Cú pháp mã hóa thông tin Private Key : - - - Mã hóa thông tin private-key sẽ có một ASN.1 kiểu EncryptedPrivateKeyInfo: EncryptedPrivateKeyInfo ::= SEQUENCE { encryptionAlgorithm EncryptionAlgorithmIdentifier,... với một số bằng chứng về nhận dạng của mình CA kiểm tra xác định và có bất kỳ bước nào cần thiết khác để bảo đảm yêu cầu thực sự đến từ Alice và các khóa công cộng đã không được sửa đổi trong quá cảnh, và sau đó gửi cho cô một chứng nhận làm chứng cho sự ràng buộc giữa Alice và khoá công khai của cô cùng với một hệ thống các chứng nhận xác nhận khóa công khai của CA Alice có thể đại diện chuỗi chứng. .. trình của cấp phát chứng thực Có rất nhiều thiết kế có thể điều khiển sử dụng private key của quyền chứng thực BBN’s SafeKeyper, ví dụ, để kích hoạt giá trị dữ liệu cho các key, sử dụng một khóa vật lí có thể lưu các thông tin điện tử dữ liệu key sử dụng công nghệ chia sẻ bí mật vì thế mà một vài người cần phải sử dụng dữ liệu key để kích hoạt SafeKeyper Lưu ý rằng nếu các thiết bị chứng nhận đăng ký . số cuộc tấn công có thể trở thành nơi người dùng gắn giấy chứng nhận thư được ký bởi một người khác 1.3.15 Nếu khóa của CA bị mất hoặc bị xâm nhập? Nếu key của CA bị mất hay bị hủy nhưng ko bị. các thuộc tính. Đây là những phần thông tin mở rộng được mã hóa cùng với các thông tin private-key. 4 .Cú pháp mã hóa thông tin Private Key : - Mã hóa thông tin private-key sẽ có một ASN.1 kiểu. xuyên . 1.3.6 Điều gì xảy ra nếu khóa của tôi bị mất? Nếu khóa riêng của bạn bị mất hoặc bị phá hủy nhưng không bị tổn hại, bạn có thể không còn chữ ký hoặc thông điệp giải mã, nhưng bất cứ điều