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

Tiểu luận ứng dụng truyền thông và an toàn thông tin Mã hóa và bảo mật dữ liệu

33 478 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 33
Dung lượng 1,89 MB

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

Nội dung

LỊCH SỬ MẬT MÃ Khóa và chìa khóa Trong thế giới hiện đại, không đơn giản chỉ sử dụng một bức tranh và hi vọng một vài người có thể tìm rađược nghĩa tiềm ẩn của nó.. Thay vì đó, chúng ta

Trang 1

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

UDTT & ANTT

Trang 2

Contents

Trang 3

MÃ HÓA VÀ BẢO MẬT DỮ LIỆU

1 A LỊCH SỬ MẬT MÃ

Khóa và chìa khóa

Trong thế giới hiện đại, không đơn giản chỉ sử dụng một bức tranh và hi vọng một vài người có thể tìm rađược nghĩa tiềm ẩn của nó Thay vì đó, chúng ta cần một phương pháp phức tạp của việc khóa và mởkhóa dữ liệu với những chìa khóa mà chỉ có người ủy quyền được giữ Những khóa và chìa khóa này thìgiữ thông tin bí mật

Hai người đang gởi thông điệp cho nhau là Alice và Bob (giả sử là A và B) Người thứ ba đang cố gắng

để đánh chặn dữ liệu được biết như là Eve

Nếu Alice và Bob quyết định trao đổi thông điệp bằng cách sử dụng các khóa và chìa khóa bảo mật, câuhỏi là: các khóa và chìa khóa đó đến từ đâu?

Hãy tưởng tượng có một thợ làm khóa thiên tài đã phát triển ra một hệ thống khóa bảo mật mới, và ông tarất tự tin trong thiết kế rằng những người trong nghề khóa đều được phổ biến Thợ làm khóa tuyên bốrằng chức năng của khóa thì rất bảo mật đến nổi không có nguy cơ của bất cứ việc giải mã nào, ngay cảkhi mọi chi tiết được mô tả

Alice hỏi thợ làm khóa mức độ bảo mật được đưa ra như thế nào và được đáp lại rằng việc bảo mật khôngnằm trong việc ổ khóa làm việc như thế nào, mà là trong chìa khóa được chọn Thợ làm khóa tiếp tục giảithích rằng bí mật nằm trong chìa khóa, cái giữ cho ổ khóa được đóng lại Alice được bảo rằng nếu cô tađánh mất hoặc quên chìa khóa, ổ khóa sẽ không thể được mở với bất kì phương pháp nào khác ngoài việcthử với mọi chìa khóa hoặc cố gắng bẻ ổ khóa

Bị thuyết phục, Alice mua ổ khóa đó Cô ấy nói với Bob về ổ khóa mới mua đó ,và Bob cũng mua một cáikhóa Cả hai bây giờ đều giữ một ổ khóa với cùng bản thiết kế và với cơ cấu như nhau, nhưng với cácchìa khóa khác nhau Alice không biết khóa của Bob và Bob không biết khóa của Alice

Khi Alice và Bob tạo ra khóa cho họ; khi ổ khóa cho phép làm điểu này, họ phải quyết định độ phức tạpcủa chìa khóa Nếu họ cho rằng các bí mật không thật sự cần bảo mật, họ sẽ chọn một con số từ 1 đến 4,nếu các bí mật thì rất có giá trị và cần sự bảo mật, họ sẽ chọn một con số từ 1 đến 48

Chìa khóa quyết định chiều dài của ổ khóa Không phải chỉ ổ khóa bảo mật thông tin Trong mật mã,chúng ta sử dụng cả ổ khóa và khóa

Các thuật ngữ

Mật mã là sử dụng ổ khóa và khóa để bảo mật dữ liệu khỏi việc nghe lén, hoặc từ bất kì người nào không

biết chìa khóa

Người tạo ra phương pháp xáo trộn, ngụy trang thông điệp được gọi là người viết mật mã Ngược lại,

những người cố gắng để bẻ gãy hoặc giải mã thông điệp khi không có khóa mà phải sử dụng những

Trang 4

Một thông điệp chưa được thay đổi và có thể được đọc mà không gặp bất kì khó khăn nào được gọi là

plaintext (cũng được gọi là clear text) Khi nó được mã hóa thì gọi là ciphertext.

Quá trình lấy plaintext và ngụy trang nó thành ciphertext được gọi là mã hóa Quá trình ngược lại được gọi là giải mã.

