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

TÌM HIỂU VỀ CHỮ KÝ SỐ GIẢI PHÁP VÀ ỨNG DỤNG CHỮ KÝ SỐ TẠI VIỆT NAM

21 21 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 21
Dung lượng 1,95 MB

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

Nội dung

MÔN AN TOÀN DỮ LIỆU TÌM HIỂU VỀ CHỮ KÝ SỐ GIẢI PHÁP VÀ ỨNG DỤNG CHỮ KÝ SỐ TẠI VIỆT NAM Giảng viên hướng dẫn: Mạc Văn Quang Sinh viên thực hiện: Hà Nội, tháng 10 năm 2021 LỜI MỞ ĐẦU Đầu tiên em xin cảm ơn thầy Quang đã đã hướng dẫn nhóm em làm và hướng dẫn tìm hiểu đề tài của chúng em với lời hướng dẫn tận tình thì nhóm em cũng đã hoàn thành bài tập lớn này em xin cảm ơn thầy. Ngoài ra nhóm em còn trình bay thiếu sai sót, mong được sự đóng góp của người đọc em xin cảm ơn. Phần mềm chữ ký số an toàn nhất số được cho là có khả năng đảm bảo an toàn vô cùng cao nhờ cơ chế bảo mật tuyệt đối thông qua những đặc điểm sau đây: + Khả năng xác định nguồn gốc + Tính toàn vẹn +Tính không phủ nhận Phần mềm chữ ký số an toàn nhất phải bao gồm các cơ chế nào? Giải pháp chữ ký số điện tử nào an toàn tuyệt đối và đáp ứng đầy đủ nghiệp vụ ký kết văn bản/ hợp đồng/ giao dịch điện tử? Vậy sau đây là bài tập lớn chúng em để làm rõ hơn về chữ ký số

Trang 1

TRƯỜNG ĐẠI HỌC ĐẠI NAM KHOA CÔNG NGHỆ THÔNG TIN

MÔN AN TOÀN DỮ LIỆUTÌM HIỂU VỀ CHỮ KÝ SỐ

GIẢI PHÁP VÀ ỨNG DỤNG CHỮ KÝ SỐ TẠI VIỆT NAM

Giảng viên hướng dẫn: Mạc Văn Quang

Sinh viên thực hiện:

Hà Nội, tháng 10 năm 2021

Trang 2

LỜI MỞ ĐẦU

Đầu tiên em xin cảm ơn thầy Quang đã đã hướng dẫn nhóm em làm và

hướng dẫn tìm hiểu đề tài của chúng em với lời hướng dẫn tận tình thì nhóm emcũng đã hoàn thành bài tập lớn này em xin cảm ơn thầy

Ngoài ra nhóm em còn trình bay thiếu sai sót, mong được sự đóng góp của người đọc em xin cảm ơn

Phần mềm chữ ký số an toàn nhất số được cho là có khả năng đảm bảo an toàn vô cùng cao nhờ cơ chế bảo mật tuyệt đối thông qua những đặc điểm sau đây:

rõ hơn về chữ ký số

Trang 3

Chương I: Cơ sở của chữ ký số, các loại mật mã và mã hóa khối

1 Một số khái niệm về mã hóa

Trong ngành mật mã học, mã hóa là quá trình dùng để biến thông tin từ dạng

này sang dạng khác và ngăn những người không phận sự tiếp cận vào thông tin

đó Bản thân việc mã hóa không ngăn chặn việc thông tin bị đánh cắp, có điều thông tin đó lấy về cũng không xài được, không đọc được hay hiểu được vì đã được làm biến dạng đi rồi

Mã hóa sẽ mang lại tính an toàn cao hơn cho thông tin, đặc biệt là trong thời đại Internet ngày nay, khi mà thông tin phải đi qua nhiều trạm trung chuyển trước khi đến được đích Nếu không có mã hóa, khả năng thông tin của bạn sẽ

bị ai đó xem trộm trong quá trình truyền tải, rồi lợi dụng để làm việc xấu là hoàn toàn hiện hữu

