Cấu trúc hệ thống mật mã khóa bất đối xứng

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp bảo mật và xác thực cho các giao dịch hành chính công điện tử sở thông tin và truyền thông bắc ninh​ (Trang 33)

Nói chung, mật mã hóa bất đối xứng khơng phải là một kỹ thuật mật mã an toàn hơn so với mật mã đối xứng, mà độ an toàn của một thuật tốn mã nói chung phụ thuộc vào 2 yếu tố: Độ dài của khóa và mức độ phức tạp khi thực hiện thuật tốn (trên máy tính). Hơn nữa, mặc dù được ra đời sau nhưng khơng có nghĩa rằng mật mã bất đối xứng hoàn toàn ưu điểm hơn và sẽ được sử dụng thay thế cho mật

User E

User C User B User D

Khố cơng khai

của user B Khố bí mật của user B Tập khố

cơng khai

Thông

tin gốc Thuật toán mã hoá

(thực hiện bởi user A)

Thuật toán giải mã

(thực hiện bởi user B) Thông tin mật

Thông tin gốc

Thông

tin gốc Thuật tốn mã hố tin gốc Thơng

(thực hiện bởi user A)

Thuật toán giải mã

(thực hiện bởi user B)

User D User A User C User E Tập khố cơng khai Khố bí mật

của user A Khố cơng khai của user A

mã đối xứng. Mỗi kỹ thuật mã có một thế mạnh riêng và mật mã đối xứng vẫn rất thích hợp cho các hệ thống nhỏ và đơn giản. Ngoài ra, vấn đề phân phối khóa trong mật mã bất đối xứng cũng được đánh giá là một trong những vấn đề phức tạp khi triển khai kỹ thuật mật mã này trong thực tế.

Các bước cơ bản của một hệ thống mật mã khóa cơng khai bao gồm:

1. Mỗi thực thể thông tin (User) tạo ra một cặp khóa (Public/Private) để dùng cho việc mã hóa và giải mã.

2. Mỗi User thông báo một trong hai khố cho các User khác biết, khóa này

được gọi là khóa cơng khai (Public key). Khóa cịn lại được giữ bí mật và gọi là khóa riêng (Private Key).

3. Nếu User A muốn gửi thông tin cho User B, User A sẽ thực hiện mã hóa

thơng tin cần gửi bằng khóa cơng khai của User B.

4. Khi nhận được thơng tin đã mã hóa từ User A, User B thực hiện giải mã

thơng tin đó bằng khóa riêng của nó. Do khóa riêng khơng phổ biến cơng khai nên chỉ có User B có khả năng giải mã được.

Mật mã hóa bất đối xứng được sử dụng trong các ứng dụng: che giấu thông tin, tạo chữ ký số (Digital Signature) và trao đổi khóa trong các thuật tốn mật mã đối xứng (Key Exchange).

1.4.2 Thuật toán mật mã RSA

RSA (Rivest – Shamir – Adleman hay RSA) là thuật tốn mật mã khóa bất đối xứng được xây dựng bởi Ron Rivest, Adi Shamir và Len Adleman tại viện công nghệ Massachusetts (MIT), ra đời năm 1977, đến nay đã được ứng dụng trong nhiều lĩnh vực. Cũng như các thuật toán mật mã bất đối xứng khác, nguyên lý của RSA dựa chủ yếu trên lý thuyết số, lý thuyết logic rời rạc.

RSA là một thuật tốn mật mã khối, kích thước khối thơng thường là 1024 hoặc 2048 bit. Thông tin gốc của RSA được xử lý như các số nguyên. Ví dụ, khi chọn kích thước khối của thuật tốn là 1024 bit thì số ngun này có giá trị từ 0 đến 21024 – 1, tương đương với số thập phân có 309 chữ số. Chú ý rằng đây là những số nguyên cực lớn, không thể xử lý được bằng cách sử dụng các cấu trúc dữ liệu có sẵn của các ngơn ngữ lập trình phổ biến.