Cipher Caesar

Phương pháp này còn được gọi là Caesar Shift, phương pháp này đơn giản chỉ là quá trình thay thế một kí

tự này bằng một kí tự khác Phương pháp này thay thế một kí tự dựa trên một con số các kí tự được địnhnghĩa trước đó gọi là shift

Trang 5

Ta gán gán một số đến mỗi chữ cái của bảng chữ cái tiếng Anh Ví dụ: a = 1, b = 2, c = 3, … Ta gọiciphertext là C, và gọi plaintext là p Ta có:

C = (p + 4) mod (26)

Biểu thức trên có nghĩa là ciphertext bằng chữ cái plaintext cộng với một giá trị shift, và mod 26

Mặc dù phương pháp thay thế đơn giản này đã được dùng trong vài năm, nhưng cuối cùng nó cũng trởthành không bảo mật Một vài kỹ thuật của người giải mã đã có thể giải mã được mật mã Caesar cipher

Breaking the Caesar Cipher

Vấn đề đối với mật mã Caesar là nó chỉ dùng 26 ký tự và người ta có thể biết vị trí sắp xếp của 26 ký tựđó

Giả sữ một thông điệp được nhận và người phân tích nghi ngờ mật mã Caesar đã được sử dụng Ngườiphần tích có thể nhận biết được mật mã bằng kinh nghiệm, hoặc thử tấn công bằng phương pháp thủcông Phương pháp tấn công thủ công thì không mất nhiều thời gian và người phân tích biết được mật mãchỉ là một Caesar Shift đơn lẽ Khi chỉ có 26 chữ cái, và một trong các cách shift đã được sử dụng để mãhóa thông điệp, người phân tích có 25 khóa để thử trước khi bẻ khóa mật mã

Ví dụ, ciphertext là BKZOVMQFLK với khóa thì không được biết trước, bằng phương pháp thủ công taliệt kê được các plaintext như sau:

Dựa vào bảng trên ta đoán được plaintext là: ENCRYPTION Qua đó ta thấy mật mã Caesar thì khôngbảo mật Sự không bảo mật này là do người phân tích đã biết được một vài vấn đề sau:

1 Thuật toán mã hóa và giải mã đã được biết đến một cách phổ biến

2 Ngôn ngữ trong plaintext được ẩn thì được biết và có thể dễ dàng để nhận ra

3 Chỉ có 25 khóa có thể dùng được để thử tấn công bằng phương pháp thủ công

Biết được những điều này, người phân tích có thể dễ dàng giải mã được ciphertext và lấy được plaintext

Linguistic Parterns

Như ta đã thấy trước đó, Caesar Cipher chỉ có 25 khóa có thể dùng được, nó rất không bảo mật Vì thếchúng ta cần sắp xếp lại các chữ cái để làm tăng số lượng khóa Khi chúng ta có 26 chữ cái để thực hiện,

Trang 6

nếu ta đặt những chữ cái này ở mọi vị trí sắp xếp, chúng ta sẽ có một giá trị là 26!, đây cũng là số khóa

mà chúng ta có được

Dễ dàng thấy rằng kiểu mật mã này sẽ khó để bẻ gãy, tuy nhiên, ngay cả với tất cả những khóa có thểdùng được, một người phân tích mật mã giỏi cũng có thể giãi mã chỉ trong vào phút Đó là nhờ cách phântích tần số xuất hiện của những chữ cái thông qua thống kê từ nhiều nguồn văn bản khác nhau

Trang 7

Ta biết rằng trong tiếng Anh thường xuất hiện các digram và các trigram, digram hay gặp nhất là “th” vàtrigram hay gặp nhất là “the”.

Bây giờ chỉ còn lại 4 kí tự E, V, I, F, J tương đương với R, N, I, O, A

Giả sử: E = R, V = N, ta được như sau:

N THE ETHO OEN TION N E TION

Còn lại 3 kí tự I, F, J tương đương R, A, S S là kí tự được lấy them từ biểu đồ

Giả sử: I = R

Trang 8

TO E E OIN TOIN E TI RTETHE

XTSEFCSOIVJAEVASNXOEBAFQNXEKFINTQ

THEO IE N ON E T O TO H

IVJXTSMSXTEJOEBSVAFQNXCEVIVJJSAFQNXCEV

RN THE ETHO OEN TION N E TION

