1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu một số công nghệ xác thực

124 465 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 124
Dung lượng 1,53 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bất kỳ ai cũng có thể sử dụng khoá công khai để mã hoá thông điệp, nhưng chỉ người sở hữu khoá bí mật mới có thể đọc được.. Các chữ ký số được tạo ra bằng cách sử dụng khoá bí mật của ng

Trang 1

DSA Digital Signature Algorithm

EMSA Encoding Method for Signatures with Appendix I2OSP Integer-to-Octet-String Primitive

OS2IP Octet-String-to-Integer Primitive

PKCS Public-Key Cryptography Standards

PSS Probabilistic Signature Scheme

RSASP1 RSA Signature Primitive 1

RSASSA RSA Signature Scheme with Appendix

RSAVP1 RSA Verfication Primitive 1

SHA-1 Secure Hash Algorithm 1

Trang 2

MỞ ĐẦU

Giao tiếp là một phần quan trọng của cuộc sống, nó đánh dấu quá trình phát triển của loài người Hình thức giao tiếp truyền thống là nói chuyện trực tiếp, gửi thư qua bưu điện, giao tiếp bằng điện thoại Các hình thức giao tiếp truyền thống này đã tồn tại trong một khoảng thời gian dài và các điều khoản đặc biệt được tạo ra để mọi người có thể giao tiếp với nhau theo một cách an toàn

Giao tiếp trực tiếp, người này có thể nhận ra các đặc điểm vật lý của người kia, hoặc họ có thể so sánh các chữ ký được viết bằng tay cùng với các tài liệu liên quan khác (như thẻ căn cước) Việc bắt chước tất cả các đặc điểm vật lý của một người là rất khó Giao tiếp bằng điện thoại, người ta có thể nhận ra nhau qua giọng nói Ngày nay giao tiếp trên Internet là hình thức giao tiếp mới, bản chất của hình thức giao tiếp này khác với các hình thức giao tiếp truyền thống, đó là các nhóm tham gia giao tiếp không có sự liên lạc “vật lý” Họ không nhìn thấy nhau, không nghe được giọng nói của nhau Do vậy cần phải áp dụng các quy tắc, công nghệ để bảo đảm giao tiếp của mọi người trên Internet được an toàn và thông suốt

Vì vậy trong luận văn này, tôi sẽ tìm hiểu một số vấn đề về giải pháp và công nghệ “nhận dạng” giữa các đối tác trên mạng Internet Các khái niệm toán học, độ phức tạp, được xem như đã biết

Luận văn này gồm 4 chương:

 Chương 1: Các khái niệm cơ bản Đề cập tới một số khái niệm cơ bản trong

an toàn thông tin như: mã hoá, chữ ký số, tóm lược thông điệp, xác thực

 Chương 2: Giao thức SSL Giới thiệu về giao thức SSL, những khái niệm cơ bản và nguyên tắc hoạt động chung của giao thức SSL

 Chương 3: Sơ đồ chữ ký RSASSA-PSS và chương trình OpenSSL Tìm hiểu

sơ đồ chữ ký RSASSA-PSS và chương trình OpenSSL

 Chương 4: Thử nghiệm ứng dụng Xây dựng chương trình ứng dụng theo mô hình truyền tin Client/Server có bảo mật, sử dụng sơ đồ chữ ký RSASSA-PSS và thuật toán mã hoá DES

Trang 3

Chương 1 CÁC KHÁI NIỆM CƠ BẢN

1.1 MỘT SỐ VẤN ĐỀ AN TOÀN BẢO MẬT THÔNG TIN.

Ngày nay việc giao tiếp trên Internet là rất phổ biến và do vậy tính an toàn trong giao tiếp là rất cần thiết Giả sử Alice muốn gửi một thông điệp tới ngân hàng của

cô với yêu cầu chuyển tiền Alice muốn thông điệp đó phải bí mật, bởi vì thông điệp này chứa một số thông tin quan trọng như số tài khoản và số lượng tiền cần chuyển Giải pháp là sử dụng thuật toán mã hoá, cho phép chuyển thông điệp của Alice thành một dạng đã được mã hoá, và chỉ những người có khoá giải mã mới đọc được Một thuật toán mã hoá tốt phải đảm bảo thông điệp khó có thể bị những kẻ tấn công giải mã để thu lại văn bản rõ Có hai loại thuật toán mã hoá đó là mã hoá khoá đối xứng và mã hoá khoá phi đối xứng

Mã hoá khoá đối xứng yêu cầu bên gửi và bên nhận thông điệp cùng sử dụng chung một khoá, một thông tin bí mật được sử dụng để lập mã và giải mã Chỉ có người gửi và người nhận biết được khoá bí mật này Như vậy nếu Alice và ngân hàng có một khoá bí mật thì họ có thể gửi các thông điệp bí mật cho nhau

Mã hoá khoá phi đối xứng hay mã hoá khoá công khai sử dụng cặp khoá, một khoá được sử dụng để mã hoá thông điệp và khoá còn lại được sử dụng để giải mã thông điệp Khóa dùng để mã hoá thông điệp được công bố công khai, gọi là khoá

công khai (public key) Khoá dùng để giải mã thông điệp sẽ được giữ bí mật, gọi là khoá bí mật (private key)

Bất kỳ ai cũng có thể sử dụng khoá công khai để mã hoá thông điệp, nhưng chỉ người sở hữu khoá bí mật mới có thể đọc được Theo cách này Alice gửi thông điệp

bí mật tới người sở hữu cặp khoá (ngân hàng) bằng cách mã hoá thông điệp đó và chỉ có ngân hàng mới có thể giải mã

Mặc dù Alice có thể mã hoá thông điệp để đảm bảo tính bí mật Tuy nhiên một

ai đó có thể sửa đổi thông điệp của Alice hoặc thay thế bằng thông điệp khác để ngân hàng chuyển tiền tới chính họ

Một cách để đảm bảo tính toàn vẹn thông điệp ban đầu của Alice là tạo ra tóm lược thông điệp gốc, và gửi bản tóm lược này tới ngân hàng Dựa vào thông điệp

