Bài tập mã hóa khóa cho sinh viên | An toàn thông tin | Đại học Công nghiệp Thành phố Hồ Chí Minh

Bài tập mã hóa khóa cho sinh viên của Trường Đại học Công nghiệp Thành phố Hồ Chí Minh. Hi vọng tài liệu này sẽ giúp các bạn học tốt, ôn tập hiệu quả, đạt kết quả cao trong các bài thi, bài kiểm tra sắp tới. Mời các bạn cùng tham khảo chi tiết bài viết dưới đây nhé.

Thông tin:
6 trang 3 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Bài tập mã hóa khóa cho sinh viên | An toàn thông tin | Đại học Công nghiệp Thành phố Hồ Chí Minh

Bài tập mã hóa khóa cho sinh viên của Trường Đại học Công nghiệp Thành phố Hồ Chí Minh. Hi vọng tài liệu này sẽ giúp các bạn học tốt, ôn tập hiệu quả, đạt kết quả cao trong các bài thi, bài kiểm tra sắp tới. Mời các bạn cùng tham khảo chi tiết bài viết dưới đây nhé.

51 26 lượt tải Tải xuống
lOMoARcPSD|45470368
1 Khái niệm mã hóa công khai , cơ chế và các thành phần của hệ mã hóa công khai.
- Khái niệm:
Mã hóa công khai hay mã hóa Public Key là phương pháp mã hóa dữ liệu bằng 2
khóa (key) khác nhau, trong đó 1 key được gọi là Public Key (khóa công khai) có sẵn
cho người dùng dùng và 1 key là Private Key (khóa riêng tư). Các dữ liệu được mã
hóa bằng khóa công khai chỉ khả năng giải mã được bằng khóa riêng tư và ngược lại,
các dữ liệu được mã hóa bằng khóa riêng tư chỉ khả năng giải mã được bằng khóa
công khai.
- Cơ chế :
Trong một hệ thống bất kỳ người nào cũng có thể mã hóa một tin nhắn bằng khóa
công khai , nhưng tin nhắn đó chỉ có thể được giải bằng mã khóa riêng của người
nhận. tạo mã hóa công khai sau đó sử dụng khóa công khai được chia sẻ rộng rãi.
Sau đó, máy chủ có thể gửi khóa đối xứng được mã hóa này qua một kênh không an
toàn tới máy khách; chỉ máy khách mới có thể giải mã nó bằng cách sử dụng khóa
riêng (khóa này ghép nối với khóa công khai được máy chủ sử dụng để mã hóa thư).
Với cả máy khách và máy chủ đều có cùng một khóa đối xứng, họ có thể sử dụng mã
hóa khóa đối xứng một cách an toàn (có thể nhanh hơn nhiều) để giao tiếp qua các
kênh không an toàn. Lược đồ này có lợi thế là không phải chia sẻ trước các khóa đối
xứng theo cách thủ công (một vấn đề cơ bản khó khăn) trong khi vẫn đạt được lợi thế
về thông lượng dữ liệu cao hơn của mật mã khóa đối xứng.
Thành phần :
Các thành phần của mã hóa Public Key bao gồm:
Plain Text (văn bản thuần túy): là dữ liệu chúng ta khả năng đọc và hiểu được.
Các dữ liệu này được dùng làm đầu vào cho thuật toán mã hóa.
Cipher Text (dữ liệu đã mã hóa): dữ liệu đã được mã hóa, là kết quả đầu ra
của thuật toán mã hóa. Vì dữ liệu đã được mã hóa nên chúng ta không thể hiểu các dữ
liệu này.
Thuật toán mã hóa: là thuật toán được dùng để chuyển đổi dữ liệu là văn bản
thuần túy sang dữ liệu được mã hóa.
Thuật toán giải mã: chấp nhận dữ liệu đã mã hóa làm đầu vào và key (key
riêng tư hoặc key công khai) và xuất văn bản, tài liệu gốc.
Khóa công khai và riêng tư: khóa riêng tư và khóa công khai được dùng để
mã hóa và giải mã.
2 Các đặc điểm và yêu cầu của hệ mã khóa công khai
2.1 Đảm bảo tính bí mật
lOMoARcPSD|45470368
Bản mã C được gởi đi trên kênh truyền. Do bản mã C đã được biến đổi so với bản rõ
P, cho nên những người thứ ba can thiệp vào kênh truyền để lấy được bản mã C, thì
không hiểu được ý nghĩa của bản mã. Đây chính là đặc điểm quan trọng của mã hóa,
cho phép đảm bảo tính bảo mật (confidentiality)
2.2 Đảm bảo tính toàn vẹn dữ liệu
Nếu Trudy chặn được bản mã C của Alice và sửa C thành CT, thì xác suất để PT
là văn bản có nghĩa cũng rất bé. Và Bob biết được C đã bị sửa đổi. Đối với mã hóa
hiện đại cũng vậy, nếu Trudy chọn CT là một dãy bít bất kỳ thì bản rõ PT cũng là
một dãyt lộn xộn, không có cấu trúc ý nghĩa.
2.3 Tính xác thực (authentication) của mã hóa đối xứng.
Mã hóa đối xứng có thể chống lại các hình thức tấn công sửa đổi thông điệp, mạo
danh và phát lại thông điệp được hay không? Câu trả lời là có
2.4 Tính không từ chối (non-repudiation) của mã hóa đối xứng.
Mặc dù mã hóa đối xứng thỏa mãn tính bảo mật nhưng mã hóa đối xứng lại không
thỏa mãn được tính không từ chi. Vì khóa của mã hóa đối xứng chỉ có hai người
biết, nên nếu khóa K bị tiết lộ thì không có cơ sở để quy trách nhiệm cho Alice hay
Bob làm lộ khóa.
Có phương pháp nào mã hóa nào mà khóa bí mật chỉ có một người biết mà. Đó là
phương pháp mã hóa khóa công khai (được giới thiệu sau)
câu3: nêu nguyên tắc của mã hóa khóa công khai? Trong sơ đồ PKC, chìa khóa công
khai được người gửi sử dụng để mã hóa thông tin, trong khi chìa khóa cá nhân được
người nhận sử dụng để giải mã. Hai chìa khóa là khác nhau, trong đó chìa khoá công
khai có thể được chia sẻ an toàn mà không ảnh hưởng đến tính bảo mật của chìa khoá
cá nhân. Mỗi cặp chìa khóa bất đối xứng là duy nhất, đảm bảo rằng mt thông điệp
được mã hóa bằng chìa khoá công khai chỉ có thể được đc bởi người sở hữu chìa
khoá cá nhân tương ứng.
Vì thuật toán mã hóa bất đối xứng tạo ra các cặp chìa khóa được liên kết về mặt toán
học nên có độ dài chìa khóa dài hơn nhiều so với các cặp chìa khoá được tạo ra bởi
mật mã hoá đối xứng. Độ dài dài hơn này - thường từ 1.024 đến 2.048 bit - khiến việc
tính toán chìa khóa cá nhân từ chìa khoá công khai là vô cùng khó khăn. Một trong
những thuật toán thông dụng nhất cho mã hóa bất đối xứng được sử dụng ngày nay
có tên là RSA. Trong sơ đồ RSA, các chìa khóa được tạo bằng cách sử dụng mt
môđun phép nhân hai số (thường là hai số nguyên tố lớn). Nói đơn giản hơn, mô-đun
tạo ra hai chìa khóa (một khóa công khai có thể được chia sẻ và mt khóa cá nhân
cần được giữ bí mật). Thuật toán RSA được mô tả lần đầu tiên vào năm 1977 bởi
lOMoARcPSD|45470368
Rivest, Shamir và Adleman (RSA là ghép các chữ cái đầu tiên của 3 người này) và
hiện vẫn là thành phần chính của các hệ thống mật mã khóa công khai.
B, tại sao trong mã hóa khóa công khai không cần dùng đến kênh an toàn để truyền
khóa
Với mật mã khóa công khai, cũng có thể xác thực mạnh mẽ . Người gửi có thể kết
hợp thư với khóa cá nhân để tạo ra một chữ ký điện tử ngắn trên thư. Bất kỳ ai có
khóa công khai tương ứng của người gửi đều có thể kết hợp thư đó với một chữ ký
điện tử đã được xác nhận quyền sở hữu; nếu chữ ký khớp với thông báo, nguồn gốc
của thông báo được xác minh (nghĩa là, nó phải được tạo bởi chủ sở hữu của khóa cá
nhân tương ứng)
Các thuật toán khóa công khai là các nguyên tắc bảo mật cơ bản trong các hệ thống
mật mã hiện đại , bao gồm các ứng dụng và giao thức cung cấp sự đảm bảo về tính bí
mật, tính xác thực và không thể thoái thác của truyền thông điện tử và lưu trữ dữ liệu.
Chúng củng c nhiều tiêu chuẩn Internet, chẳng hạn như Bảo mật tầng truyền tải
(TLS) , S / MIME , PGP và GPG . Một số thuật toán khóa công khai cung cấp kh
năng phân phối và bảo mật khóa (ví dụ: trao đổi khóa Diffie Hellman ), một số cung
cấp chữ ký số (ví dụ: Thuật toán Chữ ký Số ) và một số cung cấp cả hai (ví dụ: RSA).
So với mã hóa đối xứng , mã hóa bất đối xứng chậm hơn mã hóa đối xứng tốt, q
chậm cho nhiều mục đích. Các hệ thống mật mã ngày nay (chẳng hạn như TLS ,
Secure Shell ) sử dụng cả mã hóa đối xứng và mã hóa không đối xứng, thường bằng
cách sử dụng mã hóa không đối xứng để trao đổi an toàn một khóa bí mật sau đó
được sử dụng cho mã hóa đối xứng.
câu 4: trong mã hóa khóa công khai, khóa riêng và khóa công khai có phải là 2 khóa
tùy ý, không liên quan? nếu có liên quan, tại sao không thể tính từ khóa riêng từ khóa
công khai.
Khóa công khai và khóa riêng là hai cơ chế khóa được sử dụng trong mã hóa bất đối
xứng của mật mã. Khóa công khai là mt loại khóa được sử dụng với thuật toán mã
hóa để chuyển đổi tin nhắn thành dạng không thể đọc được. Khóa riêng là một loại
khóa được sử dụng với thuật toán giải mã để chuyển đổi tin nhắn nhận được trở lại tin
nhắn gốc. Cả hai khóa này đều giúp đảm bảo an toàn cho dữ liệu trao đổi. Tóm lại,
một tin nhắn được mã hóa bằng khóa chung không thể được giải mã mà không sử
dụng khóa riêng tương ứng.
Nếu mt người biết khóa cá nhân, họ có thể tính khóa công khai. Tuy nhiên, nếu chỉ
biết khóa công khai thì không đủ để tính khóa riêng. Đó là do tại sao khóa công
khai không cần được giữ bí mật vì biết rằng nó không cho phép giải mã thông tin
được mã hóa.
6. Mã hóa bất đối xứng (mã hóa công khai)
Ưu điểm:
lOMoARcPSD|45470368
Bảo mật, toàn vẹn dữ liệu; trao đồi khóa, xác thực (nguồn gốc/chống thoái thác)
Không cần chia sẻ khóa mã hóa (khóa công khai) một cách bí mật => Dễ dàng ứng
dụng trong các hệ thống mở.
Khóa giải mã (khóa riêng) chỉ có bạn biết => An toàn hơn, có thể xác thực nguồn gốc
thông tin n phần tử chỉ cần n cặp khóa.
Các hệ thống khoá công khai có khả năng thực thi chữ kí số. Điều này có nghĩa là
một tài liệu điện tử có thể được kí và gửi cho người nhận bất kì, cùng với chống chối
bỏ, người kí không thể chối bỏ việc kí tài liệu sau khi đã kí.
Nhược điểm:
Tốc độ xử lý:
- Các giải thuật khóa công khai chủ yếu dùng các phép nhân chậm hơn nhiều so với
các giải thuật đối xứng. Khoảng thời gian chênh lệch này sẽ tăng lên một cách
nhanh chóng nếu tiến hành thương mại trên Internet.
- Không thích hợp cho mã hóa thông thường, thường dùng trao đổi khóa bí mật đầu
phiên truyền tin.
Tính xác thực của khóa công khai:
- Bất cứ ai cũng có thể tạo ra một khóa công khai.
- Chừng nào việc giả mạo chưa bị phát hiện có thể đọc được nội dung các thông báo
gửi cho người kia.
- Cần đảm bảo những người đăng ký khóa là đáng tin.
Chưa có kênh an toàn để chia sẻ khóa => Khả năng bị tấn công dạng tấn công người
đứng giữa (man in the middle attack ).
Quản lý và phân phối khóa phức tạp.
Mỗi cặp người dùng phải có khóa riêng.
Không phù hợp cho chữ ký số, do không đạt được: tính xác thực và tính chống thoái
thác.
Câu 7:Hãy nêu các vấn đề RSA?
- Quá trình tạo khóa
Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực hiện bằng cách thử xác
suất các số ngẫu nhiên có độ lớn phù hợp (dùng phép kiểm tra nguyên tố cho phép
loại bỏ hầu hết các hợp s).p và q còn cần được chọn không quá gần nhau để phòng
trường hợp phân tích n bằng phương pháp phân tích Fermat. Ngoài ra, nếu p-1 hoặc
q-1 có thừa số nguyên t nhỏ thì n cũng có thể dễ dàng bị phân tích và thế p và q
cũng cần được thử để tránh khả năng này.
- Tốc độ
RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán mã hóa đối
xứng khác. Trên thực tế, Bình sử dụng một thuật toán mã hóa đối xứng nào đó để mã
hóa văn bản cần gửi và chỉ sử dụng RSA để mã hóa khóa để giải mã (thông thường
khóa ngắn hơn nhiều so với văn bản).
lOMoARcPSD|45470368
Phương thức này cũng tạo ra những vấn đề an ninh mới. Một ví dụ là cần phải tạo ra
khóa đối xứng thật sự ngẫu nhiên. Nếu không, kẻ tấn công (thường ký hiệu là Hắc) sẽ
bỏ qua RSA và tập trung vào việc đoán khóa đối xứng.
- Phân phối ka
Cũng giống như các thuật toán mã hóa khác, cách thức phân phối khóa công khai là
một trong những yếu tố quyết định đối với độ an toàn của RSA. Quá trình phân phối
khóa cần chống lại được tấn công đứng giữa (man-in-the-middle attack). Giả sử Hắc
có thể gửi cho Bình một khóa bất kỳ và khiến Bình tin rằng đó là khóa (công khai)
của An. Đồng thời Hắc có khả năng đọc được thông tin trao đổi giữa Bình và An. Khi
đó, Hắc sẽ gửi cho Bình khóa công khai của chính mình (mà Bình nghĩ rằng đó là
khóa của An). Sau đó, Hắc đọc tất cả văn bản mã hóa do Bình gửi, giải mã với khóa
bí mật của mình, giữ một bản copy đồng thời mã hóa bằng khóa công khai ca An và
gửi cho An. Về nguyên tắc, cả Bình và An đều không phát hiện ra sự can thiệp của
người thứ ba. Các phương pháp chống lại dạng tấn công này thường dựa trên các
chứng thực khóa công khai (digital certificate) hoặc các thành phần của hạ tầng khóa
công khai (public key infrastructure - PKI).
- Tấn côn dựa trên thời gian
Vào năm 1995, Paul Kocher mô tả một dạng tấn công mới lên RSA: nếu kẻ tấn công
nắm đủ thông tin về phần cứng thực hiện mã hóa và xác định được thời gian giải mã
đối với mt số bản mã lựa chọn thì có thể nhanh chóng tìm ra khóa d. Dạng tấn công
này có thể áp dụng đối với hệ thống chữ ký điện tử sử dụng RSA. Năm 2003, Dan
Boneh David Brumley chứng minh mt dạng tấn công thực tế hơn: phân tích thừa
số RSA dùng mạng máy tính (Máy chủ web dùng SSL). Tấn công đã khai thác thông
tin rò rỉ của việc tối ưu hóa định lý số dư Trung quốc mà nhiều ứng dụng đã thực
hiện.
Để chống lại tấn công dựa trên thời gian là đảm bảo quá trình giải mã luôn diễn ra
trong thời gian không đổi bất kể văn bản mã. Tuy nhiên, cách này có thể làm giảm
hiệu suất tính toán. Thay vào đó, hầu hết các ứng dụng RSA sử dụng một kỹ thuật gọi
che mắt. Kỹ thuật này dựa trên tính nhân của RSA: thay vì tính cd mod n, An đầu
tiên chọn một số ngẫu nhiên r và tính (rec)d mod n. Kết quả của phép tính này là rm
mod n và tác đng của r sẽ được loại bỏ bằng cách nhân kết quả với nghịch đảo của r.
Đối với mi văn bản mã, người ta chọn một giá trị ca r. Vì vậy, thời gian giải mã sẽ
không còn phụ thuộc vào giá trị của văn bản mã.
- Tấn công lựa chọn tch nghi bản mã
Năm 1981, Daniel Bleichenbacher mô tả dạng tấn công lựa chọn thích nghi bản
(adaptive chosen ciphertext attack) đầu tiên có thể thực hiện trên thực tế đối với một
văn bản mã hóa bằng RSA. Văn bản này được mã hóa dựa trên tiêu chuẩn PKCS #1
v1, một tiêu chuẩn chuyển đổi bản rõ có khả năng kiểm tra tính hợp lệ của văn bản
sau khi giải mã. Do những khiếm khuyết của PKCS #1, Bleichenbacher có thể thực
hiện một tấn công lên bản RSA dùng cho giao thức SSL (tìm được khóa phiên). Do
phát hiện này, các mô hình chuyển đổi an toàn hơn như chuyển đổi mã hóa bất đối
lOMoARcPSD|45470368
xứng tối ưu (Optimal Asymmetric Encryption Padding) được khuyến cáo sử dụng.
Đồng thời phòng nghiên cứu của RSA cũng đưa ra phiên bản mới của PKCS #1 có
khả năng chống lại dạng tấn công nói trên.
Câu 8: Thế nào là độ an toàn của 1 thuật toán mã hóa?
Độ an toàn của thuật toán được dựa vào nguyên tắc: Nếu chi phí để giải mã một khối
lượng thông tin lớn hơn giá trị của khối lượng thông tin đó thì thuật toán đó được tạm
coi là an toàn.
| 1/6

