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

Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử

53 2K 22
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Hạ Tầng Khóa Công Khai (PKI), Vấn Đề Cấp Phát Chứng Thực Số Và Ứng Dụng Trong Thương Mại Điện Tử
Tác giả Trần Quang Thuận
Người hướng dẫn PGS – TS. Hồ Sỹ Đàm, TS. Lê Đức Phong
Trường học Đại học Quốc Gia Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 53
Dung lượng 1,63 MB

Nội dung

Tài liệu tham khảo công nghệ thông tin Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trần Quang Thuận

NGHIÊN CỨU VÀ XÂY DỰNG HẠ TẦNG KHÓA

CÔNG KHAI

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành : Công nghệ thông tin

HÀ NỘI - 2010

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Cán bộ hướng dẫn: PGS – TS.Hồ Sỹ Đàm

Cán bộ đồng hướng dẫn: TS.Lê Đức Phong

Trang 3

LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn chân thành nhất tới PGS.TS Hồ Sĩ Đàm, TS Lê Đức Phong.Những người thầy đã cho tôi những định hướng và những ý kiến rất quý báu để tôi hoànthành được khóa luận tốt nghiệp này Tôi xin tỏ lòng biết ơn sâu sắc tới các thầy cô, bạn

bè đã dìu dắt, giúp đỡ tôi tiến bộ trong suốt quá trình làm khóa luận tốt nghiệp Xin cảm

ơn gia đình và bè bạn, những người luôn khuyến khích và giúp đỡ tôi trong mọi hoàncảnh khó khăn Tôi xin cảm ơn bộ môn Truyền Thông và Mạng Máy Tính, khoa CôngNghệ Thông Tin trường Đại Học Công Nghệ-Đại Học Quốc Gia Hà Nội đã hết sức tạođiều kiện cho tôi trong quá trình học, làm và hoàn thành khóa luận này

Trang 4

M ỤC L ỤC

Mở Đầu 1

Chương 1 : Giới Thiệu 2

1.1 Tìm hiểu Mật mã học khoá công khai 2

1.1.1.Mật mã học khoá công khai 2

1.1.2.Ứng dụng 4

1.2 Thuật toán và độ phức tạp thuật toán 4

1.2.1.Thuật toán 4

1.2.2.Phân tích thuật toán 5

Trang 5

1.3 Hạ tầng khóa công khai (PKI) 5

1.3.1.PKI là gì 5

1.3.2.Cở sở hạ tầng khóa công khai 6

1.4 Một vài kiến trúc và công nghệ PKI hiện hành 7

1.4.1.Một số ứng dụng 7

1.5 Mục đích của đề tài 8

1.6 Đặt vần đề ? 9

1.7 Các vấn đề sẽ giải quyết trong khóa luận 9