Ta thấy RTE và RN là những digram và trigram không thấy trong tiếng Anh Vì vậy ta giả sử:

AN THE ETHO OEN TION N E TION

Ta thấyAN và ATE là những digram và trigram thường thấy trong tiếng Anh

Giả sử J = D:

XEJIQYSIFSKECVKXECVPSOXCKIXS XTS

TODA EA E OIN TO N E TI ATE THE

XTS EFCSO IVJ AEVASNXOEBAFQNXEKFINTQ

THE O IE AND ON E T O TO A H

IVJ XTSMSXTEJOEBSVAFQNXCEV IVJ JSAFQNXCEV

AND THE ETHOD O EN R TION AND DE TION

Giả sử F = R

XEJIQYS IFS KECVKXECVPSOXCKIXS XTS

TODA E ARE OIN O N E TI ATE THE

XTS EFCSO IVJ AEVASNXOEBAFQNXEKFINTQ

THE ORIE AND ON E T O R TO RA H

Trang 9

IVJ XTSMSXTEJOEBSVAFQNXCEV IVJ JSAFQNXCEV

AND THE ETHOD O EN R TION AND DE R TION

Đến đây ta đã có thể hoàn thiện đoạn plaintext:

=> Plaintext:

XEJIQ YS IFS KECVK XE CVPSOXCKIXS XTS

TODAY WE ARE GOING TO INVESTIGATE THE

XTSEFCSO IVJ AEVASNXO EB AFQNXEKFINTQ

THEORIES AND CONCEPTS OF CRYPTOGRAPHY

IVJ XTS MSXTEJO EB SVAFQNXCEV IVJ JSAFQNXCEV

AND THE METHODS OF ENCRYPTION AND DECRYPTION

Polyalphabetic Ciphers

Điển hình là mật mã Vigenere

Plaintext: TODAY WE MOVE BE PREPARED

Trang 10

Ta chọn keyword là MOVE Keyword được đặt phía trên plaintext và lặp lại cho đến khi hết đoạnplaintext:

Key: MOVEM OV EMOV EM OVEMOVEMPlaintext: TODAY WE MOVE BE PREPARED

=> Ciphertext: FCYEK KZ QAJZ FQ DMIBOMIP

Transposition Ciphers

Giữ lại nguyên bản các chữ cái và dịch chuyển vị trí của chúng

Ví dụ: caesar shift -> sarshi ftcae (dịch trái 3 bước)

Đơn giản hơn:

caesar shift -> saesat chifr (chữ cái đầu và cuối của mỗi từ sẽ hoán đổi vị trí cho nhau )

The Split Rail Cipher

Còn gọi là Rail Fence Cipher, là một hình thức của mã chuyển vị

Ví dụ với thông điệp: So far there has been little math, which makes me happy!

Ta có đoạn Plaintext như sau:

Nhằm tăng độ phức tạp cho Split Rail Cipher

Ví dụ ta dung lại đoạn Plaintext cũ:

SOFARTHEREHASBEENLITTLEMATHWHICHMAKESMEHAPPY

Trang 11

Tuy nhiên nó vẫn chưa đủ mạnh cho các bí mật cao cấp hơn.

Tiếp tục làm tăng độ phức tạp của mật mã :

Trang 12

Do sử dụng tiêu chuẩn của bảng chữ cái tiếng Anh nên độ mã hóa sẽ không mạnh => làm tăng độ mã hóa

Bằng cách tạo ra một cụm từ khóa: “When in the course of human events,”

Sắp xếp các chữ cái này vào bảng chữ cái 5x5, các chữ cái sẽ được thêm vào cho đến hết, đến chữ cáicuối cùng, các ô còn trống sẽ được đưa các chữ cái còn lại trong bảng chữ cái vào

Trang 13

The one-time pad

Sử dụng một khóa có cùng chiều dài với thông điệp plaintext và sử dụng khóa này chỉ một lần Khóa

được tạo một cách random Với phương pháp này mật mã sẽ rất khó bị giải vì mỗi khóa chỉ được dung 1

lần

Trang 14

1B CHỨC NĂNG CỦA TOÁN HỌC TRONG MÃ HÓA

Toán học, toán học, toán học chính điều nãy cũng đủ làm cho người ta phải rùng mình Nhiều người nói rằng: “chúng tôi biết, chúng tôi sử dụng khóa, những khóa ấy phải mạnh, chúng tôi biết sử dụng khóa để

