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

Báo Cáo Thực Hành Hệ Mã Hoá A51 RC4

22 977 17

Đ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 22
Dung lượng 265,71 KB

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

Nội dung

Báo cáo thực hành hệ mã hoá khoá bí mật A51 RC4. Mật mã khóa đối xứng (hay mã hóa đối xứng) là một loại sơ đồ mã hóa trong đó một khóa giống nhau sẽ vừa được dùng để mã hóa, vừa được dùng để giải mã các tệp tin. Phương pháp mã hóa thông tin này đã được sử dụng khá phổ biến từ nhiều thập kỷ với mục đích tạo ra cách thức liên lạc bí mật giữa chính phủ với quân đội. Ngày nay, các thuật toán khóa đối xứng được ứng dụng rộng rãi trên nhiều hệ thống máy tính khác nhau nhằm tăng cường bảo mật cho dữ liệu.

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HỒNG ĐỨC

Trang 3

Mục lục

Trang 4

LỜI NÓI ĐẦU

Cùng với sự phát triển của máy tính, thông tin ngày một trở nên đa dạng, mộtbản tin bây giờ không chỉ đơn giản là bản tin gồm các chữ cái, mà có thể gồm cảcác thông tin về định dạng văn bản như tài liệu HTML… Ngoài ra bản tin có thếxuất hiện dưới các loại hình khác như hình ảnh, video, âm thanh… Tất các bản tin

đó đều được biểu diễn trên máy vi tính dưới dạng một dãy các số nhị phân Trongmáy tính các chữ cái được biểu diễn bằng mã ASCII

Và cũng tương tự như bản tin ngôn ngữ, trong bản tin nhị phân cũng tồn tạimột số đặc tính thống kê nào đó mà người phá mã có thể tận dụng để phá bản mã,

dù rằng bản mã bây giờ tồn tại dưới dạng nhị phân Mã hóa hiện đại quan tâm đếnvấn đề chống phá mã trong các trường hợp biết trước bản rõ (known-plaintext), haybản rõ được lựa chọn (chosen-plaintext)

Với các đặc tính quan trọng của thông tin, việc bảo mật thông tin luôn đượcchú trọng hàng đầu Vì vậy, những phương pháp mã hoá và giải mã lần lượt ra đời,mang theo nhiệm vụ an toàn và bảo mật thông tin cho người dùng

Với sự hướng dẫn của giảng viên bộ môn Lý Thuyết Mật Mã, sau đây chúng

em xin trình bày khái quát về hệ mã hóa khóa đối xứng A51 và RC4 Trong phầntrình bày còn nhiều thiếu sót Rất mong được sự góp ý của Thầy Trịnh Viết Cường

và các bạn trong lớp để sản phẩm được hoàn thiện hơn

Chúng em xin chân thành cảm ơn !

Trang 5

I) GIỚI THIỆU HỆ MÃ HOÁ

1) Giới thiệu về hệ mã hoá khoá đối xứng

Mật mã khóa đối xứng (hay mã hóa đối xứng) là một loại sơ đồ mã hóa trong

đó một khóa giống nhau sẽ vừa được dùng để mã hóa, vừa được dùng để giải mãcác tệp tin Phương pháp mã hóa thông tin này đã được sử dụng khá phổ biến từnhiều thập kỷ với mục đích tạo ra cách thức liên lạc bí mật giữa chính phủ với quânđội Ngày nay, các thuật toán khóa đối xứng được ứng dụng rộng rãi trên nhiều hệthống máy tính khác nhau nhằm tăng cường bảo mật cho dữ liệu

- Cách thức hoạt động

+ Một sơ đồ mã hóa đối xứng thường sử dụng một khóa đơn được chia sẻgiữa 2 hoặc nhiều người dùng với nhau Khóa duy nhất này sẽ được dùng cho cả 2tác vụ mã hóa và giải mã các văn bản thô (các tin nhắn hoặc mảnh dữ liệu cần được

mã hóa) Quá trình mã hóa bao gồm việc chạy văn bản thô (đầu vào) thông qua mộtthuật toán mã hóa còn gọi là mật mã (cipher) sẽ lần luợt tạo ra các bản mã -ciphertext (đầu ra)

