Các hệ mã đối xứng hiện đại và mã công khai

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin phát hiện giả mạo bảng điểm tiếng việt cho các trường học (Trang 36)

Chƣơng 2 : CƠ SỞ LÝ THUYẾT

2.2. Mật mã học

2.2.3. Các hệ mã đối xứng hiện đại và mã công khai

2.2.3.1. Phƣơng pháp DES

Khoảng những năm 1970, tiến sĩ Horst Feistel đã đặt nền móng đầu tiên cho chuẩn mã hóa dữ liệu DES với phƣơng pháp mã hóa Feistel Cipher. Vào năm 1976 cơ quan bảo mật quốc gia Hoa Kỳ (NSA) đã công nhận DES dựa trên Feistel Cipher là chuẩn mã hóa dữ liệu. DES đƣợc cơng bố trong tài liệu FIPS của NIST. Kích thƣớc khóa của DES ban đầu là 128 bit nhƣng tại bản cơng bố FIPS kích thƣớc khóa đƣợc rút xuống cịn 56 bit.

DES có kích thƣớc khối 64 bit. DES thực hiện mã hóa dữ liệu qua 16 vịng lặp mã hóa, mỗi vịng sử dụng một khóa chu kỳ 48 bit thu đƣợc từ khóa 56 bit ban đầu. DES sử dụng 8 bảng hằng số Sbox để thao tác. Q trình mã hóa của DES có thể đƣợc tóm tắt nhƣ sau:

Biểu diễn thông điệp nguồn xP bằng dãy 64bit. Khóa k có 56bit. Thực hiện mã hóa theo 3 giai đoạn:

 Tạo dãy 64 bit bằng cách hoán vị x theo hoán vị IP.

 Thực hiện 16 vòng lặp từ 64 bit thu đƣợc và 56 bit của khoá k (chỉ sử dụng 48 bit của khố k trong mỗi vịng lặp). 64 bit kết quả thu đƣợc qua mỗi vòng lặp sẽ là đầu vào cho vòng lặp sau.

 Sau 16 vịng lặp, áp dụng hốn vị ngƣợc IP-1

cho 64bit thu đƣợc. Kết quả cuối cùng chính là khối dữ liệu đã mã hóa y.

Hình 2.14 – Sơ đồ q trình mã hóa dữ liệu bằng phương pháp DES

Q trình giải mã chính là thực hiện theo thứ tự đảo ngƣợc các thao tác của q trình mã hóa.

2.2.3.2. Phƣơng pháp chuẩn mã hóa nâng cao AES

Để tìm kiếm một phƣơng pháp mã hóa quy ƣớc mới với độ an tồn cao hơn DES, NIST đã công bố một chuẩn mã hóa mới, thay thế cho chuẩn DES. Thuật toán đại diện cho chuẩn mã hóa nâng cao AES (Advanced

Encryption Standard) sẽ là thuật tốn mã hóa khóa quy ƣớc, sử dụng miễn phí trên tồn thế giới. Chuẩn AES bao gồm các yêu cầu sau:

 Thuật tốn mã hóa theo khối 128 bit.  Chiều dài khóa 128 bit, 192 bit và 256 bit.  Khơng có khóa yếu.

 Hiệu quả trên hệ thống Intel Pentium Pro và trên các nền phần cứng và phần mềm khác.

 Thiết kế dễ dàng (hỗ trợ chiều dài khóa linh hoạt, có thể triển khai ứng dụng rộng rãi trên các nền và các ứng dụng khác nhau).  Thiết kế đơn giản: phân tích đánh giá và cài đặt dễ dàng.  Chấp nhận bất kỳ chiều dài khóa lên đến 256 bit.

 Mã hóa dữ liệu thấp hơn 500 chu kỳ đồng hồ cho mỗi khối trên Intel Pentium, Pentium Pro và Pentium II đối với phiên bản tối ƣu của thuật toán.

 Có khả năng thiết lập khóa 128 bit (cho tốc độ mã hóa tối ƣu) nhỏ hơn thời gian địi hỏi để mã hóa các khối 32 bit trên Pentium, Pentium Pro và Pentium II.

 Khơng chứa bất kỳ phép tốn nào làm nó giảm khả năng trên các bộ vi xử lý 8 bit, 16 bit, 32 bit và 64 bit.

 Không bao hàm bất kỳ phần tử nào làm nó giảm khả năng của phần cứng.

 Thời gian mã hóa dữ liệu rất thấp dƣới 10/1000 giây trên bộ vi xử lý 8 bit.

 Có thể thực hiện trên bộ vi xử lý 8 bit với 64 byte bộ nhớ RAM. Sau khi thực hiện hai lần tuyển chọn, có năm thuật tốn đƣợc vào vòng chung kết, gồm có: MARS, RC6, SERPENT, TWOFISH và RIJNDAEL. Các thuật toán này đều đạt các yêu cầu của AES nên đƣợc gọi chung là các thuật toán ứng viên AES. Các thuật toán ứng viên AES có độ an tồn cao, chi phí thực hiện thấp.

