Tải bản đầy đủ (.docx) (22 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (273.11 KB, 22 trang )


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

BÁO CÁO THỰC HÀNH

Bộ môn

: Lý thuyết mật mã

Giáo viên bộ môn

: Trịnh Viết Cường

Nhóm thực hiện

: Nhóm 4

Thành viên

: Nguyễn Hữu Nhân ( Trưởng nhóm )
Lê Ngọc Hưng
Phạm Hữu Long
Lê Sỹ Nhật Linh


Mục lục


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ột


bả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. Trong
má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ại
mộ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 đến
vấn đề chống phá mã trong các trường hợp biết trước bản rõ (known-plaintext), hay
bả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 được
chú 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ần
trì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 !


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ả 2
tá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ột
thuậ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á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 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ô 1bit được mã hóa thành bản mã 1-bit mỗi lần).
- Ư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 độ đơn
giả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 logic
bở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êm
và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ên
mộ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êm
vào trong độ dài 1 khóa đối xứng, thì độ khó của việc phá vỡ mã hóa đó bằng tấn

cô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 an
toà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ùng
khô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ày
nhiều giao thức website đã sử dụng kết hợp cả mã hóa đối xứng và bất đối xứng
nhằ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ạng
internet 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ị khai
thá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ệt
tiê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


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 cho
hacker 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ốc
gia 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ểm
yếu nghiêm trọng hơn đã được xác định có thể được khai thác. Vào năm 2006, Elad
Barkan, Eli Biham và Nathan Keller đã trình diễn các cuộc tấn công chống lại
A5/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

cứ lúc nào.
Theo giáo sư Jan Arild Audestad, tại quá trình tiêu chuẩn hóa bắt đầu vào
năm 1982, A5/1 ban đầu được đề xuất có độ dài khóa là 128 bit. Vào thời điểm đó,
128 bit được dự kiến sẽ an toàn trong ít nhất 15 năm. Hiện tại người ta tin rằng 128
bit trên thực tế vẫn sẽ được bảo mật cho đến khi sự ra đời của điện toán lượng tử.
Người Anh đề xuất độ dài khóa là 48 bit, trong khi người Tây Đức muốn mã hóa
mạnh hơn để bảo vệ chống lại gián điệp Đông Đức, do đó, sự thỏa hiệp đã quyết
định độ dài khóa là 54 bit. [6]
2.2)RC4
Các nhà nghiên cứu bảo mật đã phát triển một kỹ thuật thực tế và khả thi có
khả năng tấn công các thuật toán mã hóa RC4, hiện vẫn được sử dụng rộng rãi để
mã hóa thông tin trên Internet. Tuy nhiên, điểm yếu trong thuật toán được phát


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 hai
nhà 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ày
thô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 RC4
cầ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ấn
cô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 trong
WPA-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ính
xá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ông
việ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ộc

tấ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ếp
tụ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ối
giữ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 web
HTTPS được bảo vệ bằng giao thức TLS, các nhà nghiên cứu sử dụng một trang
web HTTP riêng biệt để đưa vào mã JavaScript, khiến cho các máy tính mục tiêu
truyề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 an
toà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 trong
khoảng 75 giờ, truyền 4450 yêu cầu mỗi giây. Tuy nhiên, trong thực tế, thời gian


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ác
cuộ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 chi
tiế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:
3.1) A5/1
-

A5/1 được dùng trong mạng điện thoại GSM, để bảo mật dữ liệu trong quá trình

-

liên lạc giữa máy điện thoại và trạm thu phát sóng vô tuyến.
Đơn vị mã hóa của A5/1 là một bít. Bộ sinh số mỗi lần sẽ sinh ra hoặc bít 0 hoặc bít


-

1 để sử dụng trong phép XOR.
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 bit
audio.
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 8
bits (bộ đếm) là Q1 và Q2 và một khối thay thế (S-block) có kích thước 256x8 (256
phầ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ép

-

XOR.
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


-


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 ưu
cho 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óa
mật mã được sử dụng rộng rãi nhất trong thực thi nhiều giao thức phổ biến, bao
gồ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:
- Mục tiêu chính:
+ 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).
- Mục tiêu phụ đề 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



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ài
thực hành )
- Phần mềm sử dụng : Netbeans.


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:
+ Quay X:
• t = XOR(x13, x16, x17,x18)
• xj = xj-1 với j = 18, 17,16 ..., 1
• x0 = t
Code :
if (x[8] == m) {
int t = x[13] ^ x[16] ^ x[17] ^ x[18];
for (int j = 18; j > 0; j--)
x[j] = x[j - 1];
x[0] = t;
}
+ Quay Y:
• t = XOR(y20,y21)
• yj = yj-1 với j = 21, 20, 19, ..., 1
• y0 = t