Về lý thuyết, bất kì thông điệp mã hóa nào cũng có thể bị giải mã mà không

cần biết về thuật toán hoặc các khóa mã hóa, vấn đề là mất bao lâu và nguồn lực

tính toán cần thiết là như thế nào

2 Các loại mã hóa dữ liệu

A Mã hóa cổ điển

+ Mã hoá cổ điển là cách đơn giản nhất, tồn lại lâu nhất trên thế giới

và không cần khóa bảo mật, chỉ cần người gửi và người nhận cùng biết về thuật toán này là được

+ Tuy nhiên, giải pháp mã hóa này được xem là không an toàn, vì nếu một người thứ ba biết được thuật toán thì xem như thông tin không còn bảo mật nữa.Việc giữ bí mật thuật toán trở nên rất quan trọng, và không phải ai cũng có thể giữ bí mật đó một cách trọn vẹn Có khả năng người đó sẽ rò rỉ ra, hoặc có ai đóngồi giải ra thuật toán thì xem như chúng ta thua cuộc

+ Một số mã hóa cổ điển như: Mã hóa dịch vòng, Mã hóa thay thế, Mã hóa Affine

B Mã hóa một chiều (hash)

+ Phương pháp này dùng để mã hóa những thứ không cần dịch lại nguyên bản gốc Ví dụ, khi bạn đăng nhập vào Tinh tế, mật khẩu mà bạn nhập sẽ được chuyển thành một chuỗi dài các kí tự bằng một thứ gọi là hash function

Chuỗi này sẽ được lưu vào cơ sở dữ liệu, chứ không lưu mật khẩu thô của bạn nhằm tăng tính bảo mật Lỡ hacker có trộm dữ liệu thì cũng chỉ thấy những thứ như FIiyXYB547bhvyuuUIbZ chứ không biết password thật của bạn là gì

Mỗi lần bạn đăng nhập, hash function sẽ “băm” password thật của bạn thành chuỗi kí tự rồi so sánh nó với cái trong cơ sở dữ liệu, nếu khớp thì đăng nhập tiếp, không thì báo lỗi Chúng ta không có nhu cầu dịch ngược chuỗi nói trên ra lại thành password thật để làm gì cả

+ Nói thêm về hash function, nhiệm vụ của nó là chuyển một chuỗi có độ dài bất kì thành chuỗi kí tự có độ dài cố định Ví dụ, nếu bạn quy định chuỗi kí

tự sau khi “băm” sẽ dài 10 kí tự thì dù đầu vào của bạn có bao nhiêu chữ đi nữa thì kết quả nhận được sẽ luôn là 10 và chỉ 10 kí tự mà thôi

Trang 4

+ Đặc điểm của hash function là trong cùng 1 điều kiện, dữ liệu đầu vào như nhau thì kết quả sau khi băm cũng sẽ y hệt như nhau Nếu chỉ đổi một chút xíu thôi, có khi chỉ là 1 kí tự nhỏ thì chuỗi kết quả sẽ khác hoàn toàn.

+ Cũng vì vậy mà người ta dùng hash function để kiểm tra tính toàn vẹn của dữ liệu Ví dụ, trước khi gửi một tập tin Word cho người bạn thì mình dùng

mã hóa một chiều và tạo ra được chuỗi sau băm là DFYUBUfyeufuefu

Khi người bạn đó tải tập tin về máy, nếu nó băm và cũng nhận được chuỗi DFYUBUfyeufuefu thì có nghĩa là tập tin của mình không bị can thiệp bởi hacker, còn nếu kết quả khác thì có nghĩa là quá trình truyền tải có thể đã bị lỗi làm mất một phần dữ liệu, hoặc tệ hơn là có ai đó đã xén bớt hay thêm vào thứ

gì đó rồi

+ Hiện nay, hai thuật toán hash function thường được dùng nhất là MD5

và SHA Nếu bạn tải tập tin trên mạng thì đôi khi sẽ thấy dòng chữ MD5 do tác giả cung cấp, mục đích là để bạn so sánh file đã tải về với file gốc xem có bị lỗi