Preview text:

lOMoARcPSD| 45470368
1 Khái niệm mã hóa công khai , cơ chế và các thành phần của hệ mã hóa công khai. - Khái niệm:
Mã hóa công khai hay mã hóa Public Key là phương pháp mã hóa dữ liệu bằng 2
khóa (key) khác nhau, trong đó 1 key được gọi là Public Key (khóa công khai) có sẵn
cho người dùng dùng và 1 key là Private Key (khóa riêng tư). Các dữ liệu được mã
hóa bằng khóa công khai chỉ khả năng giải mã được bằng khóa riêng tư và ngược lại,
các dữ liệu được mã hóa bằng khóa riêng tư chỉ khả năng giải mã được bằng khóa công khai. - Cơ chế :
Trong một hệ thống bất kỳ người nào cũng có thể mã hóa một tin nhắn bằng khóa
công khai , nhưng tin nhắn đó chỉ có thể được giải bằng mã khóa riêng của người
nhận. tạo mã hóa công khai sau đó sử dụng khóa công khai được chia sẻ rộng rãi.
Sau đó, máy chủ có thể gửi khóa đối xứng được mã hóa này qua một kênh không an
toàn tới máy khách; chỉ máy khách mới có thể giải mã nó bằng cách sử dụng khóa
riêng (khóa này ghép nối với khóa công khai được máy chủ sử dụng để mã hóa thư).
Với cả máy khách và máy chủ đều có cùng một khóa đối xứng, họ có thể sử dụng mã
hóa khóa đối xứng một cách an toàn (có thể nhanh hơn nhiều) để giao tiếp qua các
kênh không an toàn. Lược đồ này có lợi thế là không phải chia sẻ trước các khóa đối
xứng theo cách thủ công (một vấn đề cơ bản khó khăn) trong khi vẫn đạt được lợi thế
về thông lượng dữ liệu cao hơn của mật mã khóa đối xứng. Thành phần :
Các thành phần của mã hóa Public Key bao gồm: –
Plain Text (văn bản thuần túy): là dữ liệu chúng ta khả năng đọc và hiểu được.
Các dữ liệu này được dùng làm đầu vào cho thuật toán mã hóa. –
Cipher Text (dữ liệu đã mã hóa): dữ liệu đã được mã hóa, là kết quả đầu ra
của thuật toán mã hóa. Vì dữ liệu đã được mã hóa nên chúng ta không thể hiểu các dữ liệu này. –
Thuật toán mã hóa: là thuật toán được dùng để chuyển đổi dữ liệu là văn bản
thuần túy sang dữ liệu được mã hóa. –
Thuật toán giải mã: chấp nhận dữ liệu đã mã hóa làm đầu vào và key (key
riêng tư hoặc key công khai) và xuất văn bản, tài liệu gốc. –
Khóa công khai và riêng tư: khóa riêng tư và khóa công khai được dùng để mã hóa và giải mã.
2 Các đặc điểm và yêu cầu của hệ mã khóa công khai
2.1 Đảm bảo tính bí mật lOMoARcPSD| 45470368
Bản mã C được gởi đi trên kênh truyền. Do bản mã C đã được biến đổi so với bản rõ
P, cho nên những người thứ ba can thiệp vào kênh truyền để lấy được bản mã C, thì
không hiểu được ý nghĩa của bản mã. Đây chính là đặc điểm quan trọng của mã hóa,
cho phép đảm bảo tính bảo mật (confidentiality)
2.2 Đảm bảo tính toàn vẹn dữ liệu
Nếu Trudy chặn được bản mã C của Alice và sửa C thành CT, thì xác suất để PT
là văn bản có nghĩa cũng rất bé. Và Bob biết được C đã bị sửa đổi. Đối với mã hóa
hiện đại cũng vậy, nếu Trudy chọn CT là một dãy bít bất kỳ thì bản rõ PT cũng là
một dãy bít lộn xộn, không có cấu trúc ý nghĩa.
2.3 Tính xác thực (authentication) của mã hóa đối xứng.
Mã hóa đối xứng có thể chống lại các hình thức tấn công sửa đổi thông điệp, mạo
danh và phát lại thông điệp được hay không? Câu trả lời là có
2.4 Tính không từ chối (non-repudiation) của mã hóa đối xứng.
Mặc dù mã hóa đối xứng thỏa mãn tính bảo mật nhưng mã hóa đối xứng lại không
thỏa mãn được tính không từ chối. Vì khóa của mã hóa đối xứng chỉ có hai người
biết, nên nếu khóa K bị tiết lộ thì không có cơ sở để quy trách nhiệm cho Alice hay Bob làm lộ khóa.
Có phương pháp nào mã hóa nào mà khóa bí mật chỉ có một người biết mà. Đó là
phương pháp mã hóa khóa công khai (được giới thiệu sau)
câu3: nêu nguyên tắc của mã hóa khóa công khai? Trong sơ đồ PKC, chìa khóa công
khai được người gửi sử dụng để mã hóa thông tin, trong khi chìa khóa cá nhân được
người nhận sử dụng để giải mã. Hai chìa khóa là khác nhau, trong đó chìa khoá công
khai có thể được chia sẻ an toàn mà không ảnh hưởng đến tính bảo mật của chìa khoá
cá nhân. Mỗi cặp chìa khóa bất đối xứng là duy nhất, đảm bảo rằng một thông điệp
được mã hóa bằng chìa khoá công khai chỉ có thể được đọc bởi người sở hữu chìa
khoá cá nhân tương ứng.
Vì thuật toán mã hóa bất đối xứng tạo ra các cặp chìa khóa được liên kết về mặt toán
học nên có độ dài chìa khóa dài hơn nhiều so với các cặp chìa khoá được tạo ra bởi
mật mã hoá đối xứng. Độ dài dài hơn này - thường từ 1.024 đến 2.048 bit - khiến việc
tính toán chìa khóa cá nhân từ chìa khoá công khai là vô cùng khó khăn. Một trong
những thuật toán thông dụng nhất cho mã hóa bất đối xứng được sử dụng ngày nay
có tên là RSA. Trong sơ đồ RSA, các chìa khóa được tạo bằng cách sử dụng một
môđun phép nhân hai số (thường là hai số nguyên tố lớn). Nói đơn giản hơn, mô-đun
tạo ra hai chìa khóa (một khóa công khai có thể được chia sẻ và một khóa cá nhân
cần được giữ bí mật). Thuật toán RSA được mô tả lần đầu tiên vào năm 1977 bởi lOMoARcPSD| 45470368
Rivest, Shamir và Adleman (RSA là ghép các chữ cái đầu tiên của 3 người này) và
hiện vẫn là thành phần chính của các hệ thống mật mã khóa công khai.
B, tại sao trong mã hóa khóa công khai không cần dùng đến kênh an toàn để truyền khóa
Với mật mã khóa công khai, cũng có thể xác thực mạnh mẽ . Người gửi có thể kết
hợp thư với khóa cá nhân để tạo ra một chữ ký điện tử ngắn trên thư. Bất kỳ ai có
khóa công khai tương ứng của người gửi đều có thể kết hợp thư đó với một chữ ký
điện tử đã được xác nhận quyền sở hữu; nếu chữ ký khớp với thông báo, nguồn gốc
của thông báo được xác minh (nghĩa là, nó phải được tạo bởi chủ sở hữu của khóa cá nhân tương ứng)
Các thuật toán khóa công khai là các nguyên tắc bảo mật cơ bản trong các hệ thống
mật mã hiện đại , bao gồm các ứng dụng và giao thức cung cấp sự đảm bảo về tính bí
mật, tính xác thực và không thể thoái thác của truyền thông điện tử và lưu trữ dữ liệu.
Chúng củng cố nhiều tiêu chuẩn Internet, chẳng hạn như Bảo mật tầng truyền tải
(TLS) , S / MIME , PGP và GPG . Một số thuật toán khóa công khai cung cấp khả
năng phân phối và bảo mật khóa (ví dụ: trao đổi khóa Diffie Hellman ), một số cung
cấp chữ ký số (ví dụ: Thuật toán Chữ ký Số ) và một số cung cấp cả hai (ví dụ: RSA).
So với mã hóa đối xứng , mã hóa bất đối xứng chậm hơn mã hóa đối xứng tốt, quá
chậm cho nhiều mục đích. Các hệ thống mật mã ngày nay (chẳng hạn như TLS ,
Secure Shell ) sử dụng cả mã hóa đối xứng và mã hóa không đối xứng, thường bằng
cách sử dụng mã hóa không đối xứng để trao đổi an toàn một khóa bí mật sau đó
được sử dụng cho mã hóa đối xứng.
câu 4: trong mã hóa khóa công khai, khóa riêng và khóa công khai có phải là 2 khóa
tùy ý, không liên quan? nếu có liên quan, tại sao không thể tính từ khóa riêng từ khóa công khai.
Khóa công khai và khóa riêng là hai cơ chế khóa được sử dụng trong mã hóa bất đối
xứng của mật mã. Khóa công khai là một loại khóa được sử dụng với thuật toán mã
hóa để chuyển đổi tin nhắn thành dạng không thể đọc được. Khóa riêng là một loại
khóa được sử dụng với thuật toán giải mã để chuyển đổi tin nhắn nhận được trở lại tin
nhắn gốc. Cả hai khóa này đều giúp đảm bảo an toàn cho dữ liệu trao đổi. Tóm lại,
một tin nhắn được mã hóa bằng khóa chung không thể được giải mã mà không sử
dụng khóa riêng tương ứng.
Nếu một người biết khóa cá nhân, họ có thể tính khóa công khai. Tuy nhiên, nếu chỉ
biết khóa công khai thì không đủ để tính khóa riêng. Đó là lý do tại sao khóa công
khai không cần được giữ bí mật vì biết rằng nó không cho phép giải mã thông tin được mã hóa.
6. Mã hóa bất đối xứng (mã hóa công khai) Ưu điểm: lOMoARcPSD| 45470368
Bảo mật, toàn vẹn dữ liệu; trao đồi khóa, xác thực (nguồn gốc/chống thoái thác)
Không cần chia sẻ khóa mã hóa (khóa công khai) một cách bí mật => Dễ dàng ứng
dụng trong các hệ thống mở.
Khóa giải mã (khóa riêng) chỉ có bạn biết => An toàn hơn, có thể xác thực nguồn gốc
thông tin n phần tử chỉ cần n cặp khóa.
Các hệ thống khoá công khai có khả năng thực thi chữ kí số. Điều này có nghĩa là
một tài liệu điện tử có thể được kí và gửi cho người nhận bất kì, cùng với chống chối
bỏ, người kí không thể chối bỏ việc kí tài liệu sau khi đã kí. Nhược điểm: Tốc độ xử lý:
- Các giải thuật khóa công khai chủ yếu dùng các phép nhân chậm hơn nhiều so với
các giải thuật đối xứng. Khoảng thời gian chênh lệch này sẽ tăng lên một cách
nhanh chóng nếu tiến hành thương mại trên Internet.
- Không thích hợp cho mã hóa thông thường, thường dùng trao đổi khóa bí mật đầu phiên truyền tin.
Tính xác thực của khóa công khai:
- Bất cứ ai cũng có thể tạo ra một khóa công khai.
- Chừng nào việc giả mạo chưa bị phát hiện có thể đọc được nội dung các thông báo gửi cho người kia.
- Cần đảm bảo những người đăng ký khóa là đáng tin.
Chưa có kênh an toàn để chia sẻ khóa => Khả năng bị tấn công dạng tấn công người
đứng giữa (man in the middle attack ).
Quản lý và phân phối khóa phức tạp.
Mỗi cặp người dùng phải có khóa riêng.
Không phù hợp cho chữ ký số, do không đạt được: tính xác thực và tính chống thoái thác.
Câu 7:Hãy nêu các vấn đề RSA?
- Quá trình tạo khóa
Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực hiện bằng cách thử xác
suất các số ngẫu nhiên có độ lớn phù hợp (dùng phép kiểm tra nguyên tố cho phép
loại bỏ hầu hết các hợp số).p và q còn cần được chọn không quá gần nhau để phòng
trường hợp phân tích n bằng phương pháp phân tích Fermat. Ngoài ra, nếu p-1 hoặc
q-1 có thừa số nguyên tố nhỏ thì n cũng có thể dễ dàng bị phân tích và vì thế p và q
cũng cần được thử để tránh khả năng này. - Tốc độ
RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán mã hóa đối
xứng khác. Trên thực tế, Bình sử dụng một thuật toán mã hóa đối xứng nào đó để mã
hóa văn bản cần gửi và chỉ sử dụng RSA để mã hóa khóa để giải mã (thông thường
khóa ngắn hơn nhiều so với văn bản). lOMoARcPSD| 45470368
Phương thức này cũng tạo ra những vấn đề an ninh mới. Một ví dụ là cần phải tạo ra
khóa đối xứng thật sự ngẫu nhiên. Nếu không, kẻ tấn công (thường ký hiệu là Hắc) sẽ
bỏ qua RSA và tập trung vào việc đoán khóa đối xứng. - Phân phối khóa
Cũng giống như các thuật toán mã hóa khác, cách thức phân phối khóa công khai là
một trong những yếu tố quyết định đối với độ an toàn của RSA. Quá trình phân phối
khóa cần chống lại được tấn công đứng giữa (man-in-the-middle attack). Giả sử Hắc
có thể gửi cho Bình một khóa bất kỳ và khiến Bình tin rằng đó là khóa (công khai)
của An. Đồng thời Hắc có khả năng đọc được thông tin trao đổi giữa Bình và An. Khi
đó, Hắc sẽ gửi cho Bình khóa công khai của chính mình (mà Bình nghĩ rằng đó là
khóa của An). Sau đó, Hắc đọc tất cả văn bản mã hóa do Bình gửi, giải mã với khóa
bí mật của mình, giữ một bản copy đồng thời mã hóa bằng khóa công khai của An và
gửi cho An. Về nguyên tắc, cả Bình và An đều không phát hiện ra sự can thiệp của
người thứ ba. Các phương pháp chống lại dạng tấn công này thường dựa trên các
chứng thực khóa công khai (digital certificate) hoặc các thành phần của hạ tầng khóa
công khai (public key infrastructure - PKI).
- Tấn côn dựa trên thời gian
Vào năm 1995, Paul Kocher mô tả một dạng tấn công mới lên RSA: nếu kẻ tấn công
nắm đủ thông tin về phần cứng thực hiện mã hóa và xác định được thời gian giải mã
đối với một số bản mã lựa chọn thì có thể nhanh chóng tìm ra khóa d. Dạng tấn công
này có thể áp dụng đối với hệ thống chữ ký điện tử sử dụng RSA. Năm 2003, Dan
Boneh và David Brumley chứng minh một dạng tấn công thực tế hơn: phân tích thừa
số RSA dùng mạng máy tính (Máy chủ web dùng SSL). Tấn công đã khai thác thông
tin rò rỉ của việc tối ưu hóa định lý số dư Trung quốc mà nhiều ứng dụng đã thực hiện.
Để chống lại tấn công dựa trên thời gian là đảm bảo quá trình giải mã luôn diễn ra
trong thời gian không đổi bất kể văn bản mã. Tuy nhiên, cách này có thể làm giảm
hiệu suất tính toán. Thay vào đó, hầu hết các ứng dụng RSA sử dụng một kỹ thuật gọi
là che mắt. Kỹ thuật này dựa trên tính nhân của RSA: thay vì tính cd mod n, An đầu
tiên chọn một số ngẫu nhiên r và tính (rec)d mod n. Kết quả của phép tính này là rm
mod n và tác động của r sẽ được loại bỏ bằng cách nhân kết quả với nghịch đảo của r.
Đối với mỗi văn bản mã, người ta chọn một giá trị của r. Vì vậy, thời gian giải mã sẽ
không còn phụ thuộc vào giá trị của văn bản mã.
- Tấn công lựa chọn thích nghi bản mã
Năm 1981, Daniel Bleichenbacher mô tả dạng tấn công lựa chọn thích nghi bản mã
(adaptive chosen ciphertext attack) đầu tiên có thể thực hiện trên thực tế đối với một
văn bản mã hóa bằng RSA. Văn bản này được mã hóa dựa trên tiêu chuẩn PKCS #1
v1, một tiêu chuẩn chuyển đổi bản rõ có khả năng kiểm tra tính hợp lệ của văn bản
sau khi giải mã. Do những khiếm khuyết của PKCS #1, Bleichenbacher có thể thực
hiện một tấn công lên bản RSA dùng cho giao thức SSL (tìm được khóa phiên). Do
phát hiện này, các mô hình chuyển đổi an toàn hơn như chuyển đổi mã hóa bất đối lOMoARcPSD| 45470368
xứng tối ưu (Optimal Asymmetric Encryption Padding) được khuyến cáo sử dụng.
Đồng thời phòng nghiên cứu của RSA cũng đưa ra phiên bản mới của PKCS #1 có
khả năng chống lại dạng tấn công nói trên.
Câu 8: Thế nào là độ an toàn của 1 thuật toán mã hóa?
Độ an toàn của thuật toán được dựa vào nguyên tắc: Nếu chi phí để giải mã một khối
lượng thông tin lớn hơn giá trị của khối lượng thông tin đó thì thuật toán đó được tạm coi là an toàn.