Chương 2 : Xây dựng hạ tầng khóa công khai(PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử 11

2.1 Hàm băm mật mã học 11

2.1.1.Hàm băm 11

2.1.2.Hàm băm mật mã học 11

2.1.3.Đảm bảo tính toàn vẹn dữ liệu 11

2.1.4.Một số hàm băm thông dụng 12

2.2 Mã hóa thông tin 14

2.3 Chữ ký số 15

2.3.1.Chữ ký số 15

2.3.2.Tạo và kiểm tra chữ ký số 16

2.4 Chứng thực số 22

2.5 Cấu trúc phân tầng của hệ thống PKI 22

2.6 Cấp phát và xác thực chứng thực số 23

2.6.1.Cấp phát chứng thực số 23

2.6.2.Xác thực chứng thực số 25

2.7 Ứng dụng của hạ tầng khóa công khai và cấp phát chứng thực 25

2.7.1.Mã hóa 25

2.7.2.Chống giả mạo 25

2.7.3.Xác thực 26

2.7.4.Chống chối bỏ nguồn gốc 26

2.7.5.Chữ ký điện tử 26

2.7.6.Bảo mật website 27

2.7.7.Đảm bảo phần mềm 27

2.8 OpenCA hệ thống hạ tầng khóa công khai trong thực tế 27

2.8.1.Định nghĩa : 27

2.8.2.Đánh giá về hệ OpenCA 28

Chương 3: Đặc tả một Platform PKI 29

3.1 Ngôn ngữ lập trình 29

3.2 Thư viện số nguyên lớn 29

3.3 Một Platform PKI phải cung cấp đầy đủ các chức năng sau: 29

3.3.1.Cấp phát 29

3.3.2.Chứng thực 39

3.3.3.Toàn vẹn dữ liệu 39

Trang 6

3.3.4.Thu hồi và cấp phát lại chứng thực số 41 KẾT LUẬN 44 CÁC TÀI LIỆU THAM KHẢO 45

Trang 7

TÓM TẮT KHÓA LUẬN

Khóa luận “Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử” Hạ tầng khóa công khai là một bộ khung cơ bản để xây

dựng mô hình an ninh, bảo mật trong thương mại điện tử Tìm hiểu vai trò của chứng thực

số trong hạ tầng khóa công khai Vai trò của chứng thực số trong các giao dịch trực tuyến.Người sử dụng, ngoài hình thức bảo mật thông thường như mật khẩu, cũng phải dùng mộtchứng thực số cá nhân để khẳng định danh tính của mình, xác nhận các hoạt động giaodịch của mình với dịch vụ ngân hàng, thương mại điện tử, dao dịch chứng khoán Chứngthực số sẽ giúp nhà quản lý đảm bảo rằng khách hàng không thể chối cãi các giao dịchcủa mình, khi họ đã dùng chứng thực số Từ đó đặt ra các vấn đề quản lý (cấp phát,xácthực) thu hồi và cấp phát lại chứng thực số

Trong khóa luận tôi sẽ trình bày về các vấn đề chính xoay quanh vấn đề hạ tầngkhóa công khai (PKI) Phần đầu của khóa luận (chương 1) giới thiệu vấn đề và cách tiếpcận giải quyết vấn đề sẽ trình bày khái quát về một vài khái niệm cơ bản về mật mã họckhóa công khai, hạ tầng khóa công khai ; các khái niệm cơ bản về thuật toán và lý thuyết

độ phức tạp; một vài công cụ nền tảng của mật mã học khóa công khai (mã hóa thông tin,hàm băm, chữ ký số) Chương 2 của khóa luận sẽ làm rõ hơn các khái niệm, các vấn đề cơbản bên trong một hạ tầng khóa công khai (chứng thực số, các dịch vụ đăng ký, cấp phát,xác thực, thu hồi, … khóa công khai); ứng dụng của hạ tầng khóa công khai trong giaodịch điện tử ngày nay ; và một vài hệ thống hạ tầng khóa công khai trong thực tế Chương

3 đặc tả một hạ tầng khóa công khai đơn giản và Kết Luận

Trang 8

DANH MỤC TỪ VIẾT TẮT

PKI Public Key Infrastructure

CA Certificate Authority

RSA Rivest Shamir Adleman

DSA Digital Signature Algorithm

MD5 Message Digest 5

RA Registration Authority

SHA Secure Hash Algorithm

SHS Secure Hash Standard

RFC Request For Comments

Trang 9

DANH MỤC HÌNH VẼ VÀ BẢNG

Hình 1.1: Cấp phát khóa riêng khóa công khai

Hình 1.2: Mã hóa thông tin

Hình 1.3: Tạo và xác thực chữ ký số

Hình 1.4 : Mô hình xây dựng PKI cơ bản

Bảng 1.5 : mô hình xử dụng xác thực

Hình 2.1 : Đặc điểm của các thuật toán băm SHA

Bảng 2.2 :So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký của RSA vớiDSA

Hình 2.3 : Thời gian xác nhận chữ ký của RSA và DSA

Hình 2.4 : Thời gian tạo chữ ký của RSA và DSA

Hình 2.5 : Thời gian xác nhận chữ ký của RSA và DSA

Hình 2.6 : Mô hình phân cấp

Hình 3.1 : Hàm tạo cặp khóa riêng và khóa công khai

Hình 3.2 : Mô phỏng tạo khóa

Hình 3.3 : Tạo chữ ký số

Hình 3.4 : Form nhập thông tin của client

Hình 3.5 : Thông báo trả về khi kết quả gửi thông tin thành công

Hình 3.6 : Xác thực khóa công khai và chữ ký số

Hình 3.7 : cấp phát chứng thực số

Hình 3.8 : Kiểm tra thông tin và cấp phát chứng thực số

Hình 3.9 : Xác thực chứng thực số

Hình 3.10 : Form tìm kiếm, sửa, xóa thông tin chứng thực số

Hình 3.11 : Kiểm tra và thu hồi chứng thực số hết hạn sử dụng

Trang 10

Mở Đầu

Trong kỷ nguyên của công nghệ thông tin, tính phổ biến rộng rãi của Internet mộtmặt đem lại nhiều ứng dụng tiện lợi, thú vị và dần thay thế các hoạt động truyền thốngtrong thế giớ thực; mặt khác nó đặt ra các vấn đề về sự an toàn, tính tin cậy của nhữnggiao dịch trên Internet Cơ sở hạ tầng khóa công khai (PKI) có thể đáp ứng, giải quyếtnhững vấn đề cơ bản nhất cho những yêu cầu trên Dựa trên các dịch vụ cơ bản về chứngthực số và chữ ký số, một PKI chính là bộ khung của các chính sách, dịch vụ và phầnmềm mã hóa, đáp ứng nhu cầu bảo mật của người sử dụng

Không chỉ nằm trong lĩnh vực thương mại điện tử, chứng thực số hiện còn được sửdụng như một dạng chứng minh thư cá nhân Tại các nước công nghệ phát triển, chứngthực số CA được tích hợp vào các chip nhớ nằm trong thẻ căn cước, thẻ tín dụng để tăngcường khả năng bảo mật, chống giả mạo, cho phép chủ thẻ xác thực danh tính của mìnhtrên nhiều hệ thống khác nhau, chẳng hạn như xe bus, thẻ rút tiền ATM, kiểm soát hảiquan, ra vào chung cư v.v

Với các đặc điểm nổi bật như không thể giả mạo, chứng thực nguồn gốc xuất xứ, cácquốc gia phát triển đều đã sử dụng chứng thực số như một bằng chứng pháp lý từ rất sớm.Đây là yếu tố rất quan trọng để có thể phát triển thương mại điện tử, vì không ai dám mạohiểm với tiền của mình, khi họ chưa chắc chắn được rằng các hoạt động đó có được đảmbảo, và có được pháp luật công nhận hay không.

Trong bản khóa luận tốt nghiệp này, tác giả xin trình bày tổng quát về cơ sở hạ tầngkhóa công khai và ứng dụng của nó trong thương mại điện tử Qua đó trình bày một bảnplatform mô phỏng hoạt động của một hạ tầng khóa công khai (PKI) cơ bản

Trang 11

Chương 1 : Giới Thiệu

1.1 Tìm hiểu Mật mã học khoá công khai

1.1.1 Mật mã học khoá công khai

1.1.1.1 Mật mã học khóa công khai (Phi đối xứng) là gì

- là một chuyên ngành của mật mã học cho phép người sử dụng trao đổi cácthô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ọc khóa công khai, khóa cá nhân phải được giữ bí mật trongkhi khóa công khai được phổ biến công khai Trong 2 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.[1]

1.1.1.2 Mục đích của hệ thống mã hoá công khai :

- Cấp phát khoá riêng và khoá công khai :

Hình 1.1: Cấp phát khóa riêng khóa công khai

 Việc cấp phát khoá công khai và khoá bí mật thông qua thuật toánRSA (phổ biến) Thuật toán RSA tạo ra cặp khoá bằng các phươngthức toán học từ 2 số nguyên tố bất kỳ đủ lớn

Trang 12

- Mã hoá :

Hình 1.2: Mã hóa thông tin

 Bob mã hóa thông tin gửi cho Alice bằng khóa công khai củaAlice Alice nhận được tin nhắn từ Bob kiểm tra tin nhắn và giải

mã bằng khóa bí mật của Alice

- Tạo và xác thực chữ ký số :

Hình 1.3: Tạo và xác thực chữ ký số

S = H(m)^d mod n (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

 Tạo chữ kí số bằng khóa bí mật của Alice

 Và ký vào tin nhắn Alive gửi cho Bob

Trang 13

 Bob kiểm tra chữ ký số bằng khóa công khai của Alice:

S^e mod n =H(m) với H(m) là giá trị sau khi băm tin nhắn Alice

gửi cho Bob Chữ ký số đúng đắn đồng nghĩa với việc các thông tinAlice gửi bob là đúng đắn

1.1.2 Ứng dụng

- Ứng dụng rõ ràng nhất của mật mã hóa khóa công khai là trong lĩnh vực bảo mật,

an toàn thông tin: Một văn bản được mã hóa bằng khóa công khai của một

người sử dụng thì chỉ có thể giải mã với khóa bí mật của người đó.Các thuật toántạo chữ ký số khóa công khai cho phép định danh một tin nhắn hay 1 tài liệu Một người sử dụng có thể mã hóa văn bản với khóa bí mật của mình Nếu một

người khác có thể giải mã với khóa công khai của người gửi thì có thể tin rằng

văn bản thực sự xuất phát từ người gắn với khóa công khai đó (Đây là nguyên lýsinh & xác thực chữ ký số, người gửi sử dụng khóa bí mật của mình để sinh ra 1chữ ký số cho 1 tin nhắn, tài liệu Bên nhận có thể xác thực tính đúng đắn củachữ ký số đó nhờ vào khóa công khai của người gửi).Các đặc điểm trên còn có

ích cho nhiều ứng dụng khác như: tiền điện tử, thỏa thuận khóa Các vấn đề và

mục đích của đề tài

1.2 Thuật toán và độ phức tạp thuật toán

1.2.1 Thuật toán

- Thuật toán được hiểu là sự đặc tả chính xác của một dãy các bước có thể được thực

hiện một cách máy móc để giải quyết một vấn đề Cần nhấn mạnh rằng, mỗithuật toán có một dữ liệu vào (Input) và dữ liệu ra (Output); khi thực hiện thuậttoán (thực hiện các bước đã mô tả) , thuật toán cần cho ra các kiểu dữ liệu ratương ứng với các dữ liệu vào.[2]

1.2.2 Phân tích thuật toán

1.2.2.1 Tính hiệu quả của thuật toán

- Khi giải một vấn đề, chúng ta cần chọn trong số các thuật toán, một thuật toán

mà chúng ta cho là “tốt” nhất Cơ sở đánh chọn lựa thuật toán :

Trang 14

 Thuật toán đơn giản, dễ hiểu, dễ cài đặt(dễ viết chương trình)

 Thuật toán sử dụng tiết kiệm nhất các nguồn tài nguyên của máy tính vàđặc biệt chạy nhanh nhất có thể được

- Tính hiệu quả của thuật toán bao gồm 2 nhân tố cơ bản :

 Dung lượng không gian nhớ cần thiết để lưu giữ các dữ liệu vào, các kếtquả tính toán trung gian và các kết quả của thuật toán

 Thời gian cần thiết để thực hiện thuật toán(hay thời gian chạy)[3]

1.2.2.2 Đánh giá thời gian thực hiện thuật toán

- Thời gian chạy chương trình phụ thuộc vào các nhân tố chính sau:

 Các dữ liệu vào

 Chương trình dịch để chuyển chương trình nguồn thành mã máy

 Tốc độ thực hiện của các phép toán của máy tính được sử dụng để chạychương trình

- Giả sử T(n) là thời gian thực hiện thuật toán và f(n) là hàm xác địnhdương.T(n)=O(f(n)) nếu $ các hằng số dương c và n0 sao cho T(n) c.g(n)với mọi n>= n0

1.3 Hạ tầng khóa công khai (PKI)

1.3.1 PKI là gì

- Để hiểu rõ về việc xây dựng cơ PKI và vần đề cấp phát chứng thực số có vai trò vàứng dụng như thế nào trong thương mại điên tử Chúng ta sẽ đi phân tích từngkhía cạnh xung quanh PKI

- Trước tiên chúng hiểu thế nào là PKI và tính cấp thiết của PKI hiện nay :

PKI : viết tắt của Public Key Infrastructure tức là hạ tầng cơ sở khóa công

khai Là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứngthực số) cung cấp và xác thực định danh các bên tham gia vào quá trình traođổi thông tin Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong

hệ thống một cặp khóa công khai/khóa bí mật

 Trong kỷ nguyên bùng nổ của công nghệ thông tin, mọi giao dịch từ xa cóthể thông qua internet Tuy nhiên, mặt khác khó mà bảo đảm rằng nhữnggiao dịch trên Internet luôn an toàn Cơ sở hạ tầng khóa công khai (PKI) đãđáp ứng những yêu cầu cấp thiết đó Dựa trên cách sử dụng của chìa khóamật mã công cộng và chữ ký điện tử, một PKI chính là bộ khung của các

Trang 15

chính sách, dịch vụ và phần mềm mã hóa, đáp ứng nhu cầu bảo mật củangười sử dụng.

1.3.2 Cở sở hạ tầng khóa công khai

Hình 1.4 : Mô hình xây dựng PKI cơ bản

- PKI cung cấp một cặp chìa khóa, trong đó có một chìa là chìa khóa công khai(Public key) để có thể sử dụng dịch vụ, chìa còn lại là chìa khóa bí mật (Privatekey) mà người sử dụng phải giữ bí mật Hai chìa khóa này có liên quan mật thiếtđến nhau, sao cho một thông điệp được mã hóa bởi một chìa khóa mật mã côngkhai thì chỉ giải mã được bởi một chìa khóa bí mật tương ứng

- Ví dụ về mô hình xử dụng xác thực :

Giả sử có 2 người dùng Bob và Alice muốn chuyển thư điện tử cho nhau để đảmbảo tính xác thực và bảo mật họ dùng 1 phần mềm PKI

Bob muốn chuyển một thư điện tử đến

cho Alice, với yêu cầu rằng giao dịch

phải chứng minh được chính anh đã gởi

nó đi và nội dung bức thư không bị thay

đổi

Phần mềm PKI dùng chìa khóa cá nhâncủa Bob tạo ra một chữ ký điện tử chobức thư

Trang 16

Bob muốn chắc chắn rằng không ai ngoài

Alice đọc được bức thư này

Phần mềm PKI của Bob dùng chìa khóacông cộng của Alice để mã hóa thôngđiệp của Bob

Alice muốn đọc thư do Bob gởi Phần mềm PKI dùng chìa khóa cá nhân

của Alice để để giải mã thông điệp.Alice muốn kiểm chứng rằng chính Bob

đã gởi đi thông điệp đó và nội dung

thông điệp không bị chỉnh sửa

Phần mềm PKI của Alice dùng chìa khóacông cộng của Bob để kiểm chứng chữ

ký điện tử của anh ta

Bảng 1.5 : Mô hình sử dụng xác thực

1.4 Một vài kiến trúc và công nghệ PKI hiện hành

1.4.1 Một số ứng dụng

- Mục tiêu chính của PKI là cung cấp khóa công khai và xác định mối liên hệ giữa

khóa và định dạng người dùng Nhờ vậy người dùng có thể sử dụng trong một sốứng dụng như:

 Mã hoá Email hoặc xác thực người gửi Email (OpenPGP hay S/MIME)

 Mã hóa hoặc nhận thực văn bản (Các tiêu chuẩn Chữ ký XML* hoặc mãhoá XML* khi văn bản được thể hiện dưới dạng XML)

 Xác thực người dùng ứng dụng (Đăng nhập bằng thẻ thông minh smartcard, nhận thực người dùng trong SSL)

- Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE,SSL): trao đổi khóa bằng khóa bất đối xứng, còn mã hóa bằng khóa đốixứng