gì không

C Mã hóa đối xứng (symmetric key encryption)

+ Là những hệ mật được sử dụng chung 1 khóa trong quá trình mã hóa và

mã hóa Do đó khóa phải được giữ bí mật tuyệt đối

+ Một số hệ mật mã khóa đối xứng hiện đại mà mình thấy hay được sử dụng là DES, AES, RC4, RC5,

Khi sơ đồ mã hóa đủ mạnh thì cách duy nhất để đọc và truy cập được các thông tin chứa trong các bản mã là sử dụng khóa tương ứng để giải mã Quá trình giải mã về cơ bản sẽ chuyển đổi các bản mã trở về dạng văn bản thô ban đầu

Mức độ bảo mật của các hệ thống mã hóa đối xứng sẽ phụ thuộc vào độ khó trong việc suy đoán ngẫu nhiên ra khóa đối xứng theo hình thức tấn công brute force Lấy ví dụ, để dò ra mã hóa của 1 khóa 128-bit thì sẽ mất tới vài tỷ năm nếu sử dụng các phần cứng máy tính thông thường Thông thường, các khóa có độ dài tới 256-bit có thể được xem là có độ bảo mật cao tuyệt đối, có khả năng chống lại được hình thức tấn công brute force từ các máy tính lượng

tử

Trong số các sơ đồ mã hóa đối xứng được sử dụng ngày nay thì có 2 loại thông dụng nhất là nền tảng mật mã block và stream Trong mật mã block, dữ liệu được nhóm vào từng khối theo kích thước định trước, mỗi khối được mã hóa bằng khóa đối xứng và thuật toán mã hóa (vd: các văn bản thô 128-bit sẽ được mã hóa thành các bản mã 128-bit) Khác với mật mã block, mật mã stream

Trang 5

không mã hóa dữ liệu văn bản thô theo block mà mã hóa theo các gia số 1-bit (mỗi văn bản thô 1-bit được mã hóa thành bản mã 1-bit mỗi lần)

D Mã hóa bất đối xứng (public key encryption)

+ Có thể hiểu là người ta dùng hai chìa khóa khác nhau để khóa và mở khóa thông tin bí mật Public key sẽ được công khai và được gửi đi đến đối tượng cần

mã hóa thông tin, còn private key được giữ bí mật và nó đóng vai trò như chìa khóa vạn năng có thể mở được tất cả thông tin được khóa bằng public key.Hầu như các ứng dụng bạn dùng hàng ngày hiện nay như Facebook, Gmail, Amazon, PayPal,… đều sử dụng giao thức HTTPs Có thể hiểu là giao thức HTTPs an toàn hơn HTTP vì toàn bộ thông tin truyền đi giữa client và server được bảo vệ bởi bộ mã hóa SSL/TSL SSL/TSL này hoạt động dựa trên cả hai loại mã hóa đối xứng và bất đối xứng Nhờ nó mà chúng ta có thể đảm bảo bí mật khi thực hiện những giao dịch có chứa thông tin nhạy cảm trên Internet mà không bị đánh cắp thông tin trong suốt quá trình truyền nhận dữ liệu Có thể nói, nếu không có mật mã, đặc biệt là mã hóa bất đối xứng thì không có thương mại điện tử

+ Điểm yếu của mã hoá đối xứng được khắc chế trong mã hoá bất đối xứng Ý tưởng là thay vì gửi chìa khoá cho phía client, thì server sẽ gửi ổ khoá,

để client khoá thông điệp bí mật trong một chiếc hộp, và chỉ có server có thể giải mã được Cho nên các client sẽ không đọc được thông điệp của nhau, và chỉ

có sever với private key mới mở khoá được những chiếc hộp này

Mã hóa RSA

+ RSA là một trong những hệ thống mã hóa bất đối xứng được sử dụng rộng rãi Nó được đặt theo tên của 3 nhà khoa học MIT thiết kế ra nó là: Ron Rivest, Adi Shamir và Leonard Adleman Ý tưởng then chốt để đảm bảo tính antoàn của RSA là dựa trên sự khó khăn trong việc phân tích nhân tử của 2 số nguyên tố lớn (a x b = c, tìm ngược lại a,b từ c là phân tích nhân tử)

