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

đồ án môn bảo mật thông tin digital signature

37 811 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 37
Dung lượng 1,93 MB

Nội dung

Khi sử dụng chữ ký số ta có thể kiểm tra được tính xác thực của thông điệp.. Không giống với MAC Message Authentication Code, hàm băm không dùng khóa để tính mã xác thực, thay vào đó là

Trang 1

Đồ Án Môn Bảo Mật Thông Tin

Digital Signature

GVHD: Th.s Lê Phúc Nhóm thực hiện:

Nguyễn Thị Huyền Trần Thị Thu Hồng Trần Quốc Việt

Trang 2

5 Giải thuật SHA-1

III Thuật toán tạo chữ ký số

1 Giải thuật DSA

2 Giải thuật RSA

IV Phụ lục

1 SHA-256

2 SHA-384 và SHA-512

3 Thuật toán kiểm tra số nguyên tố

4 Thuật toán sinh 2 số nguyên tố p và q trong giải thuật DSA

V Ví dụ

1 SHA-1

2 DSA

3 RSA

Trang 3

Digital Signature 3

VI Chương trình minh họa

1 Các chức năng chính

2 Sơ lược về việc ký và xác minh

3 Giao diện chương trình

Tài liệu tham khảo

Trang 4

An toàn thông tin bao gồm các nội dung sau:

 Tính bí mật: tính kín đáo riêng tư của thông tin

 Tính xác thực: bao gồm xác thực đối tác, xác thực thông tin trao đổi

 Tính trách nhiệm: bảo đảm người gởi không thoái thác trách nhiệm về thông tin mình đã gởi

 Tính toàn vẹn: thông điệp nhận được không bị thay đổi một cách ngẫu nhiên hay

cố ý

Bảo vệ an toàn thông tin là một chủ đề rộng liên quan đến nhiều lĩnh vực và trong thực tế có nhiều phương pháp để thực hiện bảo vệ an toàn thông tin Phương pháp đạt hiệu quả và kinh tế nhất hiện nay là bảo vệ an toàn thông tin bằng biện pháp thuật toán (Mật mã thông tin)

Mật mã thông tin là việc biến đổi thông tin thành một dạng khác nhằm che dấu nội dung, ý nghĩa thông tin Ngày nay, rất nhiều ứng dụng mã hóa và bảo mật thông tin được

sử dụng trong nhiều lĩnh vực khác nhau trên thế giới như an ninh, quân sự, quốc phòng cho đến các ứng dụng thương mại điện tử ngân hàng

Trong những năm gần đây sự phát triển của khoa học máy tính và Internet càng cho thấy tầm quan trọng của mật mã thông tin Ứng dụng của mật mã thông tin không chỉ đơn thuần là mã hóa và giải mã thông tin nó còn được dùng trong việc chứng thực nguồn gốc thông tin, xác thực người sở hữu mã hóa, các quy trình giúp trao đổi thông tin và thực hiện trao đổi an toàn trên mạng Sự phát triển nhanh chóng của Internet đã kéo theo một loạt các dịch vụ mới ra đời như trò chuyện, quảng cáo, đặt hàng, mua hàng qua Internet Trong số đó thì các dịch vụ thương mại điện tử là một bước nhảy vọt trong việc ứng dụng của Internet vào cuộc sống và kinh doanh

 Ưu điểm: việc trao đổi thông tin, dữ liệu không cần qua giấy tờ, tiện lợi trong giao dịch

 Nhược điểm: vấn đề xác thực nguồn gốc và nội dung thông tin

I.2 Chữ ký số (Digital Signature):

Trang 5

Digital Signature 5

Là một kỹ thuật giúp sự phát triển của thương mại điện tử, giúp việc trao đổi dữ liệu

được tin cậy hơn Chữ ký số chứng minh rằng một thông điệp đã thực sự được gởi được

