Các mô hình mã hóa và giải mã

Một phần của tài liệu nghiên cứu sử dụng giọng nói trong xác thực và mã hóa dữ liệu trên thiết bị di động và xây dựng hệ thống demo trên android (Trang 45)

Hiện nay, các mô hình mã hóa có thể chia làm loại cơ bản sau: mã hóa khóa đối xứng (symmetric key cryptography), mã hóa khóa bất đối xứng (asymmetric key cryptography).

2.3.2.1 Mã hóa khóa đối xứng

Mã hóa khóa đối xứng là kỹ thuật mã hóa mà trong đó quá trình mã hóa và giải mã cũng sử dụng chung một khóa (shared key). Mô hình này gồm 5 thành phần sau đây:

 Plaintext: Dữ liệu ban đầu, là đầu vào của giải thuật mã hóa.

 Encryption algorithm: Giải thuật mã hóa thực thi các tác vụ thay thế và hoán vị trên plaintext.

Hình 2.3-4 Sơ đồ mã hóa khóa đối xứng

 Secret key: Khóa cũng là một đầu vào của giải thuật mã hóa. Khóa là giá trị độc lập với plaintext cũng như giải thuật mã hóa. Giải thuật sẽ tạo ra output khác nhau tùy vào giá trị khóa được sử dụng tại mỗi thời điểm. Các thao tác thay thế và hoán vị mà giải thuật thực hiện trên plaintext được quy định bởi khóa.

 Ciphertext: Output của giải thuật, thông điệp ở dạng không hiểu được. Nó phụ thuộc vào giá trị của plaintext và khóa sử dụng. Đối với một thông điệp cho trước, hai khóa khác nhau sử dụng cho cùng giải thuật sẽ tạo ra 2 ciphertext khác nhau.

 Decryption algorithm: Giải thuật mã hóa được thực thi theo chiều ngược lại. Đầu vào của nó là ciphertext và khóa và tạo ra plaintext.

Vì mô hình khóa đối xứng sử dụng chung khóa cho cả mã hóa và giải mã nên hệ thống sử dụng khóa đối xứng có thể đảm bảo tính riêng tư (confidentiality) nhưng không đảm bảo tính xác thực (authentication) và tính chống thoái thác (non-repudiation) vì không có cách nào xác định ai là người tạo ra thông điệp khi mà cả hai cùng sở hữu khóa.

Mô hình này có một số ưu điểm và khuyết điểm sau đây:

 Ưu điểm:

- Nhanh hơn rất nhiều lần so với mô hình khóa bất đối xứng.

- An toàn nếu sử dụng khóa có kích thước lớn.

 Khuyết điểm:

- Phân phối khóa (key distribution): cần có cơ chế an toàn để làm việc này.

- Tính mở rộng (scalability): mỗi cặp người dùng cần có một khóa riêng, do đó, số lượng khóa sẽ rất lớn khi cần trao đổi với nhiều người.

- Tính bảo mật (security): không đảm bảo tính xác thực (authentication) và tính chống thoái thác (non-repudiation).

Với lợi ích về tốc độ thực thi nhanh, mô hình khóa đối xứng được sử dụng khá rộng rãi trong thực tế. Có nhiều giải thuật làm việc theo mô hình này. Điển hình nhất là các giải thuật sau đây:

 Data Encryption Standard (DES)

 Triple DES (3DES)

 Advanced Encryption Standard (AES)

 Blowfish

 IDEA

 RC4, RC5 và RC6

Độ an toàn của các giải thuật (khóa có kích thước khác nhau) đối với phương pháp tấn công brute-force được cho ở hình sau:

Hình 2.3-5 Sức mạnh của các giải thuật khóa đối xứng

2.3.2.2 Mã hóa khóa bất đối xứng