+ Khi sơ đồ mã hóa đủ mạnh thì cách duy nhất để đọc và truy cập được cácthông tin chứa trong các bản mã là sử dụng khóa tương ứng để giải mã Quá trìnhgiả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 bruteforce 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àitớ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ạithô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

Trang 6

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óathành các bản mã 128-bit) Khác với mật mã block, mật mã stream không mã hóa

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

1 Ưu và nhược điểm

+ Các thuật toán đối xứng vừa có khả năng cung cấp mức độ bảo mật khácao, vừa có khả năng cho phép mã hóa và giải mã tin nhắn rất nhanh Mức độ đơngiản về tương quan của các hệ thống đối xứng cũng là một ưu điểm về mặt logicbởi nó sử dụng ít năng lượng tính toán hơn so với các hệ thống bất đối xứng Thêmvào đó, cấp độ bảo mật mà mã hóa đối xứng mang lại có thể được nhân rộng lênmột cách đơn giản chỉ bằng việc tăng độ dài của các khóa Với mỗi bit được thêmvào trong độ dài 1 khóa đối xứng, thì độ khó của việc phá vỡ mã hóa đó bằng tấncông brute force sẽ tăng lên theo cấp số mũ

+ Mặc dù mã hóa đối xứng mang lại khá nhiều lợi ích rộng rãi, nhưng nó lại

sở hữu một bất lợi khá lớn: vấn đề cố hữu trong việc truyền tải các khóa dùng để

mã hóa và giải mã dữ liệu Nếu các khóa này được chia sẻ lên các kết nối không antoàn thì nguy cơ bị can thiệp bởi một bên thứ 3 là rất lớn Khi một người dùngkhông được ủy quyền chiếm được quyền truy cập một khóa đối xứng thì mọi dữliệu được mã hóa bằng khóa đó sẽ bị xâm phạm Để giải quyết vấn đề này, hiện nàynhiều giao thức website đã sử dụng kết hợp cả mã hóa đối xứng và bất đối xứngnhằm thiết lập các kết nối an toàn Giao thức mã hóa Bảo mật Tầng Vận tải (TLS)

là một trong nhiều ví dụ điển hình được sử dụng để bảo mật cho phần lớn mạnginternet ngày nay

+ Cần lưu ý rằng bất cứ loại mã hóa máy tính nào cũng đều rất dễ bị khaithác nếu không được vận hành đúng cách Mặc dù các khóa có độ dài đủ lớn sẽ triệttiêu được các nguy cơ về tấn công brute force toán học, nhưng nếu có sai sót trong

Trang 7

việc triển khai từ phía các lập trình viên thì sẽ tạo ra các điểm yếu mở đường chohacker thực hiện các vụ tấn công mạng

2) Vấn đề bảo mật

2.1)A5/1

Một số cuộc tấn công vào A5/1 đã được công bố và Cơ quan An ninh Quốcgia Hoa Kỳ có thể thường xuyên giải mã các tin nhắn A5/1 theo các tài liệu nội bộđược phát hành

Một số cuộc tấn công đòi hỏi một giai đoạn tiền xử lý tốn kém mà sau đómật mã có thể bị phá vỡ trong vài phút hoặc vài giây Cho đến gần đây, điểm yếu làcác cuộc tấn sử dụng giả định bằng các đoạn văn bản đã biết Năm 2003, các điểmyếu nghiêm trọng hơn đã được xác định có thể được khai thác Vào năm 2006, EladBarkan, Eli Biham và Nathan Keller đã trình diễn các cuộc tấn công chống lạiA5/1, A5/3 hoặc thậm chí GPRS cho phép kẻ tấn công truy cập vào các cuộc tròchuyện trên điện thoại di động GSM và giải mã chúng trong thời gian thực hoặc bất

Trang 8

hiện trong nhiều năm qua chỉ ra rằng lẽ ra RC4 phải được “xóa sổ” khỏi Internet từlâu Nhưng, hiện có khoảng 50% tổng lưu lượng truy cập TLS đang được bảo vệbằng thuật toán mã hóa RC4 Hiện giờ, tình hình thậm chí còn tồi tệ hơn, khi hainhà nghiên cứu an ninh Bỉ thực nghiệm một cuộc tấn công thực tế nhắm vào RC4,cho phép kẻ tấn công chỉ tốn khoảng thời gian ngắn hơn trước rất nhiều để phơi bàythông tin được mã hóa