+ Hệ thống mã hoá RSA bao gồm 4 bước: key generation, key

distribution, encryption và decryption Vì để đảm bảo tính bí mật, nên mỗi hệ thống khác nhau cần tạo ra các public, và private key khác nhau Sau quá trình handshake và public key được gửi tới phía client thì thông tin mới chính thức được mã hoá khi server và client giao tiếp với nhau

+ Chữ ký số trong RSA

Khi tạo chữ ký số thì người gửi thông tin sẽ sử dụng private còn người nhận sử dụng public key phục vụ cho việc nhận chữ ký Thông tin được gửi qua RSA khá dài, gây ra trở ngại lớn đến việc mã hóa ở mặt thời gian Vì vậy, trong thực hành chữ ký số thường sử dụng phương pháp mã hóa giá trị hash của bản tin Việc này mang lại rất nhiều lợi ích như:

Các hàm hash là hàm 1 chiều, vì vậy dù có được hash cũng không thể biết được bản tin gốc như thế nào

Độ dài hash là cố định và thường rất nhỏ, vì vậy chữ số sẽ không chiếm quá nhiều dung lượng

E Mã hóa khối

Trang 6

+ Các hệ mã khối nổi tiếng đó là DES có kích thước khối là 64 (tức là mỗi lần mã hóa một khối bản rõ 64 bits và cho ra khối bản mã 64 bít) và kích thước khóa là 56 bits; AES có kích thước khối là 128 bit, và kích thước khóa là 128,

192 hoặc 256bit

+ Thông thường block cipher chậm hơn so với stream cipher, nhưng làm việctốt với những khối dữ liệu đã biết trước kích thước, ví dụ mã hóa file, mã hóa tinnhắn trên các giao thức như là HTTP

+ Các chế độ sử dụng Mã khối Thuật toán mã khối có đầu vào và đầu ra là các khối có độ dài xác định (như ở DES là 64bit) Để mã hóa một dữ liệu có độ dài tùy ý thì ta phải cắt dữ liệu thành nhiều khối đ ơn v ị và áp d ụng thuật toán

mã nhiều lần, rồi sau sẽ kết hợp các khối dữ liệu thu được theo một sơ đồ nào đó

+ Có nhiều loại sơ đồ, hay còn gọi là chế độ mật mã khác nhau, với ưu

nhược đi ểm khác nhau và được áp dụng cho các nhu cầu khác nhau

+ Các chế độ hay dùng:

- Chế độ bảng tra mã điện tử (Electronic code book -ECB) Trong chế độ này,các khối được tạo mật mã riêngbiệt, độc lập Do đó, những khối tin gi ống nhau

sẽ được mã hóa thành những khối mã giống nhau.Điều này trở nên nguy hiểm, t

ạo miếng đất màu mỡ cho kẻ địch vận dụng tấn công replay cũng như thao tác biên tập theo khối.Kẻ thù có thể nghe trộm và tìm cách thu thập các mẫu tin-mã phổ biến, sau đó cắt ghép và trộn lẫn để tạo ra các bản mã giả mã bên nhận không phát hiện được

- Chế độ mã móc xích (Cipher Block Chaining -CBC) Trong chế độ này, mỗi khối tin trước khi được mã hóa thì được XOR với khối mã sinh ra từ bước trước đó Như vậy các khối mã đều phụ thuộc rất chặt vào nhau theo kiểu “móc xích” Cũng qua đó có thể thấy rằng CBC sẽ tạo ra các khối bản mã khác nhau khi các khối tin đưa vào là giống nhau tức là che giấu được các mẫu tin-mã phổ biến khỏi sự theo dõi của kẻ thù, chặn đứng khả năng phá hoại bằng tấn công replay và biên tập nói trên Tại bước đầu tiên, khi chưa có khối mã sinh ra từ bước trước, khối tin đầu sẽ được XOR với một vecto khỏi đầu, chọn ngẫu