mã hóa và giải mã dữ liệu ” Tuy nhiên, để đưa toán học vào mật mã, thì câu hỏi đặt ra ở đây là: “Làm thế nào thuật toán làm việc? làm thế nào mã hóa khóa thật sự?”

Câu trả lời đó là toán học và thuật toán Chúng ta hãy cùng nhìn vào các kỹ thuật mã hóa cổ điển chẳng hạn như Caesar, Transpotions, Enigma and Polybius Tuy nhiên, các kỹ thuật mã hóa hiện đại nó phức tạphơn nhiều so với việc chỉ đơn giản là chuyển đổi ký tự thành các ký tự khác Thuật toán mã hóa hiện đại

sử dụng toán học

Bên trong, máy tính xủ lý mọi thứ bằng các chỗi nhị phân 1 và 0

Trang 15

Gần như tất cả các công thức toán học trong mã hóa bao gồm chữ và số Nó ko phải là chữ giống như các chữ trong các thông điệp rõ ràng Mà là nó đại diện cho 1 giá trị cụ thể.

Ví dụ, quá trình mã hóa là E, quá trình giải mã là D, chuỗi Ciphertext là C, và plaintext là P

Chẳng hạn như: từ math có giá trị số là 13, 1, 20, 8 Nó là các ký tự đầu tiên, 8, 13 và 20 trong bảng chữ

cái Nếu ta lấy các giá trị số và ghép chúng lại thành chuỗi thì ta được 1 số 13012008 (thêm giá trị số 0 vào số có 1 chữ số.)

Inverse operations:

Khi mã hóa 1 cái gì đó, để chắc chắn rằng nó được sử dụng thì nó phải được giải mã Trong quan điểm toán học, điều này được gọi là nghịch đảo Có 2 thuật ngữ được sử dụng trong phần này là inverse

functions và inverse numbers

Chức năng nghịch đảo, bạn đã từng sử dụng nhiều trong cuộc sống của bạn bạn nên suy nghĩ nó với 1 cáitên mới Như cộng, trừ, nhân và chia là inverse functions.theo sau đây là những ví dụ về inverse

functions:

Trang 16

Bạn đã nhìn thấy 3 ví dụ thường thấy trong toán học, ví dụ đầu tiên là cộng và trừ, ví dụ thứ 2 là nhân và chia Đó là những inverse functions khác nhau

Trong 2 ví dụ đầu tiên, có 2 hoạt động được thực hiện Một là “mã hóa” số và 1 là “giải mã” số

Ví dụ thứ 3, sử dụng inverse number

Công thức toán học của inverse functions và number functions có thể giống như ví dụ sau đây: Nếuchúng

ta có 2 số nguyên tố x và y Các thao tác inverse là: x + y = 10 và 10 –y = x, x*y = 10 và 10/y = x

Prime numbers:

Khi chúng ta có 1 số, chẳng hạn là 10, ta lấy nó chia cho 1 số và không có sự chỉ dẫn nào (ko có dữ kiện nào) Thì chúng ta sẽ ko có kết quả Tại sao? Đơn giản là ta không có đủ thông tin để thực hiện phép chia này, và tất nhiên câu hỏi đặt ra là: lấy 10 chia cho cái gì? 1, 2, 5 hay 10? Hoặc có thể tao lấy 10 chia cho 1

số và kết quả số dư khác 0, chẳng hạn như 3, 6

Khi ta chia 10, và kết quả của chúng ta có số dư khác 0, phải chia cho ước của nó Chẳng hạng ở ví dụ này, ước của 10 là 1,2,5 hoặc 10

Trong ví dụ của chúng ta (số 10) Chúng ta có 4 ước

Số nguyên tố là 1 số chỉ có 2 ước số là 1 và chính nó Chẳng hạn như: 11,13,17, 19

Relatively prime: (số nguyên tố cùng nhau)

Sau đây là ví dụ về số nguyên tố cùng nhau:

Trang 17

Số 24 không phải là số nguyên tố, vì nó có ước khác ngoài 1 và 24

Cặp số 39 và 21 ko phải là cặp số nguyên tố cùng nhau vì nó có chung 2 ước là 1 và 3

Cặp số 39 và 25 là cặp số nguyên tố cùng nhau, vì chúng chỉ có 1 ước là 1, và số 25 là số nguyên tố.và 1

là ước chung lớn nhất của nó

Vậy cặp số nguyên tố cùng nhau là 1 số là số nguyên, nó với số còn lại có ước chúng lớn nhất là 1