1.4.2 Một số hệ thống PKI

- Dưới đây là danh sách một số hệ thống PKI, trong đó một số nhà cung cấp chứng

thực số hàng đầu (ví dụ VeriSign) không được liệt kê vì các phần mềm của họkhông được công bố công khai :

 Hệ thống quản lý chứng thực Red Hat

 Computer Associate eTrust PKI

 Microsoft

Trang 17

 OpenCA (Một mô hình PKI mã nguồn mở)

rõ vai trò và ứng dụng của hạ tầng khóa công khai trong thương mại điện tử

- Tìm hiểu về các thuật toán(sinh số ngẫu nhiên trong việc tạo khóa, hàm băm, mãhóa, tạo chữ ký số )

1.6 Đặt vần đề ?

- Để xây dựng một cơ sở hạ tầng chúng ta phải giải quyết sơ bộ những vấn đề sauđây :

 Làm sao để cấp phát khóa công khai và khóa bí mật cho từng người

 Vấn đề đăng ký khóa công khai với một CA

 Vấn đề thu hồi/cấp phát lại khóa công khai

 Vấn đề kiểm chứng khóa công khai

 Làm sao từ khóa công khai của 1 người hệ thống PKI phải xác định xem chữ

ký số có phải của người đó hay không

 Vấn đề toàn vẹn dữ liệu Hệ thống PKI phải xác định xem liệu tin nhắn gửi đigiữa client và server có bị thay đổi hay không?

 Một thông điệp được mã hóa bởi một chìa khóa mật mã công khai thì chỉ giải

