Mô hình hệ thống mã hoá

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu bảo mật hệ thống thông tin và đề xuất giải pháp bảo mật cho hệ thống thông tin thư viện của trường đại học tài nguyên môi trường hà nội (Trang 35 - 61)

Hình trên mô tả nguyên tắc chung của một hệ thống mật mã quy ƣớc. Các thành phần trong một hệ thống mật mã điển hình bao gồm:

- Plaintext: Là thông tin gốc cần truyền đi giữa các hệ thống thông tin - Encryption algorithm: Thuật toán mã hóa, đây là cách thức tạo ra thông tin mật từ thông tin gốc.

- Key: Khóa mật mã, gọi tắt là khóa. Đây là thông tin cộng thêm mà thuật toán mã hóa sử dụng để trộn với thông tin gốc tạo thành thông tin mật.

- Ciphertext: Thông tin đã mã hóa (thông tin mật). Đây là kết quả của thuật toán mã hóa.

- Decryption algorithm: Thuật toán giải mã. Đầu vào của thuật toán này là thông tin đã mã hóa (ciphertext) cùng với khóa mật mã. Đầu ra của thuật toán là thông tin gốc (plaintext) ban đầu

Các tiêu chí đặc trƣng của một hệ thống mã hoá:

Một hệ thống mã hóa bất kỳ đƣợc đặc trƣng bởi 3 tiêu chí sau đây:

- Phương pháp mã (operation): có hai phƣơng pháp mật mã bao gồm thay thế (substitution) và chuyển vị (transposition). Trong phƣơng pháp mã thay thế, các đơn vị thông tin (bit, ký tự, byte hoặc khối) trong thông tin gốc đƣợc thay thế bằng các đơn vị thông tin khác theo một quan hệ nào đó. Trong phƣơng pháp mã chuyển vị, các đơn vị thông tin trong thông tin gốc đƣợc đổi chỗ cho nhau để tạo thành thông tin mã hóa. Các hệ thống mã hoá hiện đại thƣờng kết hợp cả hai phƣơng pháp thay thế và chuyển vị.

- Số khóa sử dụng (number of keys): nếu phía mã hóa (phía gửi) và phía giải mã (phía nhận) sử dụng chung một khóa, ta có hệ thống mã dùng khoá đối xứng (symmetric key) gọi tắt là mã đối xứng hay còn có các tên gọi khác nhƣ mã một khóa (single-key), mã khóa bí mật (secret key) hoặc mã quy ƣớc (conventional cryptosystem). Nếu phía mã hóa và phía giải mã dùng 2 khóa khác nhau, hệ thống này đƣợc gọi là mã bất đối xứng (asymmetric key), mã hai khóa (two key) hoặc mã khóa công khai (public key).

- Cách xử lý thông tin gốc (mode of cipher): thông tin gốc có thể đƣợc xử lý liên tục theo từng phần tử , khi đó ta có hệ thống mã dòng (stream cipher). Ngƣợc lại, nếu thông tin gốc đƣợc xử lý theo từng khối, ta có hệ

thống mã khối (block cipher). Các hệ thống mã dòng thƣờng phức tạp và không đƣợc phổ biến công khai, do đó chỉ đƣợc dùng trong một số ứng dụng nhất định (ví dụ trong thông tin di động GSM). Các thuật toán mật mã đƣợc giới thiệu trong tài liệu này chỉ tập trung vào cơ chế mã khối.

2.6.2. Mã hóa bất đối xứng (asymmetric).

Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép ngƣời sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trƣớc đó. Điều này đƣợc thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật).

Trong mật mã hóa khóa công khai, khóa cá nhân phải đƣợc giữ bí mật trong khi khóa công khai đƣợc phổ biến công khai. Trong hai khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai.

Hệ thống mật mã hóa khóa công khai có thể sử dụng với các mục đích:

- Mã hóa: giữ bí mật thông tin và chỉ có ngƣời có khóa bí mật mới giải