Trang 4

gốc nhận được, ngân hàng tạo ra tóm lược thông điệp và so sánh với bản tóm lược

mà Alice gửi Nếu chúng phù hợp thì thông điệp nhận được là còn nguyên vẹn

Bản tóm lược thông điệp còn gọi là đại diện thông điệp (message digest – MD),

là một biểu diễn ngắn gọn, có độ dài cố định từ các thông điệp có độ dài lớn Thuật

toán tóm lược (digest algorithm) sẽ tạo ra tóm lược duy nhất cho một thông điệp

“Khó” có thể xác định thông điệp gốc từ bản tóm lược của nó “Khó” có thể tìm ra hai thông điệp khác nhau mà tạo ra cùng một tóm lược

Một thách thức khác mà Alice phải đối mặt là tìm cách để gửi bản tóm lược tới ngân hàng một cách an toàn Khi nào công việc này hoàn tất thì việc toàn vẹn của thông điệp mới được đảm bảo Điều này được thực hiện bằng cách gửi bản tóm lược cùng với chữ ký số trên bản tóm lược đó

Khi Alice gửi một thông điệp tới ngân hàng, họ cần phải biết chắc chắn rằng thông điệp này thực sự được gửi từ Alice, và không phải là từ người khác Một chữ

ký số, được Alice tạo ra và gộp vào trong thông điệp để phục vụ cho mục đích trên Các chữ ký số được tạo ra bằng cách sử dụng khoá bí mật (của người gửi) mã hoá tóm lược thông điệp Bất kỳ ai cũng có thể giải mã chữ ký bằng khoá công khai, nhưng chỉ có người ký mới biết được khoá bí mật Gộp tóm lược thông điệp trong chữ ký đó, có nghĩa là chữ ký này chỉ có ích đối với thông điệp đó, nó sẽ đảm bảo tính toàn vẹn của thông điệp bởi vì không ai có thể thay đổi tóm lược thông điệp Mặc dù Alice có thể gửi một thông điệp bí mật tới ngân hàng, thực hiện ký thông điệp đó, và đảm bảo tính toàn vẹn của thông điệp, Alice vẫn cần phải biết chắc chắn rằng đang giao tiếp với ngân hàng Điều này có nghĩa là Alice cần đảm bảo khoá công khai mà Alice đang sử dụng, phải tương ứng với khoá bí mật của ngân hàng

Tương tự như vậy, ngân hàng cần phải xác định chữ ký trên thông điệp, là chữ

ký của Alice Nếu mỗi bên có chứng chỉ công nhận danh tính của người khác, xác nhận khoá công khai của họ và được ký bởi trung tâm có quyền chứng thực, thì cả hai có thể tin tưởng lẫn nhau trong giao tiếp Mỗi bên sử dụng khoá công khai của trung tâm xác thực để xác định chứng chỉ của bên kia và sau đó tin chắc về tính xác thực của khoá công khai

Trang 5

Trung tâm xác thực được gọi là Certification Authority (CA), thực hiện ký

chứng chỉ bằng khoá bí mật của mình, và bên giao tiếp xác nhận chứng chỉ bằng

cách sử dụng khoá công khai tương ứng với khoá bí mật của CA đã dùng để ký

1.2 VẤN ĐỀ MÃ HOÁ.

1.2.1 Khái niệm về mã hoá

Mã hoá được sử dụng để bảo vệ tính bí mật của thông tin Giả sử người gửi A

muốn gửi một văn bản p đến người nhận B Để bảo mật A lập cho p bản mã c Thay

cho việc gửi p, A gửi cho B bản mã c, B nhận được c và giải mã c để thu lại được

văn bản p như A đã gửi Để A biến p thành c và B biến ngược lại c thành p , A và B

phải thỏa thuận trước với nhau thuật toán lập mã và giải mã, một khóa mật mã

chung K Người ngoài, không biết các thông tin đó (đặc biệt không biết khóa K),

cho dù có lấy trộm được c trên kênh truyền thông công cộng, cũng khó có thể tìm

được văn bản p mà hai người A, B muốn gửi cho nhau.

1.2.2 Hệ mã hoá khoá đối xứng

1.2.2.1 Khái niệm

Sơ đồ hệ mã hoá khoá đối xứng là một bộ năm: S = (P, C, K, E, D)

thỏa mãn các điều kiện sau đây:

P là tập hữu hạn bản rõ

C là tập hữu hạn bản mã

K là tập hữu hạn các khóa

Với mỗi kK tồn tại quy tắc lập mã ekE và quy tắc giải mã tương ứng dkD

Mỗi ek : P > C và dk : C >P thoả mãn dk(ek(x))=x với mỗi bản rõ xP

Như vậy cứ mỗi lần truyền tin bảo mật, người gửi A và người nhận B phải cùng

thỏa thuận trước với nhau một khóa chung k, sau đó người gửi dùng e k để lập mã

cho thông điệp gửi đi, và người nhận dùng d k để giải mã bản mã nhận được Hệ mã

hoá với cách sử dụng đó là mã hoá khóa đối xứng

Một số hệ mã hoá khoá đối xứng như:

 Advanced Encryption Standard (AES)

Trang 6

 Data Encryption Standard (DES).

 Triple Data Encryption Standard (3DES).Sau đây tôi xin giới thiệu hệ mã hoá DES

Trang 7

1.2.2.2 Hệ mã hoá DES

Hệ mã hoá DES là hệ mã hoá theo khối, mỗi khối bản rõ là từ 64 bít, và khối

bản mã cũng là từ 64 bít Mỗi khoá K của DES là một từ 56 bít

Với mỗi khoá K và bản rõ x , quá trình lập mã diễn ra như sau:

Đầu tiên, thực hiện phép hoán vị ban đầu IP, từ x 64 bít sẽ biến thành từ mới

IP(x), từ này được chia thành hai nửa L0 và R0 , mỗi nửa là một từ 32 bít

Sau đó thực hiện tiếp 16 lần những phép toán giống nhau để nhận được các cặp

Trang 9

IP là phép hoán vị vị trí của các ký tự trong mỗi từ 64 bít, từ vị trí 1 đến vị trí