Code:
if (y[10] == m) {
int t = y[20] ^ y[21];
for (int j = 21; j > 0; j--)
y[j] = y[j - 1];
y[0] = t;
}
+ Quay Z:
• t = XOR(z7,z20,z21,z22 )
• zj = zj-1 với j = 22, 21, 20, ..., 1
• z0 = t
Code:
if (z[10] == m) {
int t = z[7] ^ z[20] ^ z[21] ^ z[22];
for (int j = 22; j > 0; j--)
z[j] = z[j - 1];
z[0] = t;
}
Cho ba bit x, y, z, ta định nghĩa một hàm maj(x, y, z) là hàm “chiếm đa số”,
nghĩa là nếu trong 3 bít x, y, z có từ hai bít 0 trở lên thì hàm trả về giá trị 0, nếu
không hàm trả về giá trị 1. Tại bước sinh số thứ i, các phép tính sau được thực hiện:
m = maj(x8, y10, z10)
Code:


int m = x[8] + y[10] + z[10];
//Neu 2 bit 1 tro len m = 1, nguoc lai m = 0;
if (m == 2 || m == 3)
m = 1;

else
m = 0;
• 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ứ i
trong 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:
Code:
public void KhoiTao() {
//Khoi tao S;
for (int i = 0; i < 256; i++) {


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

//Hoan vi S
int j = 0;
for (int i = 0; i < 256; i++) {
j = (j + s[i] + t[i]) % 256;
int temp = s[i];
s[i] = s[j];

s[j] = temp;
}
}
Trong giai đoạn này, trước tiên dãy S gồm các số nguyên 3 bít từ 0 đến 255
được sắp thứ tự tăng dần. Sau đó dựa trên các phần tử của khóa K, các phần tử của
S được hoán vị lẫn nhau đến một mức độ ngẫu nhiên nào đó.
• Giai đoạn sinh số:
Code:
public void SinhSo() {
KhoiTao();
boSinhSo = "";
int i = 0;
int j = 0;
for (int o = 0; o < banRo.length(); o++) {


i = (i + 1) % 256;
j = (j + s[i]) % 256;
int temp = s[i];
s[i] = s[j];
s[j] = temp;
int T = (s[i] + s[j]) % 256;
int k = s[T];
bss[o] = k;
boSinhSo += Integer.toString(k);
}
}
Trong giai đoạn này, các phần tử của S tiếp tục được hoán vị. Tại mỗi bước
sinh số, hai phần tử của dãy S được chọn để tính ra số k 8 bít là số được dùng để
XOR với đơn vị mã hóa của bản rõ.

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 bit
XOR.
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) {


int val = b;
for (int i = 0; i < 8; i++) {
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
}
int n = binary.length();
3. Tiếp đến chúng ta thực hiện tìm bit khoá thứ i để tìm ra bit thứ i trong bản
rõ / bản mã ( phần 1) Mã hoá )
4. Cuối cùng chúng ta thực hiện convert lại kí tự từ byte ( làm ngược lại
bước 1.) và ghép lại để hoàn tất văn bản/ file mã hoá
2.2) RC4
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 bit
vớ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{
banMa.append((char)(banRo.charAt(i)^bss[i]));

}

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


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

Hệ mã hoá A5/1


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 được
kích hoạt ( Nhận key và giải mã, mã hoá hay mở file chứa key,…)


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("");
TextP1A51.setText("");
TextP2A51.setText("");
labelA51.setText("...");

rbTextA51.setSelected(true);
rbText_A51.setSelected(true);
}
Sự kiện xảy ra khi kích hoạt button reset


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


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:
-

ion/vi/security/what-is-symmetric-keycryptography
/> />
[6]. Một số tài liệu online khác.



×