mã đƣợc.

- Tạo chữ ký số: cho phép kiểm tra một văn bản có phải đã đƣợc tạo với

một khóa bí mật nào đó hay không.

- Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin

mật giữa hai bên.

Thông thƣờng, các kỹ thuật mật mã hóa khóa công khai đòi hỏi khối lƣợng tính toán nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhƣng những lợi điểm mà chúng mang lại khiến cho chúng đƣợc áp dụng trong nhiều ứng dụng.

Sự ra đời của khái niệm hệ mật mã khoá công khai là một tiến bộ có tính chất bƣớc ngoặt trong lịch sử mật mã nói chung, gắn liền với sự phát triển của khoa học tính toán hiện đại. Ngƣời ta có thể xem thời điểm khởi đầu của bƣớc ngoặt đó là sự xuất hiện ý tƣởng của W. DiffieM.E. Hellman đƣợc trình bày vào tháng sáu năm 1976 tại Hội nghị quốcgiahàng năm của AFIPS (Hoa

kỳ) trong bài Multiuser cryptographic techniques. Một năm sau, năm 1977,

R.L. Rivest, A. Shamir và L.M. Adleman đề xuất một hệ cụ thể về mật mã khoá công khai mà độ an toàn của hệ dựa vào bài toán khó “phân tích số nguyên thành thừa số nguyên tố”, hệ này về sau trở thành một hệ nổi tiếng và mang tên là hệ RSA, đƣợc sử dụng rộng rãi trong thực tiễn bảo mật và an toàn thông tin.

Cũng vào thời gian đó, M.O. Rabin cũng đề xuất một hệ mật mã khoá công khai dựa vào cùng bài toán số học khó nói trên. Liên tiếp sau đó, nhiều hệ mật mã khóa công khai đƣợc đề xuất, mà khá nổi tiếng và đƣợc quan tâm nhiều là các hệ: hệ McEliece đƣợc đƣa ra năm 1978 dựa trên độ NP(khó) của bài toán giải mã đối với các hệ mã cyclic tuyến tính, hệ Merkle- Hellman dựa trên tính NP- đầy đủ của bài toán xếp ba lô (knapsack problem), hệ mật mã nổi tiếng ElGamal dựa trên độ khó của bài toán lôgarit rời rạc, hệ này về sau đƣợc mở rộng để phát triển nhiều hệ tƣơng tự dựa trên độ khó của các bài toán tƣơng tự lôgarit rời rạc trên các cấu trúc nhóm cyclic hữu hạn, nhóm các điểm nguyên trên đƣờng cong eliptic, v.v...

Để tăng độ bảo mật, hệ mật mã ElGamal còn dùng với tƣ cách đầu vào cho thuật toán lập mật mã của mình, ngoài khoá công khai và bản rõ, một yếu tố ngẫu nhiên đƣợc chọn tuỳ ý, điều đó làm cho hệ mật mã trở thành một hệ mật mã xác suất khoá công khai. Một số hệ mật mã xác suất khoá công khai cũng đƣợc phát triển sau đó bởi Goldwasser-Micali và Blum-Goldwasser.

Không phải tất cả các thuật toán mật mã hóa khóa bất đối xứng đều hoạt động giống nhau nhƣng phần lớn đều gồm 2 khóa có quan hệ toán học với nhau: một cho mã hóa và một để giải mã. Để thuật toán đảm bảo an toàn thì không thể tìm đƣợc khóa giải mã nếu chỉ biết khóa đã dùng mã hóa. Điều này còn đƣợc gọi là mã hóa công khai vì khóa dùng để mã hóa có thể công bố công khai mà không ảnh hƣởng đến bí mật của văn bản mã hóa.