Thuật tốn RSA được mơ tả như sau: 1. Chọn hai số nguyên tố đủ lớn p và q. 2. Ký hiệu N = pq, (N) = (p-1)(q-1).

3. Chọn một số e sao cho e và (N) là hai số nguyên tố cùng nhau.

4. Tìm số d sao cho ed = 1 mod (N)

5. Cặp khóa bất đối xứng

 Khóa cơng khai (Public): PU= (N, e)

 Khóa bí mật (Private): PR = (N, d)

6. Nếu sử dụng kỹ thuật RSA để mã hóa thơng tin

 Mã hóa:

 Khối thông tin gốc “m” chuyển về số nguyên M ≤ N

 C = Me mod N  Giải mã: M = Cd mod N Ví dụ: 1. Chọn các số nguyên tố: p = 11 và q = 3 2. N = pq = 3*11 = 33, (N) = (p-1) (q-1) = (11 – 1) (3 – 1) = 20 3. Chọn e = 3, vì 3 và 20 nguyên tố cùng nhau.

4. Với e = 3, chọn d = 7, vì e*d = 3*7 = 1 mod 20 5. Cặp khóa bất đối xứng

 Khóa cơng khai (Public): PU= (33, 3)

 Khóa bí mật (Private): PR = (33, 7)

6. Giả sử User A có cặp khóa PUA= (33, 3) và PRA = (33, 7), User B muốn

gửi thông tin M = 15 cho User A

 User B mã hóa M bằng PUA = (33,3), C =153 mod 33=3375 mod 33 =

9 mod 33, Khi đó, thơng tin mật gửi cho User A là C = 9

 Khi nhận C=9, UserA giải mã bằng khóa riêng PRA =( 33, 7):M = Cd

mob N = 97 mod 33 = 4.782.969 mod 33 = 15 mod 33.

 Thông tin giải mã được là M = 15

Tóm lại, thuật tốn mật mã RSA được thực hiện gồm 3 quá trình tách rời: tạo khoá, mã hố và giải mã được tóm tắt như sau:

1-Tạo khố:

 Chọn p, q (p và q là số nguyên tố, p  q)

 Tính N = p.q

 Tính (N) = (p – 1) (q – 1)

 Chọn e sao ước số chung lớn nhất của e và (N) là 1

 Chọn d sao cho e.d mod (N) = 1

 Cặp khoá RSA được tạo ra là PU = (N, e), PR = (N, d)

2- Mã hoá: C = Me mod N (M là số nguyên nhỏ hơn N)

3- Giải mã: M = Cd mod N

Trong thực tế, để đạt được độ an tồn cao, cặp khóa phải được chọn trên các số p và q đủ lớn (N nhỏ nhất phải là 1024 bit), do vậy, vấn đề thực thi RSA bao gồm các phép toán lũy thừa trên các số rất lớn. Vấn đề giảm chi phí tính tốn và tăng tốc độ thực hiện thuật toán RSA là một trong những vấn đề quan trọng cần phải giải quyết. Trên các hệ thống máy tính hiện nay, hiệu suất thực hiện giải thuật RSA là chấp nhận được.

1.4.3 Chuyển đổi văn bản rõ

Trước khi thực hiện mã hóa, ta phải thực hiện việc chuyển đổi văn bản rõ (chuyển đổi từ M sang m) sao cho khơng có giá trị nào của M tạo ra văn bản mã khơng an tồn. Nếu khơng có q trình này, RSA sẽ gặp phải một số vấn đề: Nếu m = 0 hoặc m = 1 sẽ tạo ra các bản mã có giá trị là 0 và 1 tương ứng.

Khi mã hóa với số mũ nhỏ (chẳng hạn e = 3) và m cũng có giá trị nhỏ, giá

trị cũng nhận giá trị nhỏ (so với n). Như vậy phép modulo khơng có tác dụng và

có thể dễ dàng tìm được m bằng cách khai căn bậc e của c (bỏ qua modulo). RSA là phương pháp mã hóa xác định, khơng có thành phần ngẫu nhiên, nên Hacker có thể tấn cơng lựa chọn bản rõ bằng cách tạo ra một bảng tra giữa bản rõ và bản mã. Khi gặp một bản mã, Hacker sử dụng bảng tra để tìm ra bản rõ tương ứng.