Math Called Mod: (chia lấy dư)

 [(a mod n) + (b mod n)] mod n = (a + b) mod n

 [(a mod n) - (b mod n)] mod n = (a - b) mod n

 [(a mod n) * (b mod n)] mod n = (a * b) mod n

Binary and hex values:

Trang 19

1C PRIVATE KEY EXCHANGE

- Khóa rất quan trọng trong việc mã hóa và bảo mật dữ liệu Từ xưa đến nay, các giải thuật mã hóa

dù là phức tạp nhất vẫn được giải mã chỉ vì bị lộ khóa Chính vì thế, khóa cần phải được bảo mật

- Dưới đây là sơ đồ mã hóa và giải mã với khóa K1

Number Generator

- Trong một thuật toán mã hóa khóa đối xứng đơn giản thì Khóa là một số ngẫu nhiên, có thể được chọn bởi người sử dụng thuật toán (người mã hóa) Vấn đề ở đây là làm sao có thể chọn một số ngẫu nhiên và thế nào là số ngẫu nhiên thực sự

Trang 20

- Với việc chọn ra một số trong một dãy số đủ lớn và chọn nhiều lần thì hầu hết các nhà toán học đều có thể tìm ra mẫu chung cho các số đó Nhà phân tích sẽ tìm kiếm các mẫu và công thức chung cho các con số từ dạng thập phân và cả nhị phân của chúng Một số không có mẫu và công thức rõ ràng thì nó gần như là một số ngẫu nhiên.

- Để chọn ra các con số ngẫu nhiên làm khóa đối xứng, ta sử dụng thiết bị gọi là Random Number Generator (RNG) RNG thu thập tất cả các số liệu thống kê từ nhiều nguồn khác nhau làm đầu vào để kiểm tra độ ngẫu nhiên Các số liệu này có thể là thông số của dòng điện hoặc các số liệu thời tiết … Sau khi chọn ra được một số ngẫu nhiên, RNG sẽ đưa số này vào nơi cần Khi một yêu cầu tạo số ngẫu nhiên khác được đưa đến RNG, thì RNG sẽ tạo ra một hệ dữ liệu mới để sử dụng cho việc tạo số ngẫu nhiên, nên các con số được tạo ra ở lần thứ 2 này sẽ không bao giờ trùng với lần đầu tiên

- Để tránh trường hợp người sử dụng thuật toán mã hóa không có RNG, mỗi thuật toán mã hóa đềuphải tự tạo ra được số ngẫu nhiên để sử dụng Pseudo-Random Number Generator (PRNG)

- PRNG là phần mềm tạo ra các số ngẫu nhiên giả Gọi là ngẫu nhiên giả bởi vì nó luôn tạo ra các

số giống nhau ở mỗi lần chạy Vì thế cần một chức năng để cho các số được tạo ra là duy nhât Cách giải quyết ở đây là việc tạo số từ các giá trị nhập vào khác nhau gọi là seed Seed có thể là mọi con số trong máy tính ví dụ như ngày giờ được tính đến mili giây, hoặc tọa độ con trỏ chuột

- Các seed trước khi trở thành giá trị đầu vào của PRNG sẽ được kết hợp với nhau để tăng độ phức tạp Việc này sẽ giúp PRNG tránh việc tạo ra các con số giống nhau

The Block, the Stream and the Feistel

1 The Block Cipher

- Là thuật toán mã hóa khóa đối xứng mã hóa từng block dữ liệu thay vì từng bit Các block thường

là bội số của 8 hoặc 64 bit

- Nếu từng block giống nhau thì sẽ cho ra các kết quả mã hóa giống nhau Việc này làm giảm độ bảo mật của thuật toán Để giải quyết việc giống nhau của các block ta sử dụng feedback mode gọi là Cipher Block Channing (CBC)

- CBC thực hiện phép toán XOR giữ plaintext và cipher text Ví dụ như một plaintext được đưa vào mã hóa thì đã được XOR với kết quả của block trước đó Đối với block đầu tiên, kết quả sẽ được XOR với giá trị Initial Value (IV)

- IV cũng là một giá trị seed và người mã hóa lẫn giải mã đều biết giá trị này IV được bảo mật và gởi từ người mã hóa đến người giải mã cùng với khóa

- Dưới đây là sơ đồ của CBC

Ngày đăng: 08/04/2015, 01:08

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