chính người gởi mà không phải của kẻ khác giả mạo Khi sử dụng chữ ký số ta có thể

kiểm tra được tính xác thực của thông điệp Nó không chỉ kiểm tra được thông tin về

người gởi mà còn có thể kiểm tra được cả thông tin về thông điệp, giúp ta có thể biết

được thông điệp có bị giả mạo hay can thiệp gì không trong quá trình vận chuyển

Chữ ký số cung cấp các chức năng quan trọng như: tính xác thực (authentication),

tính bí mật (confidentiatly), tính toàn vẹn dữ liệu (data integrity), tính không thoái thác

lệ

Trang 6

Digital Signature 6

II Kiến thức nền tảng:

II.1 Thuật ngữ:

 Message/Data: thông điệp dữ liệu ban đầu chưa qua quá trình xử lý (plaint-text)

 CA (Certification Authority): một thực thể trong hạ tầng khóa công khai (PKI) đảm nhiệm việc cấp phát chứng chỉ và những đòi hỏi từ chính sách PKI

 PKI (Public Key Infrastructure): một cơ cấu được tổ chức để cấp phát, duy trì, và loại bỏ những chứng chỉ khóa công cộng

 Hash function: là hàm ánh xạ từ một chuối bit có kích thước tùy ý sang một chuỗi

có kích thước cố định

 Message Digest: kết quả của sự tính toán hàm băm trên thông điệp nguồn (cũng được hiểu như là hash value)

 Key pair: cặp public key và private key

 Private key: là một khóa trong thuật toán mã hóa bất đối xứng Trong chữ ký số khóa này có mối quan hệ toán học với public key và không được công khai

Private key thường dùng để tạo chữ ký số và được xác minh bằng public key tương ứng

 Public key: là một khóa trong thuật toán mã hóa bất đối xứng Khóa này có quan

hệ toán học với private key và được công khai Đối với chữ ký số, public key được dùng để xác minh chữ ký đã được ký với private key tương ứng

II.2 Mã hóa đối xứng (Symmetric Cryptography):

Người gởi và người nhận sẽ dùng chung một khóa để mã hóa và giải mã dữ liệu Trước khi mã hóa dữ liệu gởi đi trên mạng người gởi và người nhận phải thống nhất khóa

và thuật toán mã Một số thuật toán ứng dụng của mã hóa bí mật: DES, 3DES, RC2, RC4

 Ưu điểm:

 Có thể hỗ trợ bằng phần cứng, đạt hiệu quả cao Khóa tương đối ngắn

 Có thể kết hợp để tạo ra các thuật toán mã hóa mạnh hơn

 Khóa bí mật cần được trao đổi thường xuyên

II.3 Mã hóa bất đối xứng (Asymmetric Cryptography)

Trang 7

Digital Signature 7

Hay còn gọi là phương pháp mã hóa công khai giải quyết được vấn đề phải trao đổi khóa bí mật của mã hóa đối xứng Với phương pháp mã hóa công khai mỗi thực thể duy trì 2 khóa là public key và private key Public key được công khai trên mạng trong khi Private Key thì được giữ kín Hai khóa này có quan hệ với nhau nhưng tính năng thì trái ngược nhau, một khóa dùng cho việc mã hóa, còn khóa kia dùng cho việc giải mã

 Ưu điểm:

 Chỉ có Private key cần được giữ bí mật với điều kiện việc công khai Public key cần được đảm bảo

 Cặp khóa riêng và công khai có thể sử dụng trong thời gian dài

 Nhiều mô hình khóa công cộng được phát triển hình thành nên các kỹ thuật chữ ký số hiệu quả

 Trong mạng lớn số lượng khóa quan tâm ít hơn nhiều so với việc dùng khóa đối xứng

 Khuyết điểm:

 Tốc độ cho các phương thức mã hóa công khai chậm hơn rất nhiều so với các mô hình mã hóa đối xứng

 Kích thước khóa lớn hơn rất nhiều so với mã hóa đối xứng

 Không có mô hình mã hóa công khai nào được chứng minh là an toàn Phần lớn các mô hình mã hóa hiện nay có sự an toàn dựa trên các giả thuyết của của một tập nhỏ các vấn đề lý thuyết số học

 Không có bề dày lâu đời như hệ mã hóa đối xứng, nó chỉ được tìm ra vào những năm 1970