Trong nhiều trường hợp, người ta mong muốn sử dụng các khóa khác nhau cho quá trình mã hóa và giải mã. Khi đó, mô hình khóa bất đối xứng sẽ được sử dụng. Mô hình này có 6 thành phần sau đây:

 Plaintext: Dữ liệu ban đầu, là đầu vào của giải thuật mã hóa.

 Encryption algorithm: Giải thuật mã hóa thực thi các tác vụ thay thế và hoán vị trên plaintext. (adsbygoogle = window.adsbygoogle || []).push({});

 Public and private keys: Cặp khóa được sử dụng cho mã hóa và giải mã. Các thao tác thay thế và hoán vị tạo ra bởi giải thuật mã sẽ phụ thuộc vào việc sử dụng private key hay public key làm đầu vào cho giải thuật.

 Ciphertext: Output của giải thuật, thông điệp ở dạng không hiểu được. Nó phụ thuộc vào giá trị của plaintext và khóa sử dụng. Đối với một thông điệp cho trước, hai khóa khác nhau sử dụng cho cùng giải thuật sẽ tạo ra 2 ciphertext khác nhau.

 Decryption algorithm: giải thuật nhận vào ciphertext và private key tương ứng và tạo ra plaintext.

Hình 2.3-6 Mô hình mã hóa sử dụng khóa bất đối xứng

Hình 2.3-7 Mô hình giải mã sử dụng khóa bất đối xứng

Trong mô hình này, một thông điệp khi được mã hóa bằng public key thì chỉ có thể được giải mã bởi private key tương ứng và ngược lại. Public key là khóa được công khai cho tất cả mọi người, private key là khóa mà chỉ chủ nhân của nó được biết. Public key và private key có liên quan đến nhau về mặt toán học

nhưng có một đặc điểm quan trọng là không thể xác định được private key (public key) nếu chỉ biết được giải thuật mã hóa và public key (private key).

Mô hình này có thể đảm bảo được tính riêng tư (confidentiality), tính xác thực (authentication) và tính chống thoái thác (non-repudiation).

Nếu người gửi muốn đảm bảo tính riêng tư (confidentiality) của thông điệp, họ sẽ sử dụng public key của người nhận để mã hóa thông điệp (secure message format), khi đó thông điệp chỉ có thể được giải mã bởi người nhận.

Nếu người gửi muốn đảm bảo tính xác thực (authentication), họ sẽ sử dụng private key của mình để mã hóa thông điệp (open message format), khi đó người nhận sẽ sử dụng public key của người gửi để giải mã. Nếu giải mã được người nhận sẽ biết chắc rằng thông điệp được gửi đi từ chính người sở hữu private key.

Trong trường hợp muốn đảm bảo cả tính riêng tư và tính xác thực, người gửi sẽ mã hóa thông điệp bằng public key của người nhận, sau đó, mã hóa tiếp bởi private key của mình (secure and signed format). Khi người nhận nhận được thông điệp, họ sẽ xác thực bằng cách giải mã thông điệp với public key của người gửi, sau đó giải mã với private key của mình.

Tóm lại, mô hình này có những ưu điểm và khuyết điểm sau đây:

 Ưu điểm:

- Việc phân phối khóa đơn giản hơn nhiều so với mô hình khóa đối xứng.

- Có tính mở rộng cao.

- Đảm bảo tính riêng tư, tính xác thực và tính chống thoái thác.

 Khuyết điểm:

- Điểm yếu lớn nhất của mô hình này là làm việc chậm hơn rất nhiều lần do độ phức tạp tính toán cao.

Các giải thuật sau đây là một số ví dụ cho mô hình này:

 RSA

 Elliptic Curve Cryptosystem (ECC)

 Diffie-Hellman

 Digital Signature Standard (DSS)

CHƯƠNG 3: CÁC NGHIÊN CỨU LIÊN QUAN

Đã có nhiều hệ thống được đưa ra ở [7] [8] [9] sử dụng giọng nói làm đặc trưng sinh trắc để tạo xác thực, tạo khóa mã hóa. Chương này trình bày các nghiên cứu về vấn đề xác thực và mã hóa dữ liệu bằng các phương thức sinh trắc khác như tròng mắt, khuôn mặt.

Một phần của tài liệu nghiên cứu sử dụng giọng nói trong xác thực và mã hóa dữ liệu trên thiết bị di động và xây dựng hệ thống demo trên android (Trang 45)