Các thông tin để mở khóa thì chỉ có ngƣời sở hữu mới biết. Tồn tại khả năng một ngƣời nào đó có thể tìm ra đƣợc khóa bí mật. Không giống với hệ thống mật mã sử dụng một lần (one-time pad) hoặc tƣơng đƣơng, chƣa có thuật toán mã hóa khóa bất đối xứng nào đƣợc chứng minh là an toàn trƣớc các tấn công dựa trên bản chất toán học của thuật toán. Khả năng một mối

quan hệ nào đó giữa 2 khóa hay điểm yếu của thuật toán dẫn tới cho phép giải mã không cần tới khóa hay chỉ cần khóa mã hóa vẫn chƣa đƣợc loại trừ. An toàn của các thuật toán này đều dựa trên các ƣớc lƣợng về khối lƣợng tính toán để giải các bài toán gắn với chúng.[1]

Các ƣớc lƣợng này lại luôn thay đổi tùy thuộc khả năng của máy tính và các phát hiện toán học mới. Mặc dù vậy, độ an toàn của các thuật toán mật mã hóa khóa công khai cũng tƣơng đối đảm bảo. Nếu thời gian để phá một mã (bằng phương pháp duyệt toàn bộ) đƣợc ƣớc lƣợng là 1000 năm thì thuật toán này hoàn toàn có thể dùng để mã hóa các thông tin về thẻ tín dụng - Rõ ràng là thời gian phá mã lớn hơn nhiều lần thời gian tồn tại của thẻ (vài năm).[1]

2.6.3. Mã hóa đối xứng (symmetric).

Trong mật mã học, các thuật toán khóa đối xứng (tiếng Anh: symmetric-key algorithms) là một lớp các thuật toán mật mã hóa trong đó các khóa dùng cho việc mật mã hóa và giải mã có quan hệ rõ ràng với nhau ( thể dễ dàng tìm được một khóa nếu biết khóa kia).

Khóa dùng để mã hóa có liên hệ một cách rõ ràng với khóa dùng để giải mã có nghĩa chúng có thể hoàn toàn giống nhau, hoặc chỉ khác nhau nhờ một biến đổi đơn giản giữa hai khóa. Trên thực tế, các khóa này đại diện cho một bí mật đƣợc phân hƣởng bởi hai bên hoặc nhiều hơn và đƣợc sử dụng để giữ gìn sự bí mật trong kênh truyền thông tin.

Thuật toán đối xứng có thể đƣợc chia ra làm hai thể loại, mật mã luồng (stream ciphers) và mật mã khối (block ciphers). Mật mã luồng mã hóa từng bit của thông điệp trong khi mật mã khối gộp một số bit lại và mật mã hóa chúng nhƣ một đơn vị. Cỡ khối đƣợc dùng thƣờng là các khối 64 bit. Thuật toán tiêu chuẩn mã hóa tân tiến (Advanced Encryption Standard), đƣợc NIST

công nhận tháng 12 năm 2001, sử dụng các khối gồm 128 bit.

Các thuật toán đối xứng thƣờng không đƣợc sử dụng độc lập. Trong thiết kế của các hệ thống mật mã hiện đại, cả hai thuật toán bất đối xứng và thuật toán đối xứng đƣợc sử dụng phối hợp để tận dụng các ƣu điểm của cả hai. Những hệ thống sử dụng cả hai thuật toán bao gồm SSL (Secure Sockets

Layer), PGP (Pretty Good Privacy) và GPG (GNU Privacy Guard)... Các thuật toán chìa khóa bất đối xứng đƣợc sử dụng để phân phối chìa khóa mật cho thuật toán đối xứng có tốc độ cao hơn.

Một số ví dụ các thuật toán đối xứng nổi tiếng bao gồm Twofish, Serpent, AES (còn đƣợc gọi là Rijndael), Blowfish, CAST5, RC4, Tam phần DES (Triple DES), và IDEA (International Data Encryption Algorithm - Thuật toán mật mã hóa dữ liệu quốc tế).