64 Bảng dưới đây cho phép hoán vị IP, với cách hiểu là bít thứ nhất của IP(x) là bít thứ 58 của từ x, bít thứ hai của IP(x) là bít thứ 50 của x, Bảng của phép hoán vị

IP -1 cũng được hiểu tương tự

Trang 10

Sơ đồ hàm f: Đầu vào là hai từ R có 32 bít và K có 48 bít Đầu ra là từ f (R, K )

có 32 bít, được xác định theo sơ đồ sau:

Trang 11

Trong sơ đồ hàm f, E là phép hoán vị “mở rộng” theo nghĩa là nó biến mỗi từ R

32 bít thành từ E(R) bằng cách hoán vị 32 bít của R, nhưng có một số cặp bít được lặp lại để E(R) thành một từ có 48 bít Phép hoán vị “mở rộng” cho bởi bảng sau:

Theo đó, mỗi từ R = a1a2a3 a32 sẽ biến thành từ

E (R) = a32 a1a2a3a4a 5a4a 5a6a7a8a9a8a9 a32a1

Tiếp theo E(R) sẽ được cộng (từng bít theo mod 2) với K, được một từ 48 bít, chia thành 8 đoạn B1, , B8

Mỗi hộp S i (i = 1, , 8) là một phép thay thế, biến mỗi từ B j (6 bít) thành một từ

C j (4 bít) Các hộp S i được cho bởi các bảng dưới đây với cách hiểu như sau:

Mỗi từ B j = b1b2b3b4b5b6 ứng với một vị trí (r, s) ở hàng thứ r và cột thứ s trong bảng Các hàng được đánh số từ 0 đến 3 ứng với biểu diễn nhị phân b1b6 Các cột

được đánh số từ 0 đến 15 ứng với biểu diễn nhị phân b2b3b4b5

Giá trị của S i (B j ) = C j = c1c2c3c4 là một từ 4 bít, biểu diễn nhị phân của số tại

Trang 14

Sơ đồ thuật toán G tạo các khoá K1, , K16

Thuật toán G tạo ra các khoá K1, , K16 từ khoá mã K, được thực hiện theo sơ

đồ trên Khoá K là một từ 56 bít, chia thành 8 đoạn, mỗi đoạn 7 bít, và thêm cho

mỗi đoạn 7 bít đó một bít thử tính chẵn lẻ vào vị trí cuối để được một từ 64 bít

Trước tiên, thuật toán PC-1 biến K thành một từ 56 bít, chia thành hai nửa C0D0,

mỗi nửa có 28 bít Phép hoán vị PC-1 được xác định bởi bảng sau (chú ý là trong

bảng không có các số 8, 16, 24, 32, 40, 48, 56, 64, là vị trí của những bít được thêm

vào khi hình thành khoá mới K )

Trang 15

Qui ước của phép hoán vị, bít thứ nhất của PC-1(x ) là bít thứ 57 của x , bít thứ hai của PC-1(x ) là bít thứ 49 của x ,

Với mỗi i = 1, 2, , 16, LS i là phép chuyển dịch vòng sang trái, chuyển dịch một

vị trí nếu i = 1, 2, 9, 16, và chuyển dịch hai vị trí với những giá trị i còn lại

Phép hoán vị PC-2 biến mỗi từ 56 bít C i D i (i =1,2, 16) thành từ 48 bít K i theo bảng dưới đây:

Thuật toán lập mã E của hệ mã DES là y =E(K, x ) với mỗi khoá K và bản rõ x Thuật toán giải mã D là x =D(K, y ), được thực hiện bằng cùng một quá trình tính toán như quá trình lập mã, chỉ khác là thứ tự dùng các K i được đảo ngược lại theo

Trang 16

1.2.2.3 Các chế độ thực hiện của DES

Có 4 chế độ mà DES có thể thực hiện và được sử dụng rộng rãi trong các ứng dụng Các chế độ này xác định cách dữ liệu sẽ được mã hoá và được giải mã, đó là các chế độ:

 Electronic CodeBook (ECB)

 Cipher Block Chaining (CBC)

 Cipher FeedBack (CFB)

 Output FeedBack (OFB)

a Chế độ Electronic Codebook (ECB)

Trong mã hoá ECB, một khối dữ liệu rõ (D1, D2, , D64) được sử dụng trực tiếp làm khối đầu vào DES (I1, I2, , I64) Khối đầu vào được xử lý qua thiết bị DES ở trạng thái mã hoá Khối đầu ra (O1, O2, , O64) được sử dụng trực tiếp làm bản mã

Trang 17

b Chế độ Cipher Block Chaining (CBC)

Thông điệp cần mã hoá sẽ được chia thành các khối Trong mã hoá CBC, khối

dữ liệu vào DES đầu tiên được định dạng bằng cách thực hiện phép toán XOR (cộng các bít theo modul 2) khối đầu tiên của thông điệp với 64 bít vectơ khởi đầu

(IV),

ví dụ: (I1, I2, , I64) = (IV1 XOR D1, IV2 XOR D2, , IV64 XOR D64)

Khối đầu vào này được xử lý qua thiết bị DES ở trạng thái mã hoá và khối đầu

ra được sử dụng làm bản mã (C1, C2, , C64) = (O1, O2, , O64) Khối bản mã đầu tiên được thực hiện XOR với khối bản rõ thứ hai để tạo ra khối đầu vào DES thứ hai

(I1, I2, , I64) = (C1 XOR D1, C2 XOR D2, , C64 XOR D64)

Khối đầu vào thứ hai được xử lý qua thiết bị DES ở trạng thái mã hoá để tạo ra khối bản mã thứ hai

Quá trình mã hoá tiếp tục xích chuỗi lần lượt các bản mã với các bản rõ với nhau cho tới khi khối bản mã cuối cùng trong thông điệp được mã hoá Nếu thông điệp không là một số nguyên lần các khối dữ liệu 64 bít, thì phần dữ liệu của khối cuối cùng sẽ được mã theo một cách riêng

Trang 18