nhiên, ký hiệu là IV (initial vector)

- Chế độ Mã phản hồi k-bit (k-bit Cipher Feedback Mode -CFB) Với một số ứng dụng thời gian thực yêu cầu dòng dữ liệu truyền đến phải liên tục hơn là gián đoạn (như là chuỗi ký tự truyền giữa host và terminal phải tạo thành dòng

ký tự liên tục) Do đó các chế độ mật mã khối xử lý và truyền theo từng khối một trở nên không thích hợp; các mã stream cipher với đơn vị xử lý là ký tự -khối 8 bit sẽ là thích hợp hơn với dạng ứng dụng này.Chế độ CFB là một cải tiến cho phép tạo ra khả năng truyền khối nhỏ k-bit (với k tùy ý) trong khi vẫn dùng thuật toán mã khối Dòng tin đi vào được ‘múc’ bằng từng ‘gầu’ với dung lượng k bit mà k là tham số thay đổi được Thuật toán mật mã khối E chạy liên tục như một lò nấu:ở mỗi bước người ta lấy k bit (bên trái nhất) của vector đầu

ra từ E để bỏ vào ‘gầu’ k bit tin, chúng được XOR với nhau Kết quả k bit vừa được đem truyền đi, vừa được bỏ lại vào đầu vào của thuật toán mã khối: vecto

Trang 7

đầu vào được dịch trái k vị trí và k bit phải nhất sẽ được thay thế bởi k bit lấy từgầu tin Như vậy có thể thấy rằng thuật toán mã khối được thực hiện như một hàm sinh các số giả ngẫu nhiên k-bit, các gía trị này lại được XOR với các phần

tử k-bit tin lấy vào để tạo ra mã truyền đi.Qua trình giải mã thì được tiến hành theo nguyên tắc đối xứng.Rõ ràng chế độ này cũng cung cấp các khả năng như của chế độ CBC, thêm vào đó nó cho phép truyền tin với khối ngắn tùy ý, đảm bảo các ứng dụng về truyền-xử lý liên tục

- Chế độ mật mã kết quả phản hồi (Output Feedback Mode –OFB) Chế độ này cũng khá gần với hai chế độ trên đây, nhưng các phép XOR để tạo ra khối ciphertext là độc lập riêng rẽ, chứ không có sự phụ thuộc (móc xích) như trước.Các khối plaintext được XOR với các đầu ra – output – của các hàm sinh mã (thuật toán mật mã khối) mà riêng các phần tử output của hàm mã hóa này là vẫn phụ thuộc móc xích (nên được gọi là output feedback) Tuy nhiên chuỗi móc xích này có thể được thực hiện offline thông qua tiền xử lý, trước khi thực

sự có thông tin văn bản cần gửi đi Chính vì vậy khả năng thời gian tính toán có thể rút ngắn nhiều Ngoài ra, chế độ này cũng cho phép mã khối nhỏ, như

stream cipher, giống như với chế độ CFB vậy

Trang 8

Chương II Chuẩn mã hóa RSA về chữ Ký Số

- một dạng khác của khoá bí mật bao gồm

p và q là hai số nguyên tố chọn ban đầu (p và q nên được chọn sao cho : M <

2^i-1 < N < 2^I )

d mod (p- 1) và d mod (q- 1) ( thường được gọi là dmp1 và dmq1), (1/q) mod p ( thường được gọi là iqmp)

(Ngoài ra, nếu p-1 hoặc q-1 có thừa số nguyên tố nhỏ thì n cũng có thể dễ dàng

bị phân tích và vì thế p và q cũng cần được thử để tránh khả năng này.)

*Trong hệ mã hóa này, public key có thể chia sẻ công khai cho tất cả mọi người Hoạt động của RSA dựa trên 4 bước chính: sinh khóa, chia sẻ key, mã hóa và giải mã.

2 C ấu trúc hệ mật

Sinh khóa là quá trình tìm kiếm một bộ bao gồm 3 số tự nhiên là d, n, e thỏa mãn công thức dưới đây

Med trùng mmod n