Các thuật toán đối xứng nói chung đòi hỏi công suất tính toán ít hơn các thuật toán khóa bất đối xứng. Trên thực tế, một thuật toán khóa bất đối xứng có khối lƣợng tính toán nhiều hơn gấp hằng trăm, hằng ngàn lần một thuật toán khóa đối xứng có chất lƣợng tƣơng đƣơng.

Hạn chế của các thuật toán khóa đối xứng bắt nguồn từ yêu cầu về sự phân hƣởng chìa khóa bí mật, mỗi bên phải có một bản sao của chìa. Do khả năng các chìa khóa có thể bị phát hiện bởi đối thủ mật mã, chúng thƣờng phải đƣợc bảo an trong khi phân phối và trong khi dùng. Hậu quả của yêu cầu về việc lựa chọn, phân phối và lƣu trữ các chìa khóa một cách không có lỗi, không bị mất mát là một việc làm khó khăn, khó có thể đạt đƣợc một cách đáng tin cậy.

Để đảm bảo giao thông liên lạc an toàn cho tất cả mọi ngƣời trong một nhóm gồm n ngƣời, tổng số lƣợng chìa khóa cần phải có là n(n-1)/2.

Các thuật toán khóa đối xứng không thể dùng cho mục đích xác minh hay mục đích chống thoái thác.

2.6.4. Hàm băm (Hashing) a.Tổng quan về hàm băm a.Tổng quan về hàm băm

Trong ngành mật mã học, một hàm băm mật mã học (tiếng Anh:

Cryptographic hash function) là một hàm băm với một số tính chất bảo mật nhất định để phù hợp việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chẳng hạn nhƣ chứng thực và kiểm tra tính nguyên vẹn của thông điệp. Một hàm băm nhận đầu vào là một xâu ký tự dài (hay thông điệp) có độ dài

tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, đôi khi đƣợc gọi là tóm tắt thông điệp (message digest) hoặc chữ ký số (digital fingerprint) [3].

Hàm băm là các thuật toán không sử dụng khóa để mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) thông điệp đƣợc đƣa vào theo một thuật toán h một chiều nào đó, rồi đƣa ra một bản băm gọi là văn bản đại diện có kích thƣớc cố định.Do đó ngƣời nhận không biết đƣợc nội dung hay độ dài ban đầu của thông điệp đã đƣợc băm bằng hàm băm.

Giá trị của hàm băm là duy nhất, và không thể suy ngƣợc lại đƣợc nội dung thông điệp từ giá trị băm này.

- Tính chất của hàm băm

Tính đụng độ: Theo nguyên lý Diricle: nếu có (n+1) con thỏ đƣợc bỏ vào n cái chuồng thì phải tồn tại ít nhất một cái chuồng mà trong đó có ít nhất là hai con thỏ ở chung. Rõ ràng với không gian giá tri ̣ Băm nhỏ hơn rất nhiều so với không gian tin về mă ̣t kích thƣớc thì chắc chắn sẽ tồn ta ̣i đu ̣ ng đô ̣, nghĩa là có hai tin x # x’ mà giá trị Băm của chúng là giống nhau , tƣ́c h(x) = h(x’). Sau đây chúng ta sẽ xét các da ̣ng tấn công có thể có , tƣ̀ đó rút ra các tính chất của hàm Băm:

Tính chất 1: Hàm băm không va chạm yếu.

Hàm băm h là không va chạm yếu nếu khi cho trƣớc một bức điện x, không thể tiến hành về mặt tính toán để tìm ra một bức điện x’ xh(x’) = h(x).

Ví dụ: Ngƣời A gửi cho B (x, y) với y = SigA(h(x)). Nhƣng trên đƣờng truyền, tin bị lấy trộm. Tên trộm, bằng cách nào đó tìm đƣợc một bản thông điệp x’ có h(x’) = h(x) mà x’ x. Sau đó, tên trộm đƣa x’ thay thế x rồi truyền tiếp cho ngƣời B. Ngƣời B nhận đƣợc và vẫn xác minh đƣợc thông tin đúng đắn.

Tính chất 2: Hàm băm không va chạm mạnh