Trên thực tế, thường gặp 2 vấn đề đầu khi gửi các bản tin ASCII ngắn với m là nhóm vài ký tự ASCII. Một đoạn tin chỉ có 1 ký tự NUL sẽ được gán giá trị m = 0 và cho ra bản mã là 0 bất kể giá trị của e và N. Tương tự, một ký tự ASCII khác, SOH, có giá trị 1 sẽ ln cho ra bản mã là 1. Với các hệ thống dùng giá trị e nhỏ thì tất cả ký tự ASCII đều cho kết quả mã hóa khơng an tồn vì giá trị

lớn nhất của m chỉ là 255 và 2553 nhỏ hơn giá trị n chấp nhận được. Những bản mã này sẽ dễ dàng bị phá mã. Để tránh gặp phải những vấn đề trên, RSA trên thực tế thường bao gồm một hình thức chuyển đổi ngẫu nhiên hóa m trước khi mã hóa. Q trình chuyển đổi này phải đảm bảo rằng m không rơi vào các giá trị khơng an tồn. Sau khi chuyển đổi, mỗi bản rõ khi mã hóa sẽ cho ra một trong số khả năng trong tập hợp bản mã. Điều này làm giảm tính khả thi tấn cơng lựa chọn bản rõ (một bản rõ sẽ có thể tương ứng với nhiều bản mã tuỳ thuộc vào cách chuyển đổi). Một số chuẩn, như PKCS, được thiết kế chuyển đổi bản rõ trước khi mã hóa bằng RSA. Các phương pháp chuyển đổi này bổ sung thêm bít vào M. Các phương pháp chuyển đổi cần được thiết kế cẩn thận để tránh những dạng tấn công phức tạp, tận dụng khả năng biết trước được cấu trúc của bản rõ. Phiên bản ban đầu của PKCS dùng một phương pháp Ad-hoc mà về sau được biết là không an tồn trước tấn cơng lựa chọn bản rõ thích ứng (Adaptive Chosen Ciphertext Attack). Các phương pháp chuyển đổi hiện đại sử dụng các kỹ thuật như chuyển đổi mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding - OAEP) để chống lại tấn cơng dạng này. Tiêu chuẩn PKCS cịn được bổ sung các tính năng khác để đảm bảo an toàn cho chữ ký RSA (Probabilistic Signature Scheme for RSA-RSA-PSS).

1.4.4 Đánh giá kỹ thuật mật mã bất đối xứng

Kỹ thuật mật mã bất đối xứng hồn tồn có thể đáp ứng được những yêu cầu về bảo mật hệ thống như trong kỹ thuật mật mã đối xứng, mặc dù tốc độ thực thi của mã bất đối xứng thường thấp hơn do bản chất thuật toán dựa trên các thao tác số học chứ không dựa trên các thao tác xử lý bit. Hơn nữa, mã bất đối xứng chỉ phù hợp với việc thực thi bằng phần mềm. Mật mã bất đối xứng đảm bảo được 2 yêu cầu cơ bản của thơng tin là tính bí mật và tính tồn vẹn. Kỹ thuật mật mã bất đối xứng có 2 ưu điểm so với mã đối xứng:

1. Hai thực thể khơng cần thực hiện trao đổi khóa trước khi làm việc.

2. Bên cạnh cơng dụng đảm bảo tính tịan vẹn của dữ liệu, mật mã bất đối

xứng (khi được sử dụng cho mục đích xác thực) cịn đảm bảo được tính khơng thể phủ nhận (non-repudiation) của thơng tin.

Theo lý thuyết, RSA có thể bị tấn cơng bằng những phương thức sau:

 Brute-force attack: tìm lần lượt khố riêng PR.

 Mathematical attack: xác định p và q bằng cách phân tích N thành tích của