Tấn công nhắm vào RC4 với độ chính xác lên đến 94%

Năm 2013, thực nghiệm cho thấy, việc tiến hành một cuộc tấn công vào RC4cần hơn 2.000 giờ để hoàn thành Tuy nhiên, hồi tháng 3 năm nay, một cuộc tấn tấncông tương tự nhắm vào thuật toán mã hóa RC4 trong TLS chỉ tốn 312-776 giờ đểthực thi Gần đây, một bài báo có tiêu đề “Phá vỡ thuật toán mã hóa RC4 trongWPA-TKIP và TLS” của các tác giá Mathy Vanhoef và Frank Piessens, đến từtrường Đại học Leuven ở Bỉ, đã mô tả một cuộc tấn công thực nghiệm cho phép họgiải mã các tập tin cookie được mã hóa bằng RC4 trong vòng 75 giờ với độ chínhxác 94% Trong một bài viết đăng tải trên blog, các nhà nghiên cứu cho hay: “Côngviệc chúng tôi tiến hành giúp giảm đáng kể thời gian thực hiện thực hiện một cuộctấn công, và rõ ràng sự cải thiện này rất đáng lo ngại Cần phải xem xét việc tiếptục sử dụng RC4”

Phá vỡ giao thức mã hóa WPA – TKIP chỉ trong vòng 1 giờ

Những kẻ tấn công có thể khai thác kỹ thuật này để theo dõi đường kết nốigiữa nạn nhân và một trang web HTTPS được bảo vệ, hoặc các mạng không dâyđược bảo vệ bởi giao thức mã hóa WPA (WPA-TKIP) Trong trường hợp trang webHTTPS được bảo vệ bằng giao thức TLS, các nhà nghiên cứu sử dụng một trangweb HTTP riêng biệt để đưa vào mã JavaScript, khiến cho các máy tính mục tiêutruyền đi các cookie xác thực mã hóa liên tục Họ có thể giải mã một cookie antoàn với độ chính xác 94% sử dụng 9×227 bản mã Cuộc tấn công diễn ra trongkhoảng 75 giờ, truyền 4450 yêu cầu mỗi giây Tuy nhiên, trong thực tế, thời gian

Trang 9

cần thiết để thực hiện cuộc tấn công có thể giảm xuống còn 52 giờ Tuy nhiên, cáccuộc tấn công mới chống lại WPA-TKIP chỉ cần một giờ để thực hiện, cho phép kẻtấn công giải mã các gói tùy ý Thông tin chi tiết về kết quả này sẽ được các nhànghiên cứu trình bày tại Hội nghị chuyên đề an ninh USEIX sắp tới ở Washington

DC Hiện tại, các nhà nghiên cứu đã công bố một báo cáo chính thức với nhiều chitiết bổ sung về các kỹ thuật tấn công của họ

3) Giới thiệu khái quát về hệ mã hoá A5/1 và RC4:

- Mã hóa A5/1 có thể thực hiện dễ dàng bằng các thiết bị phần cứng, tốc độ nhanh

Do đó A5/1 đã từng được sử dụng để mã hóa các dữ liệu Real-Time như các dãy bitaudio

3.2) RC4

- RC4 được dùng trong giao thức SSL để bảo mật dữ liệu trong quá trình truyền dữliệu giữa Web Server và trình duyệt Web Ngoài ra RC4 còn được sử dụng trong mãhóa WEP của mạng Wireless LAN

- RC4 có độ dài khoá không cố định, trong sơ đồ của RC4 có sử dụng 2 thanh ghi 8bits (bộ đếm) là Q1 và Q2 và một khối thay thế (S-block) có kích thước 256x8 (256phần tử, kích thước mỗi phần tử là 8 bits) Giá trị của khối S là một hóan vị nào đócủa các số từ 0 đến 255 Bộ sinh số mỗi lần sinh ra một byte để sử dụng trong phépXOR