2.3. Hàm băm và chữ ký điện tử 2.3.1. Hàm băm 2.3.1. Hàm băm

Hàm băm mật mã là hàm tốn học chuyển đổi một thơng điệp có độ dài bất kỳ thành một dãy bit có độ dài cố định (tùy thuộc vào thuật toán băm). Dãy bit này đƣợc gọi là thông điệp rút gọn (message digest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu.

Dễ dàng nhận thấy rằng hàm băm h khơng phải là một song ánh. Do đó, với thơng điệp x bất kỳ, tồn tại thông điệp x’ ≠ x sao cho h(x) = h(x’). Lúc này, ta nói rằng “có sự đụng độ xảy ra”.

Một hàm băm h đƣợc gọi là an tồn (hay “ít bị đụng độ”) khi khơng thể xác định đƣợc (bằng cách tính tốn) cặp thơng điệp x và x’ thỏa mãn x≠x’ và h(x) = h(x’). Trên thực tế, các thuật tốn băm là hàm một chiều, do đó, rất khó để xây dựng lại thông điệp ban đầu từ thông điệp rút gọn.

Hàm băm giúp xác định đƣợc tính tồn vẹn dữ liệu của thơng tin: mọi thay đổi, dù là rất nhỏ, trên thơng điệp cho trƣớc, ví dụ nhƣ đổi giá trị 1 bit, đều làm thay đổi thơng điệp rút gọn tƣơng ứng. Tính chất này hữu ích trong việc phát sinh, kiểm tra chữ ký điện tử, các đoạn mã chứng nhận thông điệp, phát sinh số ngẫu nhiên, tạo ra khóa cho q trình mã hóa…

Hàm băm là nền tảng cho nhiều ứng dụng mã hóa. Có nhiều thuật tốn để thực hiện hàm băm, trong số đó, phƣơng pháp SHA-1 và MD5 thƣờng đƣợc sử dụng khá phổ biến từ thập niên 1990 đến nay.

2.3.1.1. Phƣơng pháp hàm băm MD4 và MD5

 Hàm băm MD4 đƣợc Giáo sƣ Ron Rivest đề nghị vào năm 1990. Vào năm 1992, phiên bản cải tiến MD5 của thuật toán này ra đời.

 Thơng điệp rút gọn có độ dài 128 bit.

 Năm 1995, Hans Dobbertin đã chỉ ra sự đụng độ ngay chính trong bản thân hàm nén của giải thuật (mặc dù chƣa thật sự phá vỡ đƣợc giải thuật).

 Năm 2004, nhóm tác giả Xiaoyun Wang, Dengguo Feng, Xuejia Lai và Hongbo Yu đã công bố kết quả về việc phá vỡ thuật toán MD4 và MD5 bằng phƣơng pháp tấn công đụng độ

2.3.1.2. Phƣơng pháp Secure Hash Standard

 Phƣơng pháp Secure Hash Standard (SHS) do NIST và NSA xây dựng đƣợc công bố trên Federal Register vào ngày 31 tháng 1 năm 1992 và sau đó chính thức trở thành phƣơng pháp chuẩn từ ngày 13 tháng 5 năm 1993.

 Thơng điệp rút gọn có độ dài 160 bit.

Hàm băm là nền tảng cho nhiều ứng dụng mã hóa. Có nhiều thuật tốn để thực hiện hàm băm, trong số đó SHA-1 và MD5 đƣợc sử dụng phổ biến và đáng tin cậy. Ngày 26/08/2002, Học viện Quốc gia về Chuẩn hóa và Cơng nghệ của Hoa Kỳ (National Institute of Standard and Technology - NIST) đã đề xuất hệ thống chuẩn hàm băm an toàn (Secure Hash Standard) gồm 4 thuật toán hàm băm SHA-1, SHA-256, SHA-384, SHA-512. Đến 25/03/2004, NIST đã chấp nhận thêm thuật toán hàm băm SHA-224 vào hệ thống chuẩn hàm băm. Các thuật toán hàm băm do NIST đề xuất đƣợc đặc tả trong tài liệu FIPS180-2.

2.3.1.3. Cấu trúc của hàm băm

Hầu hết các hàm băm mật mã đều có cấu trúc giải thuật nhƣ sau:  Cho trƣớc một thơng điệp M có độ dài bất kỳ. Tùy theo thuật tốn

đƣợc sử dụng, chúng ta có thể cần bổ sung một số bit vào thông điệp này để nhận đƣợc thơng điệp có độ dài là bội số của một hằng số cho trƣớc. Chia nhỏ thơng điệp thành từng khối có kích thƣớc bằng nhau: M1, M2, …Ms.

 Gọi H là trạng thái có kích thƣớc n bit, f là “hàm nén” thực hiện thao tác trộn khối dữ liệu với trạng thái hiện hành.

 Khởi gán H0 bằng một vector khởi tạo nào đó.  Hi = f(Hi=1,Mi) với i = 1, 2, 3, …, s.

 Hs chính là thơng điệp rút gọn của thơng điệp M ban đầu.

2.3.1.4. Tính an tồn của hàm băm đối với hiện tƣợng đụng độ

Hàm băm đƣợc xem là an toàn đối với hiện tƣợng đụng độ khi rất khó tìm đƣợc hai thơng điệp có cùng giá trị băm.

Nhận xét: Trong một tập hợp mà các phần tử mang một trong N giá trị cho trƣớc với xác suất bằng nhau, chúng ta cần khoảng N phép thử ngẫu nhiên để tìm ra một cặp phần tử có cùng giá trị.

Nhƣ vậy, phƣơng pháp hàm băm đƣợc xem là an toàn đối với hiện tƣợng đụng độ nếu chƣa có phƣơng pháp tấn cơng nào có thể tìm ra cặp thơng điệp có cùng giá trị hàm băm với số lƣợng tính tốn ít hơn đáng kể so với ngƣỡng 2n/2, với n là kích thƣớc (tính bằng bit) của giá trị băm.

Phƣơng pháp tấn công dựa vào đụng độ:

 Tìm ra 2 thơng điệp có nội dung khác nhau nhƣng cùng giá trị băm.  Ký trên một thơng điệp, sau đó, ngƣời ký sẽ khơng thừa nhận đây là chữ

ký của mình mà nói rằng mình đã ký trên một thơng điệp khác.

 Nhƣ vậy, cần phải chọn 2 thông điệp “đụng độ” với nhau trƣớc khi ký.

2.3.1.5. Tính một chiều

Hàm băm đƣợc xem là hàm một chiều khi cho trƣớc giá trị băm, không thể tái tạo lại thơng điệp ban đầu, hay cịn gọi là “tiền ảnh” (“pre-image”). Nhƣ vậy, trong trƣờng hợp lý tƣởng, cần phải thực hiện hàm băm cho khoảng 2n thơng điệp để tìm ra đƣợc “tiền ảnh” tƣơng ứng với một giá trị băm.

Nếu tìm ra đƣợc một phƣơng pháp tấn cơng cho phép xác định đƣợc “tiền ảnh” tƣơng ứng với một giá trị băm cho trƣớc thì thuật tốn băm sẽ khơng cịn an tồn nữa.

Cách tấn công nhằm tạo ra một thông điệp khác với thông điệp ban đầu nhƣng có cùng giá trị băm gọi là tấn công “tiền ảnh thứ hai” (second pre- image attack).

2.3.1.6. Một số hàm băm thông dụng a. Hàm băm MD5 a. Hàm băm MD5

Hàm băm MD4 (Message Digest 4) đƣợc Giáo sƣ Rivest đề nghị vào năm 1990. Vào năm sau, phiên bản cải tiến MD5 của thuật toán này ra đời. Cùng với phƣơng pháp SHS, đây là ba phƣơng pháp có ƣu điểm tốc độ xử lý rất nhanh nên thích hợp áp dụng trong thực tế đối với các thông điệp dài.

MD5 biến đổi một thơng điệp có chiều dài bất kì thành một khối có kích thƣớc cố định 128 bits. Thơng điệp đƣa vào sẻ đƣợc cắt thành các khối 512 bits. Thông điệp đƣợc đƣa vào bộ đệm để chiều dài của nó chia hết cho 512. Bộ đệm hoạt động nhƣ sau:

 Trƣớc tiên nó sẻ chèn bit 1 vào cuối thơng điệp.

 Tiếp đó là hàng loạt bit 0 cho tới khi chiều dài của nó nhỏ hơn bội số của 512 một khoảng 64 bit.

 Phần còn lại sẻ đƣợc lấp đầy bởi một số nguyên 64 bit biểu diển chiều dài ban đầu của thông điệp.

Thuật tốn chính của MD5 hoạt động trên một bộ 128 bit. Chia nhỏ nó ra thành 4 từ 32 bit, kí hiệu là A,B,C và D. Các giá trị này là các hằng số cố định. Sau đó thuật tốn chính sẻ ln phiên hoạt động trên các khối 512 bit. Mỗi khối sẽ phối hợp với một bộ. Q trình xử lý một khối thơng điệp bao gồm 4 bƣớc tƣơng tự nhau, gọi là vòng (“round”). Mỗi vịng lại gồm 16 q trình tƣơng tự nhau dựa trên hàm một chiều F, phép cộng module và phép xoay trái…

Hình bên dƣới mơ tả một q trình trong một vịng. Có 4 hàm một chiều F có thể sử dụng. Mỗi vịng sử dụng một hàm khác nhau.

Hình 2.15 – Mơ tả một q trình trong một vịng của hàm băm MD5

Hàm băm MD5 (cịn đƣợc gọi là hàm tóm tắt thơng điệp - message degests) sẽ trả về một chuổi số thập lục phân gồm 32 số liên tiếp. Dƣới đây là các ví dụ mơ tả các kết quả thu đƣợc sau khi băm.

MD5("dai hoc lac hong") = 327e7cbce9c5ff6a0d654957c16b0b6c Chỉ cần một thay đổi nhỏ cũng làm thay đổi hoàn toàn kết quả trả về: MD5("dai hoc lac honh") = 24eed62af8f392339f77f8fcf87e1311 Ngay cả một chuổi rổng cũng cho ra một kết quả phức tạp: MD5("") = d41d8cd98f00b204e9800998ecf8427e

b. SHA (thuật giải băm an toàn)

SHA (Secure Hash Algorithm) là năm thuật giải đƣợc dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu đã đƣợc mã hóa. Năm thuật giải SHA là SHA-1 (trả lại kết quả dài 160 bit), SHA-224 (trả lại kết quả dài 224 bit), SHA-256 (trả lại kết quả dài 256 bit), SHA- 384 (trả lại kết quả dài 384 bit), và SHA-512 (trả lại kết quả dài 512 bit). Thuật giải SHA là thuật giải băm mật đƣợc phát triển bởi cục an ninh quốc gia Mĩ (National Security Agency hay NSA) và đƣợc xuất bản thành chuẩn của chính phủ Mĩ bởi viện công nghệ và chuẩn quốc gia Mĩ (National Institute of Standards and Technology hay NIST). Bốn thuật giải sau thƣờng đƣợc gọi chung là SHA-2.

2.3.2. Chữ ký điện tử

2.3.2.1. Khái niệm chữ ký điện tử

Trong cách thức truyền thống, thông báo đƣợc truyền đi trong giao dịch thƣờng dƣới dạng các văn bản viết tay hoặc đánh máy đƣợc kèm thêm chữ ký (viết tay) của ngƣời gửi ở bên dƣới văn bản. Chữ ký đó là bằng chứng xác nhận thông báo đúng là của ngƣời ký, tức là của chủ thể giao dịch, và nếu tờ giấy mang văn bản khơng bị cắt, dán, tẩy, xố, thì tính tồn vẹn của thơng báo cũng đƣợc chứng thực bởi chữ ký đó. Chữ ký viết tay có nhiều ƣu điểm quen thuộc nhƣ dễ kiểm thử, không sao chép đƣợc, chữ ký của một ngƣời là giống nhau trên nhiều văn bản, nhƣng mỗi chữ ký gắn liền với một văn bản cụ thể, v.v...

Khi chuyển sang cách thức truyền tin bằng phƣơng tiện hiện đại, các thông báo đƣợc truyền đi trên các mạng truyền tin số hoá, bản thân các thông báo cũng đƣợc biểu diễn dƣới dạng số hoá, tức dƣới dạng các dãy bit nhị phân, “chữ ký” nếu có cũng ở dƣới dạng các dãy bit, thì các mối quan hệ tự nhiên kể trên khơng cịn giữ đƣợc nữa. Chẳng hạn, “chữ ký” của một ngƣời gửi trên những văn bản khác nhau phải thể hiện đƣợc sự gắn kết trách nhiệm của ngƣời gửi đối với từng văn bản đó thì tất yếu phải khác nhau chứ khơng thể là những đoạn bit giống nhau nhƣ các chữ ký giống nhau trên các văn bản thông thƣờng. Chữ ký viết tay có thể đƣợc kiểm thử bằng cách so sánh với nguyên mẫu, nhƣng “chữ ký” điện tử thì khơng thể có “nguyên mẫu” để mà so sánh, việc kiểm thử phải đƣợc thực hiện bằng những thuật toán đặc biệt. Một vấn đề nữa là việc sao chép một văn bản cùng chữ ký. Nếu là văn bản cùng chữ ký viết tay thì dễ phân biệt bản gốc với bản sao, do đó khó mà dùng lại đƣợc một văn bản có chữ ký thật. Cịn với văn bản điện tử cùng chữ ký điện tử thì có thể nhân bản sao chép tuỳ thích, khó mà phân biệt đƣợc bản gốc với bản sao, cho nên nguy cơ dùng lại nhiều lần là có thực, do đó cần có những biện pháp để tránh nguy cơ đó.

Một “chữ ký”, nếu muốn thể hiện đƣợc trách nhiệm của ngƣời gửi trên tồn văn bản, thì phải mang đƣợc một chút gắn bó nào đó với từng bit thơng

tin của văn bản, vì vậy, theo hình dung ban đầu, độ dài của chữ ký cũng phải dài theo độ dài của văn bản; để có đƣợc “chữ ký ngắn” nhƣ trong trƣờng hợp viết tay ngƣời ta phải dùng một kỹ thuật riêng gọi là hàm băm mà ta sẽ trình bày ở cuối chƣơng. Bây giờ, trƣớc hết ta sẽ giới thiệu định nghĩa về sơ đồ chữ ký (điện tử).

Chữ ký điện tử (Digital Signature) dựa trên kỹ thuật sử dụng mã hóa khóa cơng khai. Trong đó, cả ngƣời gửi và ngƣời nhận, mỗi ngƣời có một cặp khóa là khóa bí mật, hay riêng tƣ (Private Key) và khóa cơng khai (Public Key).

Chữ ký điện tử hoạt động khi một ngƣời gửi một thơng điệp, ngƣời đó dùng khóa riêng của mình để mã hóa thơng điệp sang một dạng khó nhận dạng. Ngƣời nhận dùng khóa cơng khai của ngƣời gửi để mã hóa thơng điệp. Tuy nhiên, để an tồn thật sự phải có các bƣớc bổ sung. Do đó, thuật tốn băm MD5 và thuật tốn mã hóa RSA có thể đƣợc áp dụng để xây dựng ứng dụng chữ ký điện tử.

2.3.2.2. Định nghĩa sơ đồ chữ ký

Định nghĩa 5.1. Một sơ đồ chữ ký S là một bộ năm

S = (P, A, K, S, V ),

trong đó: P là một tập hữu hạn các thơng báo có thể có, A là một tập hữu hạn các chữ ký có thể có,

K là một tập hữu hạn các khoá, mỗi khoá K ∈ K gồm có hai

phần K =(K’,K''), K' là khố bí mật dành cho việc ký, còn K'' là khố cơng khai dành cho việc kiểm thử chữ ký.

Với mỗi K =(K’,K''), trong S có một thuật tốn ký sigk: P → A, và

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin phát hiện giả mạo bảng điểm tiếng việt cho các trường học (Trang 36)

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

(81 trang)