Trong quá trình giải mã, khối bản mã đầu tiên của thông điệp được sử dụng làm khối đầu vào và được xử lý qua thiết bị DES ở trạng thái giải mã,

(I1, I2, , I64) = (C1, C2, , C64) Khối đầu ra được thực hiện phép toán XOR với IV (giống với IV được sử dụng trong quá trình mã hoá) để tạo ra khối bản rõ đầu tiên,

(D1, D2, , D64) = (O1 XOR IV1, O2 XOR IV2, , O64 XOR IV64)

Quá trình giải mã thực hiện tiếp tục theo cách này cho tới khi khối bản mã cuối cùng được hoàn thành Bản mã biểu diễn khối cuối, nếu chỉ có một phần dữ liệu phải được giải mã theo cách riêng

Hình 1.5 Sơ đồ mã hoá DES chế độ CBC

Trang 19

c Chế độ Cipher Feedback (CFB)

Thông điệp cần được mã hoá sẽ được chia thành các khối dữ liệu gồm K bít

(K=1, 2, , 64) Đối với cả hai hoạt động mã hoá và giải mã CFB, một vectơ khởi đầu IV có độ dài L được sử dụng Vectơ IV này được đặt vào các bít thấp nhất của khối đầu vào DES, và các bít không được sử dụng được thiết lập là “0”,

ví dụ: (I1, I2 , , I64) = (0, 0, , 0, IV1, IV2, IVL)

Khối đầu vào này được xử lý qua thiết bị DES ở trạng thái mã hoá để tạo một khối

ở đầu ra

Trong suốt quá trình mã hoá, bản mã được tạo ra bởi thực hiện phép XOR trên một đơn vị dữ liệu rõ với K bít cao nhất của khối đầu ra,

(C1, C2, , CK) = (D1 XOR O1, D2 XOR O2, , DK XOR OK)

Tương tự như vậy trong quá trình giải mã, bản rõ được tạo ra bằng cách thực hiện phép XOR trên một đơn vị bản mã gồm K bít với K bít cao nhất của khối đầu

ra, (D1, D2, , DK) = (C1 XOR O1, C2 XOR O2, , CK XOR OK)

Trong cả hai trường hợp, các bít không được sử dụng của khối đầu ra DES sẽ bị loại bỏ Khối đầu vào tiếp theo được tạo ra bằng cách loại bỏ K bít ở vị trí cao nhất của khối đầu vào trước đó Dịch K vị trí của các bít còn lại sang trái và sau đó chèn

K bít của bản mã được tạo ra trong quá trình mã hoá, hoặc được sử dụng trong hoạt động giải mã tại các bít có vị trí thấp,

(I1, I2, , I64) = (I[K+1l, I[K+2], , I64, C1, C2, , CK)

Khối đầu vào này sau khi được xử lý qua thiết bị DES ở trạng thái mã hoá để tạo ra khối đầu ra tiếp theo Quá trình này tiếp tục cho tới khi toàn bộ bản rõ được

mã hoá hoặc cho tới khi toàn bộ bản mã được giải mã

Trang 20

Chế độ CFB có thể hoạt động trên các đơn vị dữ liệu có kích thước từ 1 đến 64

K bít CFB được định nghĩa là chế độ CFB hoạt động trên các đơn vị dữ liệu gồm K bít (1<=K<=64)

Đối với mỗi hoạt động của thiết bị DES, một đơn vị K bít bản rõ tạo ra một đơn

vị K bít bản mã hoặc một đơn vị bản mã tạo ra một đơn vị K bít bản rõ

Hình 1.6 Sơ đồ mã hoá DES chế độ CFB

Trang 21

d Chế độ Output Feedback (OFB).

Thông điệp cần mã hoá được chia thành các đơn vị dữ liệu có kích thước là K bít (K=1, 2, , 64) Trong cả hai hoạt động mã hoá và giải mã OFB, một vectơ khởi đầu IV có kích thước là L được sử dụng Vectơ IV này được đặt trong các bít thấp nhất của khối đầu vào DES, và các bít không sử dụng được đặt là “0”,

ví dụ: (I1,I2, ,I64) = (0, 0, , 0, IV1, IV2, , IVL)

Khối đầu vào được xử lý qua thiết bị DES ở trạng thái mã hoá để tạo khối đầu

ra Trong quá trình mã hoá, bản mã được tạo bằng cách thực hiện XOR một đơn vị

dữ liệu K bít với K bít cao nhất của khối đầu ra,

ví dụ (C1, C2, , CK) = (D1 XOR O1, D2 XOR O2, , DK XOR OK)

Trong cả hai trường hợp, các bít không được sử dụng của khối đầu ra DES sẽ được loại bỏ Khối đầu vào tiếp theo được tạo bằng cách loại bỏ K bít cao nhất của đầu vào trước đó, dịch K vị trí của các bít còn lại sang trái,

(I1, I2, , I64) = I[K+1], I[K+2], , I64, O1, O2, , OK)

Sau đó khối đầu vào này được xử lý qua thiết bị DES ở trạng thái mã hoá để tạo khối đầu ra tiếp theo Quá trình này tiếp tục cho tới khi toàn bộ bản rõ được mã hoá

Hình 1.7 Sơ đồ mã hoá DES chế độ OFB

Trang 22

hoặc toàn bộ bản mã được giải mã

Nhận xét 4 chế độ thực hiện của DES:

 Chế độ ECB ứng dụng trực tiếp thuật toán DES để mã hoá, giải mã dữ liệu Thực hiện biến đổi 64 bít đầu vào thành 64 bít đầu ra Các khối bản rõ giống nhau sẽ tạo ra các bản mã giống nhau nếu cùng một khoá mã

 Chế độ ECB, một lỗi bít đơn trong một khối bản mã khi giải mã chỉ gây ra lỗi trong khối bản rõ đó, mà không ảnh hưởng tới các khối khác

 Chế độ ECB thực hiện mã hoá khối 64 bít Nếu người sử dụng mã hoá ít hơn 64 bít, thì các bít thấp nhất chưa được sử dụng của khối dữ liệu đầu vào phải được