II.4 Hàm băm (hash function):

Hash function ánh xạ giữa một thông điệp có chiều dài bất kì thành một giá trị băm có kích thước cố định (message digest) Dùng với mục đích xác thực thông điệp

II.4.1 Điều kiện xác thực

Trong quá trình truyền dữ liệu qua mạng có một số loại hình tấn công sau:

 Mạo danh (Masquerade): gởi những thông điệp vào mạng từ nguồn giả Đây là việc tạo các thông điệp từ một thực thể nào đó mà đã được xác thực

 Chỉnh sửa nội dung (content-modification): việc thay đổi nội dung của thông điệp như là thêm, sửa, xóa

 Chỉnh sửa thứ tự (Sequence-modification): chỉnh sửa thứ tự các thông điệp gởi giữa thực thể như là việc thêm, sửa, sắp xếp lại

 Chỉnh sửa thời gian (timing-modification): làm trì hoãn hay phát lại thông điệp

 Nguồn từ chối (Source Repudiation): nguồn từ chối đã truyền thông điệp

Trang 8

Digital Signature 8

 Đích từ chối (Destination Repudiatin): đích từ chối nhận thông điệp

Nói chung, việc xác thực thông điệp là một thủ tục để xác minh tính thông điệp nhận được từ một nguồn hợp lệ và không bị thay đổi Xác thực thông điệp cũng có thể xác minh thứ tự và tính hơp thời của thông điệp Chữ ký số cũng là một kỹ thuật xác thực có khả năng chống lại tính chối cãi của nguồn

II.4.2 Hash function

Hàm băm một chiều là một loại mã xác thực Chấp nhận đầu vào là một thông điệp có chiều dài bất kì và đầu ra là một mã băm có chiều dài cố định, gọi là hash code H(M) Không giống với MAC (Message Authentication Code), hàm băm không dùng khóa để tính mã xác thực, thay vào đó là một hàm được thao tác trên thông điệp

II.4.3 Tính bảo mật của hàm băm

Đối với hệ mã hóa đồng bộ và bất đồng bộ, ta có thể chia cách tấn công vào hàm băm thành hai loại chính là: Brute force và phân tích (cryptanalysis)

II.4.3.1 Brute force attack:

Độ mạnh của hàm băm phụ thuộc vào độ dài của hash code khi sinh ra bởi thuật toán Một vài thuộc tính của hàm băm:

 One way (một chiều): cho giá trị h, không thể tìm ra x để H(x)=h Cần thử 2n

lần

 Đụng độ yếu (weak conllistion restriction): cho trước khối x, không thể tìm khối

y ≠ x sao cho H(y) = H(x) Cần thử 2n

II.5 Giải thuật hàm băm bảo mật SHA

 Hàm băm (hash function) hiệu quả trong quá trình xác thực thông điệp, xem như

là một fingerprint cho thông tin Một giá trị h được sinh bởi hàm H có dạng:

h=H(M)

 Trong đó M là thông điệp có chiều dài tùy ý, h gọi là giá trị băm có chiều dài cố định Giá trị băm này được đính kèm với thông điệp nguồn, bên nhận sẽ xác thực

Trang 9

Digital Signature 9

thông điệp đó thông qua việc tính toán lại giá trị băm Do bản thân hàm băm tự nó

không bí mật nên cần có biện pháp bảo vệ giá trị băm

Thuật toán SHA: có 4 thuật toán: SHA-1, SHA-256, SHA-384 và SHA-512