Hàm băm h là không va chạm mạnh nếu không có khả năng tính toán để tìm ra hai bức thông điệp x và x’ mà x  x’ và h(x) = h(x’). [3]

Ví dụ: Đầu tiên, tên giả mạo tìm ra đƣợc hai bức thông điệp x’ và x (x’  x) mà có h(x’) = h(x) (ta coi bức thông điệp x là hợp lệ, còn x’ là giả mạo). Tiếp theo, tên trộm đƣa cho ông A và thuyết phục ông này kí vào bản tóm lƣợc h(x) để nhận đƣợc y. Khi đó (x’, y) là bức điện giả mạo nhƣng hợp lệ.

Để tránh kiểu tấn công này, hàm h phải thỏa mãn tính không va chạm mạnh.

Tính chất 3: Hàm băm một chiều.

Hàm băm h là một chiều nếu khi cho trƣớc một bản tóm lƣợc thông báo z, không thể thực hiện về mặt tính toán để tìm bức điện x sao cho h(x) = z.

Việc giả mạo các chữ kí trên bản tóm lƣợc thông báo z ngẫu nhiên thƣờng xảy ra với sơ đồ chữ kí. Giả sử tên giả mạo tính chữ kí trên bản tóm lƣợc thông báo z ngẫu nhiên nhƣ vậy. Sau đó anh ta tìm x sao cho z = h(x). Nếu làm đƣợc nhƣ vậy thì (x,y) là bức điện giả mạo hợp lệ. Để tránh đƣợc tấn công này, h cần thoả mãn tính chất một chiều:

b. Một số hàm băm nổi tiếng

* Hàm băm MD5 (Message Digest)

Ronald Rivest là ngƣời đã phát minh ra các hàm Băm MD2, MD4 (1990) và MD5 (1991). Do tính chất tƣơng tƣ̣ của các hàm Băm này , sau đây chúng ta sẽ xem xét hàm Băm MD5, đây là mô ̣t cải tiến của MD 4 và là hàm Băm đƣợc sử dung rô ̣ng rãi nhất , nguyên tắc thiết kế của hàm băm này cũng là nguyên tắc chung cho rất nhiều các hàm băm khác [3].

- Miêu tả MD5:

Đầu vào là những khối 512 bit, đƣợc chia cho 16 khối con 32 bit. Đầu ra của thuật toán là một thiết lập của 4 khối 32 bit để tạo thành một hàm Băm 128 bit duy nhất.

Đầu tiên, ta chia bƣ́c điê ̣n thành các khối 512 bit, với khối cuối cùng (đặt là x và x < 512bit) của bƣ́c điê ̣n, chúng ta cô ̣ng thêm mô ̣t bit 1 vào cuối của x, theo sau đó là các bit 0 để đƣợc đô ̣ dài cần thiết (512 bit). Kết quả là bƣ́c điê ̣n vào là một chu ỗi M có đô ̣ dài chia hết cho 512, vì vâ ̣y ta có thể chia M ra thành các N khối con 32 bit (N khối này sẽ chia hết cho 16).

Bây giờ, ta bắt đầu tìm cốt của bƣ́c điê ̣n với 4 khối 32 bit A, B, C và D (được xem như thanh ghi) :

A = 0x01234567 B = 0x89abcdef C = 0xfedcba98 D = 0x76543210.

Ngƣời ta thƣờng go ̣i A , B, C, D là các chu ỗi biến số (chaining variables).

Bƣ́c điê ̣n đƣợc chia ra thành nhiều khối 512 bit, mỗi khối 512 bit lại đƣợc chia ra 16 khối 32 bit đi vào bốn vòng lă ̣p của MD5. Giả sử ta đặt a, b, c

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu bảo mật hệ thống thông tin và đề xuất giải pháp bảo mật cho hệ thống thông tin thư viện của trường đại học tài nguyên môi trường hà nội (Trang 35 - 61)

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

(73 trang)