các thừa số nguyên tố rồi từ đó xác định e và d.

 Timing attack: dựa trên thời gian thực thi của thuật toán giải mã.

 Chosen ciphertext attack: sử dụng các đọan thông tin mật (ciphertext) đặc

biệt để khôi phục thông tin gốc.

Tuy nhiên trong thực tế, nguy cơ tấn công các hệ thống mật mã RSA là rất thấp, do RSA là một thuật tốn linh động, kích thước khối dữ liệu gốc và chiều dài khoá dễ dàng được thay đổi mà khơng ảnh hưởng đến thuật tốn mã.

1.4.5 Một số hệ mật mã khóa cơng khai khác

 ELGamal (ELGamal,s Public-key Cryptosystem): Độ bảo mật dựa trên tính

khó giải của bài tốn logarit rời rạc trên các trường hữu hạn.

 Schnorr (Schnorr,s Public-key Cryptosystem): Độ bảo mật dựa trên các thuật toán logarit rời rạc.

 DSA (Digital Signature Algorithm): Độ bảo mật dựa sự kết hợp của ELGamal và Schnorr.

 ECC (The Elliptic Curve Cryptosystem): Là biến tướng của các hệ mật khác (ELGamal), làm việc trên các đường cong Elip.

Kết luận chương

Chương một đã trình bày một cách khái quát về các vấn đề an toàn và bảo mật thơng tin, tuy nhiên vẫn cịn tồn tại nhiều lỗ hổng về bảo mật. Vì vậy vấn đề bảo đảm an toàn cho các hệ thống thông tin là một trong những vấn đề quan trọng và bức thiết, trở thành một mục tiêu phải đặt lên hàng đầu trong quá trình thiết kế, xây dựng và cài đặt hệ thống. Để có thể đánh giá một hệ thống thơng tin an tồn và bảo mật phải dựa trên các tiêu chí: tính bí mật, tính tồn vẹn, tính xác thực và tính khơng chối cãi. Phải thể hiện qua mối quan hệ giữa người sử dụng với hệ thống và tài nguyên thông tin. Các quan hệ này được đảm bảo bằng các phương thức xác thực (Authentication), cấp phép sử dụng (Authorization) và từ chối phục vụ (Repudiation).

CHƯƠNG II: XÁC THỰC DÙNG CHỮ KÝ ĐIỆN TỬ VÀ CHỨNG THỰC S

2.1 Cơ chế xác thực nguồn gốc thông tin [8]

2.1.1 Giới thiệu chung

Trong chương 1, luận văn đã phân tích một số nguy cơ đe doạ đến an tồn hệ thống mạng đó là: Tấn cơng trực tiếp, nghe trộm, giả mạo, chối cãi nguồn gốc, từ chối dịch vụ, truy nhập bất hợp pháp, … một trong những giải pháp cần thiết để tránh các nguy cơ này là xác thực. Xác thực là một thủ tục nhằm kiểm tra các thơng tin nhận được có đến từ một nguồn hợp lệ và có bị sửa đổi hay khơng. Mặt khác xác thực cũng có thể kiểm tra trình tự và tính đúng lúc của các thơng tin nhận được.

Ngồi việc chứng minh người sử dụng, các hệ thống xác thực cũng được sử dụng để xác định những thông tin nào có thể được truy nhập; ví dụ như cơ sở dữ liệu tài nguyên hoặc cơ sở dữ liệu tài chính của một tổ chức.

Có nhiều giao thức xác thực đã được đề xuất như: xác thực thông qua yêu cầu và phản hồi, xác thực bằng hỏi đáp, xác thực Deffie-Hellman, xác thực dùng một trung tâm phân phối khoá, xác thực Need-Schoede … các giao thức xác thực này đã để lộ nhiều điểm yếu, đó là thơng tin trao đổi khố giữa hai người sử dụng các giao thức này có thể bị bên thứ ba xen vào, vì vậy vấn đề an tồn của thông tin khi thực hiện các giao dịch cũng cần phải được xem xét. Giải pháp xác thực dùng chứng chỉ số (Digital Certificate) và chữ ký điện tử (Digital Signature) được đề xuất nhằm đảm bảo an tồn cho các thơng tin giao dịch, nó giải quyết được các vấn đề bảo mật dữ liệu, định danh được người gửi, tính tồn vẹn của dữ liệu và không bị giả mạo.