bổ sung cho đủ với các bít ngẫu nhiên hoặc giả ngẫu nhiên, trước khi mã hoá ECB Thiết bị giải mã tương ứng phải loại bỏ các bít bổ sung, sau khi giải mã khối bản mã

 Chế độ CBC là chế độ mở rộng của ECB, thực hiện xích chuỗi các khối bản mã lại với nhau

 Chế độ CBC tạo ra các bản mã giống nhau, khi bản rõ giống nhau được mã hoá cùng một khoá và cùng vectơ khởi đầu IV

 Chế độ CBC, một hoặc nhiều lỗi xảy ra trong khối bản mã sẽ ảnh hưởng việc giải mã của hai khối, đó là khối hiện tại có lỗi xảy ra và khối kế tiếp

 Chế độ CFB sử dụng bản mã trước đó làm đầu vào cho DES, và tổ hợp với bản

rõ hiện thời để tạo ra bản mã Bởi vậy CFB thực hiện xích chuỗi các bản mã lại với nhau

 Chế độ OFB giống như CFB ngoại trừ đầu ra trước đó của DES trong OFB được làm đầu vào Bởi vậy OFB không xích chuỗi các bản mã lại với nhau

Trang 23

1.2.3 Hệ mã hoá khoá phi đối xứng

1.2.3.1 Khái niệm

Sơ đồ hệ mã hoá khoá phi đối xứng còn được gọi là hệ mã hoá khoá công khai

Đó là một bộ năm S = (P, C, K, E, D) thỏa mãn các điều kiện sau:

k’’ dành cho việc giải mã (và có hàm giải mã dk’’ )

Mỗi ek’ : P > C và dk’’ : C >P thoả mãn dk’’ (ek’ (x)) = x với mọi x P

Trong một hệ mã hoá khóa phi đối xứng, các khóa lập mã và giải mã (k’ và k’’) là khác nhau, nhưng có quan hệ với nhau Trong hai khóa đó, khóa cần phải giữ bí mật là khóa giải mã k’’, còn khóa lập mã k’ có thể được công bố công khai Tuy nhiên điều đó chỉ có ý nghĩa thực tiễn khi việc biết k’ tìm k’’ là cực kỳ khó, đến mức hầu như không thể thực hiện được

Một số hệ mã hoá khoá công khai như:

 Hệ RSA

 Hệ ElGamal

 Hệ Knapsack Merkle-Hellman

 Hệ mật trên đường cong Elip

Sau đây tôi xin giới thiệu hệ mã hoá RSA

Trang 24

1.2.3.2 Mô tả hệ mã hoá RSA

Sơ đồ chung của hệ mã hoá RSA được cho bởi:

S = (P, C, K, E, D) trong đó:

 P là tập hữu hạn bản rõ

 C là tập hữu hạn bản mã

 K là tập các khoá k , mỗi khoá k gồm có hai phần k =(k’,k’’)

k’ là khoá công khai dành cho lập mã

k’’ là khoá bí mật dành cho giải mã

Với mỗi ký tự bản rõ xP, thuật toán lập mã E cho ký tự mã tương ứng

E(k’, x) = xe mod n, với mọi x P

D(k’’, y) = yd mod n, với mọi y C

Trang 25

Với mỗi k =(k’, k’’), trong S có thuật toán ký sigk’ : P -> A,

và trong V có thuật toán kiểm thử verk’’ : PxA -> {đúng, sai}

thoả mãn điều kiện với mọi thông điệp xP và mọi chữ ký yA:

verk’’(x, y) = đúng  y =sigk’(x )

Người sở hữu bộ khoá k =(k’,k’’), công bố công khai khoá k’’ để mọi người có thể kiểm thử chữ ký của mình, và giữ bí mật khoá k’ để thực hiện chữ ký trên các thông điệp mà mình muốn gửi đi

1.3.2 Khái niệm MAC (Message Authentication Code)

Mã xác thực thông điệp (Message Authentication Code): Là một số, được tính

từ nội dung của thông điệp, được sử dụng xác nhận tính toàn vẹn thông điệp

MAC là tổng kiểm tra (checksum), được tạo ra bằng mã hoá DES hoặc AES, với khoá bí mật (secret key) MAC được gửi cùng với thông điệp đó

Bên nhận tính toán lại MAC, sử dụng thuật toán và khoá bí mật tương ứng như bên gửi, và so sánh nó với MAC của bên gửi Nếu chúng giống nhau, thì thông điệp không bị thay đổi

MAC giống như chữ ký số, ngoại trừ khoá bí mật (secret key) được sử dụng ( thay cho khoá riêng (private key))

Trang 27

1.3.3 Thuật toán ký số (Digital Signature Algorithm – DSA)

Khi nhận được thông điệp, bên nhận có thể yêu cầu xác minh thông điệp đó không bị thay đổi trong khi truyền Hơn nữa bên nhận có thể muốn biết chính xác danh tính của người gửi thông điệp đó Cả hai dịch vụ này có thể được cung cấp bởi DSA Một chữ ký số có thể được sử dụng để chứng minh với bên nhận rằng thông điệp này được họ ký

Chữ ký số là một số lớn được biểu diễn trong máy tính dưới dạng một chuỗi số nhị phân

Bên ký sử dụng thuật toán DSA để tạo ra chữ ký số trên thông điệp, và bên xác nhận sử dụng thuật toán DSA tương ứng để xác nhận tính xác thực của chữ ký Mỗi bên thực hiện cam kết có một khoá công khai và một khoá bí mật Khoá bí mật được sử dụng trong quá trình tạo chữ ký, và khoá công khai được sử dụng trong quá trình xác nhận chữ ký

Hình 1.8 Sơ đồ ký và xác thực chữ ký

Trang 28

Các tham số của thuật toán DSA

 k là số nguyên được tạo ngẫu nhiên hoặc giả ngẫu nhiên với 0<k<q

Các số p, q, g có thể công khai Tham số x và k được sử dụng để tạo chữ ký, và được giữ bí mật Tham số k được chọn lại đối với mỗi lần ký

a Tạo chữ ký:

Chữ ký trên thông điệp M là cặp số r và s được tính theo công thức:

r = (gk mod p) mod q

s = (k-1(SHA-1(M) + xr)) mod q

k-1 là nghịch đảo của k mod q, (k-1k) mod q =1 và 0<k-1<q

SHA-1 (Secure Hash Algorithm –1) là thuật toán tạo ra tóm lược trên thông điệp Thuật toán này được trình bày ở phần sau

SHA-1(M) tạo tóm lược trên thông điệp M, có độ dài là 160 bít

Chữ ký này được truyền cùng với thông điệp tới bên xác nhận

Trang 29

v = (((g)ul (y)u2) mod p) mod q

Nếu v=r’ thì chữ ký được xác nhận, và bên xác nhận có thể chắc chắn rằng thông điệp nhận được, là của chủ nhân có khoá bí mật x tương ứng với khoá công khai y

Trang 30

1.3.4 Thuật toán SHA-1 (Secure Hash Algorithm – 1 )

Thuật toán băm an toàn (SHA-1) là một trong những thuật toán để tạo ra tóm lược thông điệp từ một thông điệp hoặc từ một file dữ liệu Đầu vào của SHA-1 là thông điệp có độ dài < 264 bít , và kết quả đầu ra của SHA-1 là 160 bít, được gọi là

tóm lược thông điệp (message digest) Tóm lược thông điệp này là dữ liệu đầu vào

cho thuật toán ký số

Việc ký trên bản tóm lược thường hiệu quả hơn việc ký trên thông điệp vì kích thước của thông điệp ban đầu cần ký thường lớn hơn nhiều so với kích thước của bản tóm lược đó Bên nhận phải sử dụng thuật toán băm tương tự như bên ký, để xác nhận chữ ký

SHA-1 được gọi là an toàn bởi vì khó có thể tính toán để tìm ra một thông điệp tương ứng với bản tóm lược cho trước, hoặc tìm hai thông điệp khác nhau mà tạo ra cùng một bản tóm lược Trong quá trình truyền, nếu thông điệp đó bị thay đổi thì kết quả là cho một bản tóm lược khác, và chữ ký xác nhận là sai

Trang 31

a Một số khái niệm

Một số hexa là một phần tử của tập {0, 1, , 9, A, B, C, D, E, F},

được biểu diễn bởi 4 bít Ví dụ: 7=0111, A=1010

Một từ là một dãy 32 bít, có thể biểu diễn 8 số hexa

Ví dụ 1010 0001 0000 0011 1111 1110 0010 0011 = A103FE23

Một số nguyên có giá trị từ 0 tới 232–1 có thể được biểu diễn là một từ

4 bít thấp nhất của một số nguyên được biểu diễn bởi một số hexa ở phía bên phải nhất của một từ Ví dụ số nguyên 291=28+25+21+20 = 256+32+2+1,

được biểu diễn bằng một từ 00000123

Nếu z là một số nguyên, 0  z < 264thì z = 232x + y trong đó 0  x < 232 và

0  y < 232 Bởi vì x và y có thể được biểu diễn như là các từ X và Y nên z có thể được biểu diễn là một cặp từ (X,Y)

Một khối (block) = 512 bít Một khối có thể được biểu diễn bằng một dãy 16 từ

* Một số phép toán thực hiện trên các bít:

 X ^ Y: toán tử AND các bít của X với Y

 X \ / Y: toán tử OR các bít của X với Y

 X XOR Y: toán tử XOR các bít của X với Y

 ~ X: Thực hiện lấy phần bù của X

Ví dụ: 01101100101110011101001001111011

XOR 01100101110000010110100110110111 - = 00001001011110001011101111001100

* Phép toán X+Y:

Cho X, Y là các từ biểu diễn các số nguyên x và y

Trong đó 0  x < 232 và 0  y < 232 n, m là hai số nguyên dương,

n mod m là phần dư của kết quả chia n cho m

Tính z=(x+y) mod 232. Biến đổi z thành một từ Z và định nghĩa Z=X+Y

Trang 32

* Toán tử dịch vòng sang trái S n (X):

X là một từ và số nguyên n với 0  n < 32

Khi đó Sn(X) = (X << n) OR (X >> 32-n)

X<<n: Loại bỏ n bít trái nhất của X, thêm n bít 0 vào bên phải của X

X>>n: Loại bỏ n bít bên phải của X, thêm n bít 0 vào bên trái

Do đó Sn(X) tương đương với dịch vòng n bít của X sang bên trái

Ví dụ: X=00110010 11000001 11010101 00010010, với n=5

X<<5 = 01011000 00111010 10100010 01000000 X>>27 = 00000000 00000000 00000000 00000110

S5(X) = (X << 5) OR (X >> 27) = 01011000 00111010 10100010 01000110

b Các hàm, hằng số sử dụng trong SHA-1

Các hàm logic f0, f1, , f79 được sử dụng trong SHA-1

Mỗi hàm ft (0  t  79) thực hiện trên 3 từ B, C, D, đầu ra của hàm là một từ 32 bít

ft(B, C, D) được định nghĩa như sau:

ft(B, C, D) = (B AND C) OR ((NOT B) AND D) ( 0  t  19)

Trang 33

c Thông điệp đệm (Message padding)

SHA-1 tạo ra tóm lược thông điệp từ một thông điệp (trong một tệp dữ liệu) Thông điệp được xem là một dãy các bít Độ dài thông điệp là số bít của nó (thông điệp rỗng có độ dài bằng 0) Nếu số bít của thông điệp là bội số của 8, thì có thể biểu diễn dưới dạng hexa

Mục đích của thông điệp đệm là đảm bảo tổng độ dài của thông điệp sau khi đệm phải là bội số của 512 SHA-1 sẽ xử lý các khối 512 bít

Mô tả tóm tắt:

Bít 1 được nối vào, tiếp theo là m bít 0, và sau đó là một số nguyên 64 bít được thêm vào thông điệp để tạo ra thông điệp có kích thước 512*n

Số nguyên 64 bít có giá trị L, là độ dài của thông điệp ban đầu

