Loading…
Transcript

Mật Mã hóa kHóa Công Khai

#NHOM12#QTM#MMKHCK

giới thiệu

thông tin nhóm

Trường : Đại học tài nguyên & môi trường

Lớp :K07_CNTT02

Nhóm : 12

GVHD :Từ Thanh Trí

tên thành viên

  • Trần Công Danh
  • Lê Văn Chiến

tổng quan

chương 1 : Tổng quan về mật mã hóa khóa công khai

1.1 - Định Nghĩa

  • Thuật toán mật mã khóa công khai là một hệ thống mã hóa sử dụng 1 cặp chìa khóa là: private key và public key.
  • Cặp khóa này dùng để xác thực dữ liệu được vận chuyển giữa 2 bên với nhau.
  • Trong đó, mỗi bên đều có 1 cặp private key, public key, các bên đã biết được public key của nhau và có thể sử dụng public key này để xác thực dữ liệu được gửi từ bên còn lại mà không cần biết private key của bên đó.
  • Hệ thống sẽ sử dụng các thuật toán mã hóa khóa công khai như: RSA, ECDSA ,… để tạo ra cặp khóa này.

1.2 Chức năng và cách sử dụng

1.2.1 Xác thực

1.2.3 Vận chuyển dữ liệu

1.2.2 Bảo mật thông tin

• Có thể dùng private key để mã hóa và giải mã thông tin.

• Ta có cặp key private key A, public key B

• Mã hóa dữ liệu truyền đi bằng public key B

• Vận chuyển dữ liệu đã mã hóa

• Nhận được dữ liệu và giải mã dữ liệu bằng private key A

• Private key: khóa cá nhân, khóa bí mật. Khóa này dùng để mã khóa dữ liệu cần gửi đi.

• Public key: khóa công khai. Dùng để xác thực dữ liệu đã được mã hóa bằng private key có đúng được gửi từ private key chung cặp với public key đó không.

Phân loại

Chương 2: Phân loại các loại mật mã hóa khóa công khai

Integer factorization – Dựa trên toán đại số

  • Dựa trên toán đại số là việc sử dụng các hàm số toán học để tạo ra private key, public key mà có thể dựa vào các key này xác minh mà vẫn đảm bảo được các tính chất cần thiết của mật mã hóa khóa công khai.

  • Dựa trên toán đại số có các phương thức phổ biến là: RSA, Blum–Goldwasser, Cayley–Purser, …

  • Trong đó phổ biến nhất là RSA.

Discrete logarithm – Dựa trên logarit rời rạc

  • Có các phương thức phổ biến: ECDSA, EdDSA, DSA, …

  • Trong đó phổ biến nhất là phương thức ECDSA (dựa trên Elliptic-curve cryptography).

Các phân loại khác :

  • Bao gồm các phương thức khác chưa được xếp loại hoặc cách thực hiện rất đặc biệt như: NewHope, LWE: Lattice-based, …

RSA

RSA (Rivest–Shamir–Adleman) là một thuật toán được công bố lần đầu tiên vào năm 1977 bởi các tác giả: Ron Rivest, Adi Shamir, và Leonard Adleman.

Ưu điểm

• Dữ liệu luôn được bảo mật bởi cặp khóa public key và private key

• Dữ liệu được mã hóa bằng Khóa công khai chỉ có thể được giải mã bằng Khóa bí mật

• Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA . Nếu bài toán quá khó thì sẽ không thể giải mã

o Năm 1999, số n có độ dài 512 Bit bị phân tích.

o Năm 2005, số n có độ dài 663 Bit bị phân tích.

o Khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 Bit và khóa có độ dài 4096 Bit thì hầu như không có khả năng bị phá vỡ trong tương lai gần

Nhược điểm

• 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

• Nếu độ dài n quá nhỏ sẽ có thể bị tấn công và phân tích

• có thể bị tấn công bởi nhiều hình thức : Tấn công dựa trên thời gian , tấn công lựa chọn thích nghi bản mã ,tấn công dựa trên lỗi hệ thống , …

Thuật toán này mô tả cách tạo ra private key và public key từ private key này:

• Chọn 2 số nguyên tố p và q ngẫu nhiên và độc lập

• Tính giá trị hàm số λ(pq), trong đó λ là một hàm Carmichael

o n = pq

o Ta có biểu thức: λ(n) = lcm(λ(p), λ(q)), trong đó lcm là bội số chung nhỏ nhất

o Và biểu thức: λ(p) = φ(p) = p – 1, nên: λ(p) = p -1 trong đó φ là hàm số Euler

o Suy ra: λ(n) = lcm(p − 1, q − 1)