- Quá trình sinh số của RC4 sinh ra dãy số ngẫu nhiên, khó đoán trước , vì vậy RC4đạt được mức độ an toàn cao theo tinh thần của mã hóa One-Time Pad

Trang 10

- Mã hóa RC4 hoàn toàn được thực hiện trên các số nguyên một byte do đó tối ưucho việc thiết lập bằng phần mềm và tốc độ thực hiện nhanh hơn so với mã khối (

Block Cipher )

- Mặc dù đã tồn tại từ rất lâu, nhưng RC4 (Rivest Cipher 4) vẫn là thuật toán mã hóamật mã được sử dụng rộng rãi nhất trong thực thi nhiều giao thức phổ biến, baogồm: – SSL (Secure Socket Layer) – TLS (Transport Layer Security) – WEP(Wired Equivalent Privacy) – WPA (Wi-Fi Protected Access) – RDP của Microsoft(Remote Desktop Protocol) – BitTorrent – Và nhiều giao thức khác

II) KẾ HOẠCH THỰC HIỆN BÀI TẬP LỚN

1) Nội dung thực hiện và các mục tiêu đề ra:

+ Thực hiện được việc hệ thống chọn key ngẫu nhiên thay vì nhập

+ Chấp nhận key được nhập từ file

+ Chấp nhận mã hoá và giải mã file truyền vào

+ Mã hoá được các loại file cơ bản truyền vào như ảnh (jpg, png,…), nhạc(mp3, mov,…) hay video (mp4, flv,…)

+ Tạo được giao diện phù hợp với người sử dụng phổ thông

+ Có thể lưu file được mã hoá, file key

+ Tạo cơ sở dữ liệu sql để lưu trữ tài khoản và mật khẩu cùng dữ liệu

Trang 11

2) Các công cụ sử dụng trong bài thực hành:

- Ngôn ngữ : java ( trong đó sử dụng java swing để tạo nên phần giao diện cho bàithực hành )

- Phần mềm sử dụng : Netbeans

Trang 12

III) CÁC BƯỚC THỰC HIỆN

1) Mã hoá:

1.1) A5/1

Cơ chế thực hiện của bộ sinh số A5/1 là như sau: Bộ sinh số gồm 3 thanh ghi

X, Y, Z Thanh ghi X gồm 19 bit, ký hiệu là (x0, x1, …, x18) Thanh ghi Y gồm 22 bit(y0, y1, …, y21) Thanh ghi Z lưu 23 bit (z0, z1, …, z22) Khóa K ban đầu có chiều dài

64 bít và lần lượt được phân bố vào các thanh ghi: K → XYZ Các thanh ghi X, Y,

Z được biến đổi theo 3 quy tắc:

Trang 13

m = maj(x8, y10, z10)

Code:

Trang 14

• If x8 = m then thực hiện quay X

• If y10 = m then thực hiện quay Y

• If z10 = m then thực hiện quay Z

Và bít được sinh ra là: si = XOR(x18,y21,z22) Bít si được XOR với bít thứ itrong bản rõ để có được bít thứ i trong bản mã theo quy tắc của mã dòng

1.2) RC4:

RC4 Khác với A5/1, đơn vị mã hóa của RC4 là 8 bít RC4 dùng 2 mảng S và

T mỗi mảng gồm 256 số nguyên 8 bít (từ 0 đến 255) Khóa là một dãy gồm N sốnguyên 8 bít với N có thể lấy giá trị từ 1 đến 256 Bộ sinh số mỗi lần sinh ra 8 bít

để sử dụng trong phép XOR Quá trình sinh số của RC4 gồm hai giai đoạn:

• Giai đoạn khởi tạo:

Trang 15

s[i] = i;

t[i] = Integer.parseInt(Character.toString(khoaK.charAt(i %khoaK.length())));

S được hoán vị lẫn nhau đến một mức độ ngẫu nhiên nào đó

• Giai đoạn sinh số:

Trang 16

2) Đưa dữ liệu vào và giải mã

2.1) A5/1:

1 Các đoạn văn, hay file thực chất là 1 tập hợp các chuỗi bit xác định trong