Giả sử thông điệp có kích thước L<264 Trước khi là dữ liệu đầu vào của SHA-1, thông điệp này được bổ sung vào bên phải như sau:

 Bít “1” được thêm vào Ví dụ thông điệp ban đầu là “01010000” Sau khi được bổ sung, thông điệp là “010100001”

 Bít “0” được bổ sung vào Số bít “0” được thêm phụ thuộc vào kích thước ban đầu của thông điệp 64 bít sau cùng của khối cuối 512 bít được dành riêng cho độ dài ban đầu của thông điệp

 Kết quả hai từ biểu diễn giá trị L, số bít của thông điệp ban đầu Thêm 2 từ này vào thông điệp

Ví dụ: Thông điệp ban đầu là dãy 40 bít

Trang 34

Hai từ biểu diễn độ dài L của thông điệp ban đầu là 00000000 00000028

Do đó thông điệp sau khi đệm sẽ có dạng hexa là:

d Quá trình tạo tóm lược thông điệp

Tóm lược thông điệp được tính toán và được tạo từ thông điệp sau khi đệm Trong quá trình tính toán, sử dụng 2 vùng đệm (mỗi vùng đệm bao gồm 5 từ), một dãy 80 từ, và một từ đệm TMP

5 từ trong vùng đệm thứ nhất được gán nhãn là A, B, C, D, E

5 từ trong vùng đệm thứ hai được gắn nhãn là H0, H1, H2, H3, H4

Các từ trong dãy 80 từ được gán nhãn là W0, W1, , W79

Trước khi xử lý các khối M1, M2, , Mn cần phải khởi tạo {Hi} dưới dạng hexa:

H0 = 67452301 H1 = EFCDAB89

H2 = 98BADCFE H3 = 10325476

H4 = C3D2E1F0

Xử lý khối Mi như sau:

Chia Mi thành 16 từ W0, W1, , W15, trong đó W0 là từ ở bên trái nhất

Trang 35

Sau khi xử lý khối Mn, tóm lược thông điệp là một chuỗi 160 bít được biểu diễn bởi

5 từ H0 H1 H2 H3 H4

Trang 36

1.4 VẤN ĐỀ XÁC THỰC.

1.4.1 Khái niệm xác thực

Xác thực là việc xác minh, kiểm tra một thông tin để công nhận hoặc bác bỏ tính hợp lệ của thông tin đó Xác thực luôn là yêu cầu quan trọng trong các giao tiếp cần có sự tin cậy Để đơn giản ta xét mô hình giao tiếp gồm hai thực thể trao đổi thông tin A và B, họ cùng mục đích trao đổi thông tin M nào đó

Khi đó việc xác thực bao gồm:

 A cần xác minh B đúng là B và ngược lại

 Cả A và B cần xác minh tính an toàn của thông tin M mà họ trao đổi

Như vậy, xác thực bao gồm hai việc chính:

 Xác thực tính hợp lệ của các thực thể tham gia giao tiếp

 Xác thực tính bảo mật và toàn vẹn của thông tin trao đổi

Theo phương pháp truyền thống, việc xác thực thực thể được thực thi bằng các giấy tờ như chứng minh thư, giấy phép lái xe, hoặc các giấy tờ cá nhân khác Việc xác thực tính an toàn của thông tin thường dựa trên chữ ký, con dấu

Trang 37

1.4.2 Khái niệm xác thực số (điện tử)

Một trong những thách thức lớn nhất của xã hội số hoá là ngăn ngừa các hành vi truy nhập bất hợp pháp và ngăn ngừa các loại tội phạm tin học Đa phần các nguy

cơ bắt nguồn từ bản chất phân tán của mạng, khi mà các thành viên tham gia không giao tiếp trực tiếp với nhau

Xác thực số cũng là một loại xác thực nhưng bằng phương pháp “điện tử”

Có nhiều phương pháp xác thực số đã được phát triển Tuy nhiên có 3 phương pháp xác thực chính sau đây:

a Phương pháp thứ nhất: Xác thực dựa vào những gì mà ta “biết”

Phương pháp này thường sử dụng mật khẩu, mã PIN để xác thực chủ thể Khi cần xác thực, hệ thống yêu cầu chủ thể cung cấp những thông tin mà chủ thể biết (mật khẩu, mã PIN, )

b Phương pháp thứ hai: Xác thực dựa vào những gì mà ta “có”

Phương pháp này đòi hỏi người dùng phải sở hữu một thứ gì đó để có thể xác nhận, chẳng hạn như chứng chỉ số, thẻ ATM, thẻ SIM

c Phương pháp thứ ba: Xác thực những gì mà ta “đại diện”

Phương pháp này thường sử dụng việc nhận dạng sinh học như dấu vân tay, mẫu võng mạc, mẫu giọng nói, để xác thực

Xác thực bằng mật khẩu, mã PIN có ưu điểm là tạo lập và sử dụng đơn giản, nhưng có nhược điểm lớn là người dùng thường chọn mật khẩu dễ nhớ, do vậy dễ đoán nên dễ bị tấn công Kẻ tấn công cũng có thể có nhiều phương pháp tấn công để đạt được mật khẩu

Phương pháp nhận dạng sinh học đòi hỏi phải dựa trên hạ tầng công nghệ thông tin tốt Sử dụng sơ đồ định danh thì giao thức phức tạp, yêu cầu nhiều tương tác hỏi đáp giữa các thực thể, và phương pháp này cũng chỉ dùng để xác thực thực thể

Trang 38

1.4.3 Công cụ xác thực: Chứng chỉ số

1.4.3.1 Khái niệm chứng chỉ số (Digital Certificate)

Chứng chỉ số là một văn bản điện tử theo định dạng chuẩn nhất định, được sử dụng để xác minh danh tính của một cá nhân, một máy chủ hay một thực thể nào đó trên mạng truyền thông công cộng Nó giống như bằng lái xe, chứng minh thư, hộ chiếu hay các giấy tờ xác minh cá nhân

Chứng chỉ số phải do một nhà cung cấp chứng chỉ số phát hành,