mã được bởi một chìa khóa bí mật tương ứng

 Khóa của bên thứ 3 bên thẩm định sẽ do cấp hay tổ chức nào giám đinh Hayphải có cơ chế nào để chống giả mạo bên chứng thực

 Các Vấn đề liên quan đến chứng thực số cấp phát, xác thực và quản lý tạiserver ra sao

1.7 Các vấn đề sẽ giải quyết trong khóa luận

Trang 18

- Với những yêu cầu về một hệ thống PKI như trên chúng ta phải xây dựng bài toánnhư thế nào.Chương trình thiết kế phải bao gồm 3 đối tượng :

Server :

 Cho phép người dùng trong hệ thống đăng ký khóa công khai Cấp phát 1chứng thực số (certificat) cho người dùng đó nếu khóa công khai hợp lệ

 Quản lý khóa công khai, Thu hồi/cấp phát lại chứng thực số

 Cho phép bên thứ 3 kiểm tra tính đúng đắn của 1 chứng thực số bất kỳ

User :

 Hệ thống PKI cấp phát một khóa công khai cho user và khóa bí mật (Khóariêng) do PKI client cấp phát và user phải giữ bí mật

 Tạo chữ ký số cho từng văn bản ngẫu nhiên

Bên thứ 3 là bên thẩm định và đánh giá :

 Cấp phát và bảo mật Khóa riêng và khóa công khai của CA