file đó Vì vậy muốn đưa vào máy tính và giải mã / mã hoá, chúng ta cần đưa dữliệu byte theo hệ nhị phân (binary) để máy tính có thể thực hiện các lệnh so bitXOR

2 Bước tiếp theo, ta tính độ dài chuỗi để tìm ra độ dài khoá cần tìm

Lưu ý : 1 byte = 8 bit nên 1 byte có thể biểu diễn đến 111111112 = 256 kí tự

StringBuilder binary = new StringBuilder();

for (byte b : bytes) {

Trang 17

Thực hiện giải mã/ mã hoá RC4 đơn giản hơn A5/1 vì mặc định đã đặt mảng

256 kì tự tương đương 1 byte Vì vậy chúng ta chỉ đơn giản XOR lần lượt từng bitvới bit thứ i theo thứ tự trong key, ghép lại để hoàn tất văn bản/ file mã hoá

for(int i=0; i<banRo.length(); i++)

{ banMa.append((char)(banRo.charAt(i)^bss[i]));

}

3) Giao diện:

Sử dụng java swing trong netbeans để tạo giao diện:

Trang 18

Thiết kế kéo thả tương tự như GUI trong Matlab

Hệ mã hoá A5/1

Trang 19

Hệ mã hoá RC4

- Sau khi hoàn thành tạo giao diện, đầu tiên, chúng ta cần thiết lập dữ liệuđầu vào, như nhập từ bàn phím bằng JTextFeild

TextFeild sử dụng để nhập dữ liệu hoặc xuất dữ liệu ra

- Sau đó chúng ta cần thiết lập các sự kiện xảy ra cho các button khi đượckích hoạt ( Nhận key và giải mã, mã hoá hay mở file chứa key,…)

Trang 20

VD : Set sự kiện cho nút reset, khi click vào reset, toàn bộ ô thông tin đã nhập vàkết quả sẽ được xoá đi

private void btResetA51ActionPerformed(java.awt.event.ActionEvent evt)

{ KeyA51.setText("");

Trang 21

IV) KẾT LUẬN

- Nhóm đã hoàn thành hầu hết các mục tiêu đề ra, gồm có:

+ Thực hiện mã hoá thành công dữ liệu nhập vào bằng A5/1 và RC4(Encrypt)

+ Thực hiện giải mã thành công dữ liệu nhập vào bằng A5/1 và RC4(Decrypt)

+ Thực hiện được việc hệ thống chọn key ngẫu nhiên thay vì nhập

+ Chấp nhận key được nhập từ file

+ Chấp nhận mã hoá và giải mã file truyền vào

+ Mã hoá được các loại file cơ bản truyền vào như ảnh (jpg, png,…), nhạc(mp3, mov,…) hay video (mp4, flv,…)

+ Tạo được giao diện phù hợp với người sử dụng phổ thông

+ Có thể lưu file được mã hoá, file key

- Mục tiêu chưa hoàn thành :

+ Tốc độ mã hoá file còn chậm.

+ Tạo cơ sở dữ liệu sql để lưu trữ tài khoản và mật khẩu cùng dữ liệu

Trang 22

V) TÀI LIỆU THAM KHẢO

[1] Giáo trình An toàn và Bảo mật thông tin – TS.Trịnh Viết Cường – giảng viên

khoa CNTT-TT trường Đại học Hồng Đức

[2] Bài giảng An toàn và Bảo mật thông tin, 2008, trường ĐH Nha Trang.

[3] Các tài liệu về lập trình khác :

- Chuyển File thành Byte

- Cách sử dụng hộp thoại Open / Save file trong Java Swing

[4] Các bài báo về an toàn bảo mật A5/1 và RC4

[5] Tài liệu tham khảo trên Internet:

-

https://www.binance.vision/vi/security/what-is-symmetric-key-cryptography

- rc4-trong-wpa-tkip-va-tls/

https://securitydaily.net/da-phat-hien-ky-thuat-pha-giao-thuc-ma-hoa https://en.wikipedia.org/wiki/A5/1

[6] Một số tài liệu online khác

Ngày đăng: 19/10/2020, 08:36

TỪ KHÓA LIÊN QUAN

w