Đây là những hàm băm một chiều (one-way hash function) có thể xử lý một thông

điệp để tạo ra Message Digest Những giải thuật này đảm bảo tính toàn vẹn của

thông điệp: bất kì sự thay đổi nào trong thông điệp gốc sẽ có khả năng phát hiện ra

sự thay đổi đó Điều này rất có ý nghĩa trong vấn đề tạo và xác minh chữ ký số

Mỗi thuật toán SHA đều trải qua 2 quá trình đó là tiền xử lý và tính toán hash

value Tiền xử lý bao gồm quá trình: padding, chia thông điệp sau khi thêm bit

thành N blocks m-bits, khởi tạo một số giá trị cho việc tính giá trị băm (W, H[i],

K) Tiếp đó là quá trình tính toán tìm giá trị băm thông qua một quy trình lặp

Sự so sánh giữa các giải thuật SHA:

Hình 2- Các thuộc tính của SHA

Chi tiết giải thuật SHA-1: ( Các giải thuật SHA-2 xem trong phần phụ lục)

Block size: 512 bits=64bytes

Word size=32 bits

Message Digest=160bits

Message size < 264

 Thêm bit (padding)

Giả sử chiều dài của thông điệp M là ℓ bits Thêm bit “1” vào sau chuỗi, tiếp đó là k bit 0 (k≥0) sao cho k này là nhỏ nhất thỏa điều kiện sau:

ℓ+1+k ≡ 448 mod 512 Phần còn lại là 64 bits để mô tả chiều dài thực của thông điệp M ℓ bits

Ví dụ: giả sử M=”abc”

Vậy ℓ=24, M thêm 1 bit 1 và 448-ℓ-1=448-24-1=423 bits 0 Sau đó thêm 64bits còn lại mô tả chiều dài chuỗi

Trang 10

Digital Signature 10

Điều này tương tự với các thông điệp có kích thước nhiều khối, sau khi thêm thì chiều dài thông điệp chia hết cho 512

 Chia nhỏ thông điệp đã thêm bit:

Sau khi thông điệp được thêm bit nó cần được chia thành những khối 512 bits (độ dài này tùy theo giải thuật SHA)

 Khởi tạo giá trị H:

Vì đơn vị xử lý của SHA-1 là 32 bits nên:

H0 (0)

Trang 11

Digital Signature 11

3 For t=0 to 79 {

}

4 Tính hash value thứ i:

} Sau khi thực hiện qua N block ta thu được Message Digest của thông điệp

Trang 12

Digital Signature 12

III Các thuật toán Chữ ký số

Việc dùng mã xác thực chỉ có thể bảo vệ hai thực thể tham gia trong phiên giao dịch đối với sự xâm phạm của thực thể thứ 3, tuy nhiên lại chưa có thể bảo vệ giữa hai thực thể với nhau Ví dụ: giả sử A gởi cho B một thông điệp đã được xác thực theo mô hình sử dụng mã xác thực thông điệp (MAC), A có thể tạo ra một thông điệp khác và tính toán MAC dựa vào key share giữa A và B, lúc này A nói thông điệp mà A tạo ra là do B gởi,

B không có khả năng chứng minh điều này là sai

Giải pháp để giải quyết vấn đề này là chữ ký số Chữ ký số có khả năng:

 Xác minh người ký và thời điểm ký

 Xác minh nội dung thông điệp tại thời điểm ký

 Có thể xác minh bởi thực thể khác giải quyết việc tranh cãi của hai thực thể này

Có hai kỹ thuật tạo chữ ký:

 Ký trực tiếp (Direct Digital Signature): hai thực thể tham gia truyền thông trực tiếp

ký trên thông điệp, đòi hỏi đích phải biết public key của nguồn để xử lý trong quá trình xác minh Chữ ký số này có thể là việc mã hóa cả thông điệp với private key hay việc mã hóa hash code của thông điệp với khóa riêng Vấn đề bảo mật khóa riêng trong kỹ thuật ký trực tiếp

 Ký qua trọng tài:

Trang 13

E([IDX + E(M, Kxy)], Kay) + E([IDX + H(E(M, Kxy)) + T], Kxa)

 Trường hợp 3: sử dụng mã bất đối xứng, trọng tài không thể xem nội dung thông tin

Theo mô hình chữ ký số trên khóa riêng dùng trong quá trình sinh chữ ký, chỉ có chủ

sở hữu mới có thể sinh chữ ký, do đó khóa riêng này cần được giữ bí mật Những kỹ thuật chữ ký số được thiết kế để ngăn cản những kẻ tấn công tuy không biết khóa bí mật nhưng vẫn có thể sinh ra chữ ký đúng trên các thông điệp

Khóa công khai dùng trong quá trình xác minh chữ ký số, nó không cần được giữ bí mật nhưng tính toàn vẹn cần được đảm bảo Bất kì ai cũng có thể xác minh một thông điệp được ký đúng dùng khóa công khai thích hợp

Trang 14

Digital Signature 14

Đối với cả hai quá trình sinh chữ ký và xác minh chữ ký, thông điệp được ánh xạ

thành một giá trị có chiều dài cố định (hash value) Cần có sự đảm bảo khóa công cộng

dùng để xác minh là của thực thể đã ký thông điệp

Mô hình chữ ký số cũng giống mô hình mã hóa công khai do vậy thuật toán RSA có

thể áp dụng để xây dựng chữ ký số Hiện nay có 2 thuật toán chữ ký số thông dụng là:

RSA, DSA

 Yêu cầu chữ kí số:

 Chữ ký phải dựa vào thông điệp được ký

 Chứa thông tin duy nhất của người gởi để tránh giả mạo

 Dễ dàng tạo chữ ký

 Dễ nhận diện và xác nhận chữ ký số

 Khó khăn giả mạo chữ ký

Để có thể sử dụng chữ ký số ta cần sử dụng một hàm băm để rút gọn thông

điệp có chiều dài bất kì thành một giá trị băm có kích thước cố định Giá trị

này có thể được kiểm chứng tính toàn vẹn thông tin

 Đặc điểm của chữ ký số:

 Tính xác thực: bảo đảm người ký là người tạo ra nó

 Tính an toàn: không thể giả chữ ký nếu như không biết thông tin bí mật tạo

chữ ký

 Không thể dùng lại: một chữ ký số không thể dùng cho một tài liệu khác

 Không thể phủ nhận: người ký không thể phủ nhận thông tin đã ký

 Tính hiệu quả: ký và xác minh nhanh chóng dễ dàng

 Hai mô hình chữ ký số:

(a) Tiếp cận RSA

Trang 15

Digital Signature 15

(b)Tiếp cận DSA

Hình 3 – Mô hình tạo và xác minh chữ ký số

III.1 Thuật toán DSA:

Mỗi bản ký kết sử dụng một cặp khóa, một khóa riêng x và một khóa chung y có mối

quan hệ toán học với nhau Khóa riêng được sử dụng trong một khoảng thời gian cố định

khi mà chữ ký số được sinh ra, còn khóa công cộng sẽ vẫn còn được sử dụng khi mà chữ

ký đã được sinh ra đó còn cần xác minh

Thuật toán DSA tính toán trên một tập các tham số, một khóa riêng x, một số bí mật

trên từng thông điệp k, dữ liệu cần được ký, và một hàm băm Đối với quá trình xác minh

cũng sử dụng các tham số, một khóa công khai y có mối quan hệ toán học với x, dữ liệu

cần được xác minh, hàm băm sử dụng trong lúc ký

p là số nguyên tố mà 2L-1 <p< 2L , L là chiều dài bit của p

q là số nguyên tố chia hết bởi (p-1), 2N-1 <q< 2N , N là chiều dài bit của p