Trang 19

Chương 2 : Xây dựng hạ tầng khóa công khai(PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện

tử

2.1 Hàm băm mật mã học

2.1.1 Hàm băm

- Hàm băm (tiếng Anh: hash function) là hàm sinh ra các giá trị băm tương ứng với

mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đoạn tin nhắn ) Giá trị bămđóng vai trò gần như một khóa để phân biệt các khối dữ liệu, tuy nhiên, người tachấp nhận hiện tượng trùng khóa hay còn gọi là đụng độ và cố gắng cải thiện giảithuật để giảm thiểu sự đụng độ đó Hàm băm thường được dùng trong bảng bămnhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc

so sánh các giá trị băm nhanh hơn việc so sánh những khối dữ liệu có kích thước

2.1.3 Đảm bảo tính toàn vẹn dữ liệu

- Hàm băm mật mã học là hàm bam và có tính chất là hàm 1 chiều Từ khối dữliệu hay giá trị băm đầu vào chỉ có thể đưa ra 1 giá trị băm duy nhất Như chúng

ta đã biết đối với tính chất của hàm 1 chiều Một người nào đó dù bắt được giá trịbăm họ cũng không thể suy ngược lại giá trị, đoạn tin nhắn băm khởi điểm

Trang 20

- Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìmmột khối dữ liệu trong một tập hợp Giá trị băm đóng vai trò gần như một khóa

để phân biệt các khối dữ liệu

- Giá trị đầu vào(tin nhắn, dữ liệu ) bị thay đổi tương ứng giá trị băm cũng bị thayđổi Do vậy nếu 1 kẻ tấn công phá hoại, chỉnh sửa dữ liệu thì server có thể biếtngay lập tức

2.1.4 Một số hàm băm thông dụng

2.1.4.1 Thuật toán hàm băm MD5

a Thuật toán hàm băm MD5

- MD5 (Message-Digest algorithm 5) là một hàm băm mật mã được sử dụng

phổ biến, được thiết kể bởi Giáo sư Ronald L Rivest tại trường MIT vào năm

1991 để thay thế cho hàm băm trước đó là MD4 (1990) Là một chuẩnInternet (RFC 1321), MD5 đã được dùng trong nhiều ứng dụng bảo mật vàcũng được dùng phổ biến để kiểm tra tính toàn vẹn của tập tin Cũng như cáchàm băm khác như MD4 và SHS (Secure Hash Standard), MD5 là phươngpháp có ưu điểm tốc độ xử lý rất nhanh, thích hợp với các thông điệp dài vàcho ra giá trị băm dài 128 bit

- Trong MD5, thông điệp ban đầu X sẽ được mở rộng thành dãy bit X có độ dài

là bội của 512 Dãy bit X gồm các thành phần được sắp thứ tự như sau: Dãybit X ban đầu, một bit 1, dãy d bit 0 (d được tính sao cho dãy X cuối cùng làbội của 512), dãy 64 bit l biểu diễn chiều dài của thông điệp Đơn vị xử lýtrong MD5 là các từ 32-bit, nên dãy bit X ở trên sẽ được biểu diễn thành dãycác từ X[i] 32-bit sau:

X=X[0] X[1] X[2] …X[N−1] , với N là bội của 16.[5]

b Phương pháp MD5 có những ưu điểm sau so với phương pháp MD4