Trong đó d là giá trị được bảo mật tuyệt đối để khi biết các giá trị khác là

n, e, m thì cũng không thể tìm ra được giá trị của d Với công thức này, RSA sẽ sinh khóa theo quy trình:

Trang 9

 Chọn ra hai số nguyên tố là p và q.

 Tính n = pq, sau đó giá trị của n sẽ có vai trò ở cả hai loại khóa là khóa

bí mật và khóa công khai

 Một vài số giả nguyên tố sẽ được tính toán và đưa và giữ bó mật

 Chọn một số e ở giữa số 1 và số giải nguyên tố n sao cho ước chung lớn nhất của hai số này bằng 1 (giá trị của e và số giả nguyên tố n có nguyên tố trùng nhau)

 Tiếp tục tìm giá trị của d sao cho d trùng với 1/e hay de =1 (Số tự nhiên d lúc này sẽ là nghịch đảo của số e theo công thức modulo mod λ(n).)

Khi đó khóa công khai sẽ là bộ số (n, e) còn khóa bí mật là bộ số (n, d) Nhiệm

vụ chính của bạn chính là giữ cẩn thận khóa bí mật và số nguyên tố p, q để từ đóphục vụ việc tính toán và mở khóa

Trên thực tế, người ta vẫn lựa chọn giá trị của e nhỏ để việc giải mã trở nên nhanh chóng, thông thường e = 65537 Ngoài ra, chúng ta có thể tính số giả nguyên tố bằng Phi hàm Eul φ(n) = (p − 1)(q − 1) và dùng nó như λ(n)

Vì φ(n) là bội của λ(n) nên các số d thỏa mãn de ≡ 1 (mod φ(n)) cũng sẽ thỏa mãn d ≡ 1/e (mod λ(n)) Tuy nhiên, một số tác dụng phụ của việc này

là d thường sẽ trở nên lớn hơn mức cần thiết

3 Ứng dụng của RSA trong công nghệ thông tin

Trong ngôn ngữ lập trình Java, các nhà lập trình viên thường sử dụng những đoạn code chứa RSA để tăng tính bảo mật cho trang web và ứng dụng cũng nhưđảm bảo an toàn cho người sử dụng

Các đoạn code RSA này có thể hoạt động dưới bất kỳ sự thay đổi nào của môi trường Ngoài ra, các lập trình viên cũng sử dụng các ngôn ngữ lập trình khác bên cạnh Java có thể tìm hiểu và ứng dụng những tính năng của RSA trong hoạtđộng làm việc và bảo mật thông tin

Trang 10

Chương III Ứng dụng thực tế

- Ứng dụng được áp dụng vào bài tập lớn này là ứng dụng sign trên trang web của zoho

1 Đăng ký để sử dụng app zoho sign

- Sau khi đăng ký thì chúng ta dùng chính nick đăng ký để đăng nhập

- ở ảnh này tôi dùng cách đăng nhập google để đăng nhập zoho sign

2 Cài đặt zoho sign

- Sau khi đăng nhập thành công chúng ta chọn phần setting để cài đặt zoho sign

- Tại đây chúng ta có thể cài đặt profile của mình

- Chúng ta kích chuột vào signature and để cài đặt chữ ký của công ty

Ngày đăng: 21/11/2021, 10:50

HÌNH ẢNH LIÊN QUAN

- Sau khi bật on enable customization thì màn hình tạo email được suất hiện, ta kích vào email ta muốn tạo. - TÌM HIỂU VỀ CHỮ KÝ SỐ GIẢI PHÁP VÀ ỨNG DỤNG CHỮ KÝ SỐ TẠI VIỆT NAM
au khi bật on enable customization thì màn hình tạo email được suất hiện, ta kích vào email ta muốn tạo (Trang 14)
Sơ đồ mô hình: - TÌM HIỂU VỀ CHỮ KÝ SỐ GIẢI PHÁP VÀ ỨNG DỤNG CHỮ KÝ SỐ TẠI VIỆT NAM
Sơ đồ m ô hình: (Trang 19)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w