gọi tắt là CA (Certificate Authority) CA phải đảm bảo độ tin cậy, chịu trách nhiệm

về độ chính xác của chứng chỉ số mà mình cung cấp Thông tin trên chứng chỉ số gồm 3 thành phần chính:

 Thông tin cá nhân của đối tượng được cấp

 Khoá công khai của đối tượng được cấp

 Chữ ký số của CA cấp chứng chỉ

Nếu đối tượng được cấp chứng chỉ là các cá nhân thì thông tin gồm có tên, quốc tịch, địa chỉ, email, tên tổ chức, Phần này giống như các thông tin trên chứng minh thư của mỗi người Nếu đối tượng được cấp là một máy chủ, một website thì thông tin gồm có tên miền, tên máy chủ, IP,

Khoá công khai của đối tượng được cấp chứng chỉ dùng để mã hoá thông tin, xác minh chữ ký,

Chữ ký của CA là sự xác nhận của CA, bảo đảm tính chính xác và hợp lệ của chứng chỉ Muốn kiểm tra một chứng chỉ số, trước tiên phải kiểm tra chữ ký số của

CA cấp chứng chỉ có hợp lệ hay không

Trang 39

1.4.3.2 Định dạng X.509 của chứng chỉ số

Cơ sở hạ tầng của mật mã khoá công khai (Public-Key Infrastructure) được xây dựng để bảo đảm an toàn bảo mật thông tin Trong hệ thống này người ta sử dụng một thành phần dữ liệu được gọi là chứng chỉ số, nó gắn thông tin về người sở hữu khoá riêng với khoá công khai tương ứng

Hình 1.9 mô tả chứng chỉ số theo phiên bản 3, được định nghĩa theo chuẩn X.509, chuẩn được sử dụng phổ biến trên thế giới hiện nay

Các thành viên tham gia hệ thống, sử dụng hệ mật mã khoá công khai hoàn toàn có thể tin rằng: Khoá công khai chứa trong chứng chỉ số là thuộc về đối tượng

có thông tin trong trường đối tượng được cấp CA sử dụng chữ ký điện tử để đảm bảo tính toàn vẹn và xác thực các thông tin có trong chứng chỉ số

Chữ ký được tạo ra như sau:

 Thiết lập đại diện của toàn bộ thông tin trong chứng chỉ số (gồm các thông tin

cơ bản và phần mở rộng)

 CA sử dụng khoá riêng (private key) của mình ký trên đại diện vừa có được, để tạo ra chữ ký số

 Đóng gói các thông tin cùng với chữ ký trên, đó là chứng chỉ

Sự tin tưởng của các thành viên chỉ có thể được đảm bảo khi họ tin tưởng vào

CA đã tạo ra chứng chỉ số đó Mỗi chứng chỉ số đều có hạn sử dụng Việc kiểm tra chứng chỉ số được thực hiện độc lập với hệ thống cấp chứng chỉ, nó được thực hiện tại đầu cuối, hoặc thông qua các dịch vụ kiểm tra trạng thái của chứng chỉ số Chứng chỉ số có thể công khai

Trang 40

Các trường cơ bản của một chứng chỉ số:

Phiên bản (Version)

Mã số (Serial Number) Thông tin của chữ ký điện tử Người cấp (Issuer) Hạn sử dụng (Validity) Người sở hữu (Subject) Thông tin về khoá công khai Chỉ danh người cấp (Issuer Unique ID) Chỉ danh người sở hữu (Subject Unique ID) Các thành phần mở rộng, tuỳ chọn (Extensions)

Ngày đăng: 25/03/2015, 09:56

HÌNH ẢNH LIÊN QUAN

Hình 1.1  Sơ đồ khái quát lập mã DES - Nghiên cứu một số công nghệ xác thực
Hình 1.1 Sơ đồ khái quát lập mã DES (Trang 8)
64. Bảng dưới đây cho phép hoán vị IP, với cách hiểu là bít thứ nhất của IP(x) là bít  thứ 58 của từ x, bít thứ hai của IP(x) là bít thứ 50 của x, .. - Nghiên cứu một số công nghệ xác thực
64. Bảng dưới đây cho phép hoán vị IP, với cách hiểu là bít thứ nhất của IP(x) là bít thứ 58 của từ x, bít thứ hai của IP(x) là bít thứ 50 của x, (Trang 9)
Sơ đồ hàm f: Đầu vào là hai từ R có 32 bít và K có 48 bít. Đầu ra là từ f (R, K ) - Nghiên cứu một số công nghệ xác thực
Sơ đồ h àm f: Đầu vào là hai từ R có 32 bít và K có 48 bít. Đầu ra là từ f (R, K ) (Trang 10)
Hình 1.3 Sơ đồ thuật toán G - Nghiên cứu một số công nghệ xác thực
Hình 1.3 Sơ đồ thuật toán G (Trang 14)
Hình 1.4 Sơ đồ mã hoá DES chế độ ECB - Nghiên cứu một số công nghệ xác thực
Hình 1.4 Sơ đồ mã hoá DES chế độ ECB (Trang 16)
Hình 1.5 Sơ đồ mã hoá DES chế độ CBC - Nghiên cứu một số công nghệ xác thực
Hình 1.5 Sơ đồ mã hoá DES chế độ CBC (Trang 18)
Hình 1.6 Sơ đồ mã hoá DES chế độ CFB - Nghiên cứu một số công nghệ xác thực
Hình 1.6 Sơ đồ mã hoá DES chế độ CFB (Trang 20)
Hình 1.7 Sơ đồ mã hoá DES chế độ OFB - Nghiên cứu một số công nghệ xác thực
Hình 1.7 Sơ đồ mã hoá DES chế độ OFB (Trang 21)
Hình 1.8 Sơ đồ ký và xác thực chữ ký - Nghiên cứu một số công nghệ xác thực
Hình 1.8 Sơ đồ ký và xác thực chữ ký (Trang 27)
Hình 4.2 Mô hình chương trình thử  nghiệm Client - Nghiên cứu một số công nghệ xác thực
Hình 4.2 Mô hình chương trình thử nghiệm Client (Trang 99)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w