- Thay vì có 3 chu kỳ biến đổi như trong MD4, MD5 bổ sung thêm chu kỳ thứ

4 để tăng mức độ an toàn

- Trong mỗi thao tác của từng chu kỳ, MD5 sử dụng hằng số ti phân biệt, trong

khi MD4 sử dụng hằng số chung cho mọi thao tác trong cùng chu kỳ biến đổi

- Hàm G ở chu kỳ 2 của MD4: G(X,Y,Z) = ((XZ)  (XY)  (YZ ))được thay thế bằng G(X,Y,Z) = (XZ)  (Y(Z )) để giảm tính đốixứng

Trang 21

- Mỗi bước biến đổi trong từng chu kỳ chịu ảnh hưởng kết quả của bước biếnđổi trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền (avalanche).

- Các hệ số dịch chuyển xoay vòng trong mỗi chu kỳ được tối ưu hóa nhằmtăng tốc độ hiệu ứng lan truyền Ngoài ra, mỗi chu kỳ sử dụng 4 hệ số dịchchuyển khác nhau

- Lý do MD5 được thiết kế thay thế cho MD4 là vì các phân tích chỉ ra rằngphương pháp MD4 có vẻ không an toàn Den Boer và Bosselaers đã chỉ ra cácđiểm yếu trong MD4 trong một bài báo được đăng vào năm 1991và một tấncông xung đột đầu tiên được tìm thấy bởi Han Dobbertin vào năm 1996

- Tuy nhiên, các nỗ lực tấn công, phân tích của các nhà nghiên cứu cho thấyMD5 cũng không còn an toàn và cần được thay thế bằng một thuật toán bămkhác như các công bố của Den Boer và Bosselaers năm 1993; của HansDobbertin năm 1996; của nhóm tác giả Xiaoyun Wang, Dengguo Feng,Xuejia Lai, và Hongbo ngày 19/8/2004; của Arjen Lenstra, Xiaoyun Wang,

và Benne de Weger ngày 1/3/2005; và của Vlastimil Klima, …

2.1.4.2 Chuẩn băm an toàn SHS

- SHS (Secure Hash Standard) là chuẩn gồm tập hợp các thuật toán băm mật

mã an toàn (Secure Hash Algorithm – SHA) như 1, 224,

SHA-256, SHA-384, SHA-512 do NIST2 và NSA3 xây dựng

- Phương pháp SHA-1 (cũng như SHA-0) được xây dựng trên cùng cơ sở vớiphương pháp MD4 và MD5 Tuy nhiên, phương pháp SHA-1 sử dụng trên hệthống Big-endian5 thay vì Little-endian6 như phương pháp MD4 và MD5.Ngoài ra, hàm băm SHA-1 tạo ra thông điệp rút gọn kết quả có độ dài 160 bitnên thường được sử dụng

- Phương pháp SHA-1 giống với MD5 (cải tiến từ MD4) nhưng thông điệp tómtắt được tạo ra có độ dài 160 bit Dưới đây là một số điểm so sánh giữa MD5

và SHA-1:

 Giống như MD5, SHA-1 cũng thêm chu kỳ thứ 4 để tăng mức độ antoàn cho thuật toán Tuy nhiên, chu kỳ 4 của SHA-1 sử dụng lại hàm fcủa chu kỳ thứ 2

Trang 22

 Trong SHA-1, 20 bước biến đổi trong cùng một chu kỳ sử dụng cùngmột hàng số K[t] Trong khi đó, mỗi bước biến đổi trong cùng một chu

kỳ của MD5 sử dụng các hằng số khác nhau

 So với MD4, hàm G trong MD5 được thay thế thành hàm mới để làmgiảm tính đối xứng Trong khi SHA-1, hàm G trong SHA-1 vẫn giữ lạihàm G của MD4

 Cả MD5 và SHA-1, mỗi bước biến đổi trong từng chu kỳ chịu ảnhhưởng kết quả của biến đổi trước, vì vậy làm tăng nhanh tốc độ của hiệuứng lan truyền

Hình 2.1: Đặc điểm của các thuật toán băm SHA

2.2 Mã hóa thông tin

- Có rất nhiều thông tin mà chúng ta không muốn người khác biết khi gửi đi như:thông tin về Credit-Card, thông tin về kinh doanh của công ty, thông tin về tài khoản

cá nhân, thông tin về cá nhân như số chứng minh thư, số thẻ

- Các thông tin bí mật được cung cấp cho các máy tính quan mạng Internet bằng nhiềuphương thức khác nhau ví dụ : Một cách bảo mật đơn giản nhưng minh bạchnhất là lưu các thông tin bí mật trên các bộ nhớ có thể xoá được (RemovableStorage) như đĩa mềm Tuy nhiên dạng bảo mật phổ biến nhất vẫn là dựa vào quátrình mã hoá dữ liệu (Encryption)

- Các hệ thống mã hoá trong máy tính phổ biến nhất thuộc một trong hai loại sau:

 Mã hoá với khoá đối xứng (Symmetric-key Encryption) : Trong phương pháp

mã hoá với khoá đối xứng, mỗi máy tính có một khoá bí mật (dạng mã) dùng

Trang 23