g là một nhóm phụ của p và q, trong đó 1<g<p

x là khóa riêng, cần giữ bí mật, 1<x<q

y là khóa công khai, y=gx mod p

k là số bí mật được sinh ra trên từng thông điệp, 1<k<q

III.1.1 Lựa chọn những tham số chiều dài hàm băm cho DSA

Giả sử gọi L và N lần lượt là số bit chiều dài của p và q Chuẩn DSA nêu một số đặc tính

kỹ thuật cho 2 tham số này

L=1024, N=160

L=2048, N=224

L=2048, N=256

L=3028, N=256

Độ mạnh bảo mật của thuật toán DSA bé hơn độ mạnh bảo mật của của cặp (L,N) và độ

mạnh bảo mật của hàm băm Kết hợp cả hai yếu tố này sẽ xác định được độ mạnh bảo

mật của chữ ký số

Trang 16

Digital Signature 16

III.1.2 Những tham số DSA

Thuật toán DSA đòi hỏi cặp khóa chung và riêng sử dụng cho quá trình sinh và xác minh chữ ký số được sinh ra từ một tập các tham số riêng Những tham số này có thể đại diện cho một nhóm người sử dụng và có thể là công khai Một người sử dụng của một tập tham số sẽ phải có sự đảm bảo khi muốn sử dụng chúng Tập tham số này có thể được sử dụng trong khoảng thời gian cố định

Miền tham số của DSA là các số nguyên p, q, g

Các xử lý trong DSA:

 Tạo khóa chung:

 Tạo 1 số nguyên tố p đủ lớn chiều dài từ 512-1024 bits, là bội số chiều dài

 Tạo khóa công khai y

 Khóa công khai là số nguyên y thỏa:

Trang 17

Digital Signature 17

Hình 4 – Ký và xác minh DSA

III.2 Thuật toán RSA

Thuật toán RSA do 3 nhà toán học Ron Rivest, Adi Shamir và Len Adleman tại đại học MIT vào năm 1977 và được công bố vào năm 1978 Thuật toán này thiết kế theo hệ thống mã công khai

Sự khác biệt giữa một hệ thống mã bí mật (mã đồng bộ) với một hệ mã công khai là

hệ mã công khai sử dụng 2 khóa để thực hiện mã hóa và giải mã, còn trong hệ mã bí mật thì dùng 1 khóa cho cả hai quá trình này

Các bước thực hiện thuật toán RSA:

Trang 18

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

Hình 5 - Mô hình chữ ký số dùng RSA

Khi A muốn gởi một thông điệp M cho B, A tính giá trị băm của M, sau đó dùng khóa riêng của mình để mã hóa giá trị băm đó, cuối cùng đính kèm phần mã băm đã mã hóa vào thông điệp gốc gởi cho B Quá trình xác thực tại B, B tính toán lại mã băm dựa trên thông điệp thu được, dùng PU của A để giải mã phần mã băm đã bị mã hóa bởi A, tiến hành so sánh hai giá trị này với nhau, nếu trùng thì tính toàn vẹn của dữ liệu được đảm bảo

*Tính bảo mật của phương pháp:

Do không có cách nào để chứng tỏ một chiến lược bảo mật nào tồn tại mà chỉ có cách kiểm tra để xem có khả năng phá vỡ nó hay không Sau đây là cách để xác định khóa bí mật từ việc biết được khóa công khai của người gởi thông qua việc phân tích n thành thừa

số, theo đánh giá thì nếu hiện thực thì phương pháp này xem ra là hiệu quả nhất

Như chúng ta đã biết n được tạo ra từ hai số nguyên tố p, q Trong việc công bố khóa công khai sẽ tiết lộ n và e Nếu từ việc phân tích n thu được giá trị p và q đúng thì ta có thể suy ra được khóa bí mật

Ngày đăng: 27/06/2014, 14:21

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