2.1.2 Kỹ thuật xác thực thông tin

Xác thực thông tin (Message Authentication) là một cơ chế được ứng dụng trong xử lý thơng tin với mục đích:

 Đảm bảo nội dung thông tin trao đổi giữa các thực thể là chính xác, khơng

bị thêm, sửa, xóa hay phát lại. Nói cách khác, đảm bảo tính tồn vẹn về nội dung không bị vi phạm.

 Đảm bảo đối tượng tạo ra thông tin, tạo ra nguồn gốc thông tin đúng là đối tượng hợp lệ đã được khai báo. Nói cách khác, đảm bảo tính tồn vẹn về nguồn gốc thông tin.

Để thực hiện xác thực thơng tin, về ngun tắc có 3 phương pháp sau đây:

1) Sử dụng các thuật tốn mật mã khóa đối xứng và bất đối xứng: Để xác

thực thơng tin. Ngun tắc của mật mã là chỉ có những đối tượng hợp lệ mới khơi phục được thông tin gốc từ thơng tin mật. Có thể sử dụng ngun tắc này để xác thực thông tin như sau:

Trường hợp sử dụng mật mã khóa đối xứng: Theo quy ước, chỉ có nơi gửi thông tin và nơi nhận thông tin hợp lệ mới có khóa bí mật K. Do đó chỉ nơi nhận thơng tin hợp lệ mới có khả năng tạo ra khối thông tin mật hợp lệ từ khối thông tin gốc M. Tương tự, chỉ có nơi nhận thơng tin hợp lệ mới có khả năng giải mã được thông tin mật để ra thông tin gốc M. Tất cả các cố gắng khác đều cho ra kết quả sai.

Trường hợp sử dụng mật mã khóa bất đối xứng: Nơi gửi thông tin thực hiện mã hóa bằng khóa bí mật (PR) thay vì dùng khóa cơng khai. Khối thơng tin mật tạo ra có thể được giải mã bởi bất kỳ đối tượng nào biết khóa cơng khai của thực thể gửi. Tuy nhiên, nếu q trình giải mã thành cơng, đối tượng nhận thơng tin có thể chắc chắn rằng thơng tin nhận được là đúng và chính đối tượng gửi hợp lệ đã gửi thơng tin này, bởi vì chỉ có đối tượng đó mới có khóa riêng PR.

Nơi gửi Nơi nhận

a) Dùng mật mã đối xứng

C

M: thông tin gốc E: thuật toán mật mã D: Thuật toán giải mã C: Thơng tin mật K: Khóa bí mật dùng chung giữa bên gửi và bên nhận PRa: Khóa bí mật của bên gửi. PUa: Khóa cơng khai của bên gửi

b) Dùng mật mã bất đối xứng

2) Sử dụng mã xác thực MAC (Message Authentication Code): Mã xác thực

MAC được sinh ra từ tổ hợp gồm một khối thơng tin gốc có độ dài bất kỳ và một khóa bí mật. Kích thước của MAC là cố định, không phụ thuộc vào kích thước của khối dữ liệu gốc và thường nhỏ hơn dữ liệu gốc. Nơi gửi sẽ gửi giá trị MAC kèm cùng với thơng tin gốc. Phía nhận sau khi nhận được thơng tin gốc cùng với giá trị MAC gửi kèm sẽ thực hiện thao tác tạo ra giá trị MAC mới từ thông tin gốc cùng với khóa bí mật đã thống nhất giữa hai bên. Nếu giá trị MAC vừa tạo như giá trị MAC nhận được từ phía gửi, phía nhận có thể chắc chắn rằng thơng tin gốc

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp bảo mật và xác thực cho các giao dịch hành chính công điện tử sở thông tin và truyền thông bắc ninh​ (Trang 33)

Tải bản đầy đủ (PDF)

(80 trang)