để mã hoá các gói thông tin trước khi chúng được gửi qua mạng tới các máytính khác Phương pháp mã hoá với khoá đối xứng đòi hỏi người sử dụng phảixác định được những máy tính nào đang liên lạc trao đổi thông tin với nhau đểcài đặt khoá này trên mỗi máy.

 Mã hoá với khoá công khai (Public-key Encryption).[6]

2.3 Chữ ký số

2.3.1 Chữ ký số

- Chữ ký số (Digital Signature) chỉ là tập con của chữ ký điện tử Chữ ký số là

chữ ký điện tử dựa trên kỹ thuật mã hóa với khóa công khai, trong đó, mỗi người

có một cặp khóa (một khóa bí mật và một khóa công khai) Khóa bí mật khôngbao giờ được công bố, trong khi đó, khóa công khai được tự do sử dụng Để traođổi thông điệp bí mật, người gửi sử dụng khóa công khai của người nhận để mãhóa thông điệp gửi, sau đó, người nhận sẽ sử dụng khóa bí mật tương ứng củamình để giải mã thông điệp

- Chữ ký điện tử là thông tin được mã hoá bằng Khoá riêng của người gửi, đượcgửi kèm theo văn bản nhằm đảm bảo cho người nhận định danh, xác thực đúngnguồn gốc và tính toàn vẹn của tài liệu nhận được Chữ ký điện tử thể hiện vănbản gửi đi là đã được ký bởi chính người sở hữu một Khoá riêng tương ứng vớimột Chứng chỉ điện tử nào đó.”

- Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình sử dụng các

kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa công khai - bí mật

và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật.Khóa công khai thường được phân phối thông qua chứng thực khóa công khai.Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký.[7]

2.3.2 Tạo và kiểm tra chữ ký số

2.3.2.1 Các thuật toán chữ ký số thông dụng

- Chữ ký số giúp xác định được người tạo ra hay chịu trách nhiệm đối với mộtthông điệp được ký Một phương pháp chữ ký số phải bao gồm ít nhất 3 thuật

toán chính, đó là thuật toán dùng để tạo khóa, thuật toán dùng để tạo ra chữ

ký số và thuật toán tương ứng để xác nhận chữ ký số.

Trang 24

2.3.2.2 Thuật toán chữ ký số RSA

- Phương pháp chữ ký số RSA được xây dựng dựa trên thuật toán mã hóa khóacông khai RSA Để tạo một cặp khóa, RSA thực hiện các bước sau:

 Chọn 2 số nguyên tố lớn ngẫu nhiên p, q Nhằm có sự an toàn tối đanên chọn p và q có độ dài bằng nhau

 Tính n=pq và φ=(p−1)(q−1)

 Chọn ngẫu nhiên một số nguyên e (1<e<φ) sao cho gcd(e, φ)=1 vớigcd là ước số chung lớn nhất

 Tính: d=e−1 mod φ

- Kết quả là ta có được cặp khóa: khóa công khai (n,e) và khóa bí mật (n,d).

Hai người sẽ sử dụng chung một hàm băm ℋ an toàn trước hiện tượng xungđột Để ký một thông điệp m, người ký thực hiện các bước sau:

Dùng hàm băm ℋ để băm thông điệp m: h=ℋ(m).

 Chấp nhận chữ ký nếu h′=h Ngược lại từ chối chữ ký

2.3.2.3 Thuật toán chữ ký số DSA

- Thuật toán chữ ký số DSA (Digital Signature Algorithm) được đề nghị bởiNIST vào tháng 8/1991 để sử dụng trong chuẩn chữ ký số DSS (DigitalSignature Standard), được chỉ ra trong FIPS 186, được chấp nhận năm 1993.Một sửa đổi nhỏ được đưa ra ngày năm 1996 trong FIPS 186-1, chuẩn được

mở rộng hơn năm 2000, được xem như xem như FIPS 186-2 Việc tạo khóagồm hai bước Bước thứ nhất là lựa chọn các tham số cho thuật toán đượcchia sẻ giữa các người sử dụng khác nhau trong cùng hệ thống:

Trang 25

 Chọn một hàm băm mã hóa ℋ Trong DSS chuẩn ℋ luôn là SHA-1,nhưng các hàm băm tốt hơn trong nhóm SHA cũng đang được sửdụng Đôi khi đầu ra của một thuật toán băm mới hơn bị rút ngắn kíchthước so với các thuật toán băm mới cũ để tương tích với cặp khóahiện có

 Chọn kích thước khóa L Đây là thước đo chính quyết định sức mạnh

mã hóa của khóa DSS chuẩn ràng buộc L là bội số của 64 và512≤L≤1024 Sau đó, FIPS 186-2 xác định L luôn là 1024 Không lâusau, NIST 800-57 đề nghị độ dài khóa là 2048 (hoặc 3072) để thời gian

an toàn đến năm 2010 (hoặc 2030), sử dụng tương ứng với các giá trịbăm và q dài hơn Bản thảo FIPS 186-3 cũng tính đến các hàm bămsau này và các khóa dài hơn

 Chọn một số nguyên tố q cùng số bit với đầu ra của ℋ

 Chọn một số nguyên tố p độ dài L bit sao cho p–1 là bội của q Tức làp=qz–1 với số nguyên z nào đó

 Chọn g = h( p 1 ) /q mod p với h bất kỳ (1<h<p–1), và chọn lại nếu kếtquả là 1 Hầu hết cách chọn h đều nhận được g có thể sử dụng, thôngthường chọn h=2