• lcm có thể được tính toán bằng giải thuật Euclid: lcm(a,b) = |ab|/gcd(a,b), trong đó gcd là ước số chung lớn nhất

• Chọn e sao cho 1 < e < λ(n) thì gcd(e, λ(n)) = 1.

• Mục đích để tạo ra: d ≡ e−1 (mod λ(n)). d là nghịch đảo modulo của e(mod λ(n)).

o Từ a​a​​−1 ≡ 1 (mom ​​)

• Sử dụng biểu thức trên và biểu thức nghịch đảo của nó để tạo và giữ các phần private key và public key.

Mô hình và ứng dụng

Chương 3: Mô hình và ứng dụng

3.1 Ứng dụng

• Mã hóa đơn: Dùng private key để mã hóa thông tin và sử dụng key này để giải mã

• Tạo chữ ký số: xác thực tài liệu dựa trên việc mã hóa tài liệu bằng private key và xác thực nó bằng public key

• Trao đổi dữ liệu bảo mật: để giải mã dữ liệu được giao nhận giữa 2 bên: ssh, https, ftps, …

• Tạo blockchain wallet: tạo wallet bằng cặp private key, public key. Trong đó private key được xem là chìa khóa của ví, public key dùng để tạo ra address và xác thực các giao dịch được tạo từ private key

3.2 Thực tiễn

Digital signature

Sử dụng trong chữ ký số (Digital signature). Chủ tài liệu kí các tài liệu bằng private key và các bên khác sử dụng public key được công bố từ chủ thể đó để xác thực tài liệu đó là đúng thuộc về người đó. Chữ ký số thường được phát hành bởi các Root CA.

  • Một blockchain sẽ sử dụng 1 hoặc nhiều trong các loại phương thức của thuật toán mật mã hóa khóa công khai để tạo ra ví cryptocurrency bằng cách generate một private key, từ private key tạo ra public key, từ public key tạo ra address để mọi người có thể dễ dàng chuyển tiền cho nhau qua address này và xác thực bằng public key.

  • Khi người chủ ví muốn khởi tạo giao dịch chuyển tiền đi, người chủ ví phải tạo ra 1 giao dịch và kí vào giao dịch đó và gửi đi dữ liệu đã được ký cùng với public key của bản thân mình đến mạng lưới hệ thống blockchain, tại đây mọi người đều có thể xác nhận thông tin giao dịch trên là đúng, và cũng từ public key biết được chính xác địa chỉ của ví đó là gì.

MÔ HÌNH CHUNG

Trong các giao thức vận chuyển dữ liệu :

Các phương thức trong mật mã hóa dạng khóa công khai là phương thức chính được sử dụng trong TLS, nhằm gia cố bảo mật trong quá trình chuyển vận dữ liệu. Các giao thức vận chuyển thông tin sẽ dụng kết hợp với TLS như:

• HTTP trở thành HTTPS

• SMTP trở thành SMTPS

• FTP trở thành FTPS

• SSH

• …

Nghĩa là, dữ liệu sẽ được mã hóa bằng TLS trước khi được đưa vào giao thức.

Blockchain

Được sử dụng như phương thức xác minh chính và phương thức dùng để tạo ra các ví cryptocurrency của hầu hết các blockchain như: Bitcoin, Ethereum, Ripple, EOS, Litecoin, ….

Dẫn chứng

  • Các doanh nghiệp trong nước có thể sử dụng chữ ký số để thực hiện bất kỳ việc ký xác nhận nào thay vì ký tay như truyền thống.
  • Khi muốn sử dụng chữ ký số, các doanh nghiệp có thể đăng ký thông tin yêu cầu cấp chữ ký số với các cơ quan chính phủ phụ trách hoặc các đơn vị phân phối tư nhân như: Viettel, FPT, … Các doanh nghiệp đã áp dụng: Công ty cổ phần công nghệ tin học EFY Việt Nam(EFY-CA) , Công ty Cổ phần hệ thống thông tin FPT(FPT-CA) , Tập đoàn viễn thông quân đội Viettel (Viettel-CA)

• Chữ ký số trong quản lý thông tin doanh nghiệp ngoài nước:

• Gửi nhận email (SMTPS): Đã áp dụng tại: gmail.com, yahoo.com, …

• Liên lạc giữ các server nội bộ. Đã áp dụng tại: google.com, …

• Truy cập các trang web hỗ trợ bảo mật (HTTPS): Đã áp dụng tại: google.com, facebook.com, youtube.com, …

• Các blockchain, hệ thống sử dụng blockchain, … được phát triển ngoài nước như: Bitcoin, Ethereum, …

Kết thúc

cảm ơn thầy và các bạn đã

lắng nghe