- Các tham số thuật toán (p,q,g) có thể chia sẻ giữa những người khác nhautrong hệ thống Bước thứ hai tính các khóa bí mật và khóa công khai của từngngười :

 Chọn x ngẫu nhiên sao cho 0<x<q

 Tính y=gx mod p

 Khóa công khai là (p,q,g,y), khóa bí mật là x

- Phiên bản FIPS 186-3 sắp tới sử dụng SHA-224/256/384/512 là các hàm băm,kích thước của q là 224 (hoặc 256 bit), và L bằng 2048 (hoặc 3072)

- Để ký một thông điệp m, người ký thực hiện các bước sau:

 Phát sinh một số ngẫu nhiêu k (0<k<q) cho mỗi thông điệp

 Tính r=(gk mod p) mod q

 Tính s = k 1(ℋ(m) + xr)) mod q

 Tính toán lại chữ ký trong trường hợp không chắc chắn r=0 hoặc s=0

Trang 26

 Chữ ký là (r,s).

- Để xác nhận chữ ký, người nhận thực hiện các bước sau:

 Loại bỏ chữ ký nếu 0<r<q hoặc 0<s<q không thỏa mãn

- Tính đúng đắn của giải thuật được chứng minh như sau:

 Đầu tiên, nếu g = h( p 1)/qmod p suy ra gp=h p 1−1=1 (mod p) theođịnh lý Fermat nhỏ Bởi vì g>1 và q là số nguyên tố nên g có bậc q

 Người ký tính s = k 1(ℋ(m) + xr)) mod q

 Như vậy k=ℋ(m)s 1 +xrs 1=ℋ(m)w+xrw (mod q)

 Bởi vì g có bậc q nên ta có:

gk =gH(m)w.gxrw=gH(m)wyrw=gu1 yu2 (mod p)

 Cuối cùng, tính đúng đắn của DSA suy ra từ:

r= (gk mod p) mod q= (gu1 yu2 mod p) mod q=v

- Phương pháp DSA đã giải quyết vấn đề này bằng cách sử dụng chữ ký 320 bitcho văn bản 160 bit với các phép tính được thực hiện trên tập con có 2160phần tử với p là số nguyên tố 512 bit

2.3.2.4 Kết quả thử nghiệm và nhận xét

- So sánh RSA và DSA

 Để so sánh tốc độ của hai thuật toán chữ ký số RSA và DSA, Thửnghiệm 2.2 dưới đây đã được tiến hành và ghi nhận

 Thử nghiệm 2.2: DSS chuẩn ràng buộc độ dài khóa L là bội số của 64

và 512≤L≤1024 và để an toàn lâu dài độ dài khóa L được đề nghị là

2048 hoặc 3072 Do đó độ dài khóa được thử nghiệm cho cả RSA vàDSA là 576, 640, 704, 768, 832, 896, 960, 1024, 2048, 3072 (bit) Ứngvới mỗi độ dài khóa, lần lượt cho cả RSA và DSA phát sinh khóa, ký

Ngày đăng: 23/11/2012, 15:03

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Cấp phát khóa riêng khóa công khai - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 1.1 Cấp phát khóa riêng khóa công khai (Trang 10)
Hình 1.2: Mã hóa thông tin - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 1.2 Mã hóa thông tin (Trang 11)
Hình 1.3:  Tạo và xác thực chữ ký số - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 1.3 Tạo và xác thực chữ ký số (Trang 12)
Hình 1.4 : Mô hình xây dựng PKI cơ bản - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 1.4 Mô hình xây dựng PKI cơ bản (Trang 15)
Hình 2.1: Đặc điểm của các thuật toán băm SHA - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 2.1 Đặc điểm của các thuật toán băm SHA (Trang 22)
Bảng 2.2 So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký của RSA - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Bảng 2.2 So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký của RSA (Trang 27)
Hình 2.3 : Thời gian tạo khóa của RSA và DSA - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 2.3 Thời gian tạo khóa của RSA và DSA (Trang 28)
Hình 2.5 : Thời gian xác nhận chữ ký của RSA và DSA - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 2.5 Thời gian xác nhận chữ ký của RSA và DSA (Trang 29)
Hình 3.1 : Hàm tạo cặp khóa riêng và khóa công khai - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 3.1 Hàm tạo cặp khóa riêng và khóa công khai (Trang 39)
Hình 3.2 : Mô phỏng tạo khóa - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 3.2 Mô phỏng tạo khóa (Trang 40)
Hình 3.3 : Tạo chữ ký số - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 3.3 Tạo chữ ký số (Trang 41)
Hình 3.4 : Form nhập thông tin của client - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 3.4 Form nhập thông tin của client (Trang 42)
Hình 3.5 : Thông báo trả về khi kết quả gửi thông tin thành công - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 3.5 Thông báo trả về khi kết quả gửi thông tin thành công (Trang 46)
Hình 3.7 :  cấp phát chứng thực số - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 3.7 cấp phát chứng thực số (Trang 47)
Hình 3.8 : Kiểm tra thông tin và cấp phát chứng thực số - Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng dụng trong thương mại điện tử
Hình 3.8 Kiểm tra thông tin và cấp phát chứng thực số (Trang 48)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w