Tải bản đầy đủ (.doc) (31 trang)

MỘT SỐ HỆ MÃ HÓA TRÊN THIẾT BỊ CẦM TAY

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 (1.63 MB, 31 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI: MỘT SỐ HỆ MÃ HÓA TRÊN THIẾT BỊ CẦM TAY
MÔN HỌC: AN TOÀN DỮ LIỆU
Giảng viên: PGS.TS Trịnh Nhật Tiến
Học viên: Tạ Xuân Khiêm
Lớp: K20 CNPM
Hà nội ngày 12/5/2014
Mục lục
Contents
Contents 2
I. Tổng quan 1
1. Giới thiệu 1
1.1 Khái niệm về an toàn thông tin 1
1.2. Các định nghĩa 1
1.3. Các loại mã hoá 1
2. Mã hoá khoá đối xứng (mã hoá khoá quy ước ) 2
2.1. Hệ thống mã hoá khóa đối xứng 2
2.2 Các thuật toán mã hoá khóa đối xứng 2
2.3 Thuật toán Rijndael 4
2.4 Đánh giá các phương pháp mã hoá quy ước 8
3. Mã hoá khoá công khai 8
3.1 Giới thiệu mã hoá khoá công khai 8
3.2 Đánh giá hệ mã hoá khoá công khai 8
3.3 Nơi sử dụng hệ mã hoá công khai 9
II. Ứng dụng hệ mã hoá khoá đối xứng vào bảo mật thông tin trên iPhone, hệ điều hành iOS 7.1 - Thuật toán
Rijndael 9
1. Giới thiệu về iPhone, iOS 9
2. Vấn đề đặt ra 9
3. Ứng dụng Bảo mật dữ liệu 10


3.1Mục đích của ứng dụng 10
3.2 Tóm tắt ứng dụng Bảo mật dữ liệu 10
III. Tài liệu tham khảo: 28
I. Tổng quan
1. Giới thiệu
1.1 Khái niệm về an toàn thông tin
- Ngày nay, sự xuất hiện của Internet và mạng máy tính cùng với sự bùng nổ của các thiết bị di
động đã giúp cho việc trao đổi thông tin trở nên nhanh, gọn, dễ dàng. Chỉ với một số thao tác đơn giản,
người sử dụng có thể truyền cho nhau những thông tin dưới nhiều dạng: văn bản, video, ảnh Tuy
nhiên, việc dễ dàng trao đổi thông tin kèm theo những vấn đề phát sinh. Những thông tin đã được lưu
trữ hay đang truyền tải có thể bị theo dõi hoặc bị đánh cắp. Những thông tin cá nhân nhạy cảm, bí mật
hay chiến lược kinh doanh của các công ty, thậm chí những bí mật quốc gia đều có thể bị đánh cắp.
Điển hình là vụ nghe lén điện thoại gây chấn động thế giới của Cơ quan an ninh quốc gia Mỹ với mục
tiêu là 35 nhà lãnh đạo của các nước và nhiều triệu người trên thế giới bao gồm phần lớn người dân
Mỹ. Vụ việc nói lên phần nào sự cấp bách của các biện pháp bảo mật dữ liệu nói chung và các thiết bị
di động nói riêng.
- Theo số liệu của trung tâm nghiên cứu ABI thì cứ 4 người trên thế giới có 1 người sở hữu điện thoại
di động thông minh.
- Vậy an toàn thông tin là gì: An toàn thông tin là việc phải tổ chức xử lý, lưu trữ và trao đổi
thông tin sao cho tính bảo mật, toàn vẹn, sẵn sàng và độc xác thực thông tin ở mức độ đầy đủ.
1.2. Các định nghĩa
1.2.1. Hệ thống mã hoá: Một hệ thống mã hoá (cryptosystem) là một bộ năm (P, C, K, E, D) thoả mãn
các điều kiện sau:
1. Tập nguồn P là tập hợp hữu hạn tất cả các mẩu tin nguồn cần mã hoá có thể có
2. Tập đích C là tập hợp hữu hạn tất cả các mẩu tin có thể có sau khi mã hoá.
3. Tập khoá K là tập hợp hữu hạn các khoá có thể được sử dụng.
4. Với mỗi khoá k ∈ K tồn tại luật mã hoá ek ∈ E và luật giải mã dk ∈ D tương ứng. Luật mã hoá ek: P
→ C và luật giải mã ek: C → P là hai ánh xạ thoả mãn
dk (ek (x))= x,∀x∈P

Tính chất 4 là tính chất chính và quan trọng của một hệ thống mã hoá. Tính chất này đảm bảo việc mã
hoá một mẩu tin x ∈ P bằng luật mã hoá ek ∈ E có thể giải mã chính xác bằng luật dk ∈ D.
1.3. Các loại mã hoá
1.3.1. Mã hoá khoá đối xứng (hệ mã hoá khoá quy ước )
- Mã hoá quy ước hay còn gọi là mà hoá đối xứng là hệ thống mã hoá sử dụng cùng một loại
khoá gọi là khoá bí mật (secret key/ symmetric key) để thực hiện mã hoá hay giải mã thông tin. Việc
bảo mật thông tin phụ thuộc vào việc bảo vệ khoá bí mật.
- Phương pháp mã hoá quy ước DES được đưa vào sử dụng từ năm 1977 đã không còn được
xem là an toàn khi tốc độ xử lý tính toán của các bộ vi xử lý ngày càng tăng nhanh chóng. Tháng
10/2000, Viên Tiêu chuẩn và Công nghệ Hoa Kỳ NIST đã công bố chuẩn mã hoá mở rộng AES và
quyết định chọn thuật toán Rijndael làm phương pháp mã hoá quy ước đại diện cho AES

1.3.2. Mã hoá khoá công khai
- Mã hoá công khai hay còn gọi là mã hoá bất đối xứng là hệ thống mã hoá sử dụng một cặp
khoá để mã hoá và giải mã thông tin. Một khoá được công bố công khai(khoá công khai) để mã hoá
thông tin, khoá tương ứng còn lại được giữ bí mật (khoá riêng) để giải mã thông tin .
1
2. Mã hoá khoá đối xứng (mã hoá khoá quy ước )
2.1. Hệ thống mã hoá khóa đối xứng
- Là hệ thống mã hoá trong đó quy trình mã hoá và giải mã đều sử dụng chung một khoá gọi là
khoá bí mật. Việc bảo mật thông tin phụ thuộc vào việc bảo mật
- Mô hình mã hoá quy ước:
- Dữ liệu nguồn X được người A tạo bằng mã hoá quy ước với khoá bí mật k sau đó gửi X tới
người nhận B, người nhận B cũng phải sở hữu khoá bí mật này để giải mã tài liệu X. Tuy nhiên nếu
một người C nào đó cũng sở hữu khoá k và tài liệu mã hoá sẽ dễ dàng giải mã và sử dụng được tài liệu
X. Vì vậy việc bảo mật thông tin phụ thuộc vào việc giữ bí mật khoá k.
2.2 Các thuật toán mã hoá khóa đối xứng
- Các thuật toán mã hoá quy ước được phân thành 2 loại: mã hoá theo ký tự và mã hoá theo
khối.
2.2.1 Mã hoá theo ký tự

- Là phương pháp mã hoá bằng cách thay thế từng ký tự trong thông điệp nguồn thành một ký
tự khác trong tập ký tự mã hoá .
2.2.2 Mã hoá theo khối
- Là phương pháp chia thông điệp cần mã hoá thành những khối thông điệp có độ dài cố định,
một hàm mã hoá sẽ thao tác trên từng khối thông điệp để trả về thông điệp mã hoá.
a. Mã hoá DES.
- Tiêu biểu cho phương pháp mã hoá này là phương pháp mã hoá DES (Data
Encryption Standard)
• Năm 1976, cơ quan anh ninh quốc gia Hoa Kỳ (NSA) đã công nhận DES là
chuẩn mã hoá dữ liệu với khoá có độ dài 56 bit.
• DES có kích thước mỗi khối 64 bit, thực hiện mã hoá dữ liệu qua 16 vòng lặp
mã hoá, mỗi vòng sử dụng một khoá chu kỳ 48 bit thu được từ 56 bit ban đầu.
DES sử dụng 8 bảng số Sbox để thao tác. Quá trình mã hoá 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 64 bit. Khoá k có 56
bit. Thực hiện mã hoá 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 khoá 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 hoán vị ngược IP^-1 cho 64 bit thu được.
2
Kết quả cuối cùng chính là khối dữ liệu đã mã hoá y.
Hình 2.1 Cấu trúc thuật toán Feistel dùng trong DES.
• Quá 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 quá
trình mã hoá.
• Do tốc độ tính toán của máy tính ngày càng tăng cao và DES đã được sự chú ý
của các nhà khoa học cũng như những người phá mã (cryptanalyst) nên DES
nhanh chóng trở nên không an toàn. Năm 1977, một dự án bẻ khoá DES được
tiến hành và thành công trong vòng chưa đến 3 ngày với chi phí nhỏ hơn
250.000 $. Vào năm 1999 một mạng máy tính gồm 100.000 máy có thể giải mã

3
một thư tín mã hoá DES chưa đầy 24 giờ.
• Trong quá trình tìm kiếm các thuật toán mới an toàn hơn DES, Tripple DES ra
đời như một biến thể của DES. Tripple DES thực hiện 3 lần thuật toán DES với 3
khoá khác nhau và với trình tự khác nhau. Trình tự thực hiện phổ biến là EDE
(Encrypt - Decrypt – Encrypt), thực hiện xen kẽ mã hoá với giải mã(khoá trong
mỗi giai đoạn là khác nhau).
b. AES (Advanced Encryption Standard)
- Để tìm kiếm một phương pháp mã hoá quy ước mới với độ an toàn cao hơn DES,
NIST đã công bố một chuẩn mã hoá mới thay thế cho chuẩn DES. Thuật toán đại diện
cho chuẩn mã hoá nâng cao AES là thuật toán mã hoá quy ước, sử dụng miễn phí trên
toàn thế giới. Chuẩn AES có các đặc điểm sau:
• Thuật toán mã hoá theo khối 128 bit.
• Chiều dài khoá 128 bit, 192 bit và 256 bit.
• Không có khoá yếu.
• Hiệu quả trên hệ thống Itel Pentium Pro và trên các nền phần cứng, phần mềm
khác.
• Thiết kế đơn giản, đánh giá và cài đặt dễ dàng.
• Chấp nhận bất kỳ chiều dài khoá lên đến 256 bit.
• Có khả năng thiết lập khoá 128 bit (cho tốc độ mã hoá tối ưu).
• Thời gian mã hoá dữ liệu thấp dưới 10/1000 giây trên bộ nhớ vi xử lý 8 bit.
- Sau khi tuyển chọn 2 lần có 5 thuật toán được chọn lựa và được gọi chung là các thuật toán
ứng viên AES bao gồm : MARS, RC6, SERPENT, TWOFISH, RIJNDAEL.
2.3 Thuật toán Rijndael
- Tháng 11/2001 Rijndael được công nhận là thuật toán đại diện cho chuẩn mã hoá mở rộng
AES. Thuật toán Rijndael do hai nhà khoa học Vincent Rijmen và Joan Daeman cung cấp.
- Phương pháp Rijndael mã hoá theo khối. Kích thước khổi và kích thước khoá thay đổi linh
hoạt 128, 192, 256 bit nhờ vậy Rijndael thích hợp với nhiều hệ thống mã hoá khác nhau từ các máy
tính cá nhân, thiết bị di động hay thẻ thông minh.
- Thuật toán Rijndael được xem là có độ an toàn rất cao và có nhiều ưu điểm, nhưng với sự phát

triển mạnh mẽ của ngành công nghiệp máy tính, tốc độ xử lý của chip liên tục được cải thiện dẫn đế
nguy cơ thuật toán Rijndael có thể bị phá vỡ trong tương lai (giống như trường hợp của DES). Do đó,
hiện nay các nhà khoa học đang tìm cách cải tiến mở rộng thuật toán Rijndael để tăng độ an toàn. Các
phiên bản mở rộng 256/384/512-bit[1][2][3][4][5] và phiên bản mở rộng 512/768/1024-bit đều được
xây dựng trên cơ sở lý thuyết của thuật toán Rijndael nguyên thuỷ nhưng có khả năng xử lý khoá và
khối dữ liệu lớn hơn nhiều lần so với phiên bản gốc.
- Đơn vị thông tin được xử lý trong thuật toán Rijndael là byte. Mỗi byte có thể được biểu diễn
bằng nhiều cách khác nhau: dạng nhị phân, dạng thập lục phân hay hệ số nhị phân.
- Các thao tác tính toán của thuật toán được thực hiện trên các ma trận hai chiều gọi là trạng
thái (state). Mỗi state gồm 4 hàng Nb cột, trong đó Nb là kết quả của phép chia kích thước khối dữ liệu
cho 32. Đối với AES, Nb = 4.

- Khoá cũng được biểu diễn dưới dạng ma trận 2 chiều gồm 4 hàng Nk cột trong đó Nk là kết
4
quả của phép chia kích thước khoá cho 32. Mỗi chu kỳ mã hoá/ giải mã sử dụng một khoá phát sinh từ
khoá chính gọi là khoá chu kỳ. Có tất cả Nr + 1 khoá chu kỳ. Hàm phát sinh bảng mã khoá mở
rộng(KeyExpansion) phụ thuộc vào giá trị Nk.
STT Tên Ý nghĩa
Phiên bản nguyên thuỷ Phiên bản mở rộng
1 AddRoundKey Thực hiện cộng mã khoá của chu kỳ vào trạng thái hiện hành
2 SubBytes Thay thế phi tuyến từng byte trong trạng thái hiện hành. Dùng bảng
thay thế SBox
3 InvSubBytes Phép biến đổi ngược của SubBytes
4 MixColumns Trộn thông tin từng cột trong trạng thái hiện hành
5 InvMixColumns Phép biến đổi ngược của MixColurm
6 ShiftRows Dịch chuyển xoay vòng từng dòng của trạng thái hiện hành
7 InvShiftRows Phép biến đổi ngược của ShiftRows
8 K Mã khoá chính. Được biểu diễn bằng ma trận
4 dòng x Nk cột 8 dòng x Nk cột
9 State Trạng thái. Được biểu diễn bằng ma trận

4 dòng x Nb cột 8 dòng x Nb cột
10 Nb Số lượng cột trong trạng thái. Nb ∈ {4,6,8}.(AES: Nb = 4)
Nb = độ dài khối / 32 Nb = độ dài khối / 64
11 Nk Số lượng các từ 32 bit trong mã khoá chính K. Nk ∈ {4,6,8}
Nk = độ dài khoá / 32 Nk = độ dài khoá / 64
12 Nr Số lượng chu kỳ. Nr = max(Nb, Nk) + 6
13 RotWord Dịch chuyển xoay vòng 4 bytes thành phần của từ 32 bit
14 SubWord Nhận vào một từ 4 byte. Áp dụng phép thay thế dựa vào SBox cho
từng byte. Trả về từ 4 byte đã được thay thế.
15 XOR Phép toán Exclusive-OR
16

Phép toán Exclusive-OR
17 ⊗ Phép nhân 2 đã thức (bậc < 4) modulo cho đa thức x^4 + 1
18 ● Phép nhân trên trường hữu hạn
Bảng 2.1: Các hàm và ký hiệu sử dụng trong phương pháp Rijndael.

2.3.1 Quy trình mã hoá Rijndael
 Thực hiện thao tác AddRoundKey đầu tiên trước khi thực hiện các chu kỳ mã hoá.
 Nr – 1 chu kỳ mã hoá bình thường: mỗi chu kỳ bao gồm 4 bước biến đổi liên tiếp
nhau: SubBytes, ShiftRows, MixColumns và AddRoundKey.
 Thực hiện chu kỳ mã hoá cuối cùng: trong chu kỳ này thao tác MixColumns được bỏ
quả.
5
♦ Thuật toán mã hoá Rijndael
• Dữ liệu vào
inputBlock: khối dữ liệu cần mã hoá.
inputBlockSize: kích thước khối dữ liệu cần mã hoá
cipherKey: khóa chính
cipherKeySize: kích thước khoá chính

• Dữ liệu ra
outputBlock: khối dữ liệu đã được mã hoá
Thuật toán 2.2: Thuật toán mã hoá theo phương pháp Rijndael
2.3.2 Quy trình giải mã Rijndael
- Quy trình giải mã có thể thực hiện theo các bước với trình tự ngược lại quy trình mã hoá. Các
thao tác SiftRows, MixColumns, SubBytes lần lượt được thay thế bằng các thao tác InvShiftRows,
InvMixColumns, InvSubBytes.
- Quá trình giải mã được tóm tắt như sau:
• Thực hiện AddRoundKey
• Thực hiện Nr-1 chu kỳ giải mã bình thường, mỗi chu kỳ gồm 4 bước biến đổi
liên tiếp sau: InvShiftRows, InvSubBytes, AddRoundKey, InvMixColumns.
• Thực hiện chu kỳ mã hoá cuối cùng giống Nr – 1 chu kỳ trên nhưng bỏ qua bước
InvMixColumns.
♦ Thuật toán giải mã Rijndael
6
● Dữ liệu vào:
inputBlock: khối dữ liệu cần giải mã
inputBlockSize: kích thước khối dữ liệu cần giải mã
cipherKey: khoá chính
cipherKeySize: kích thước khoá chính
●Dữ liệu ra:
outputBlock: khối dữ liệu đã được giải mã.
Thuật toán 2.2: Thuật toán giải mã theo phương pháp Rijndael.
2.3.3 Đánh giá phương pháp Rijndael
Phương pháp Rijndael có các ưu điểm sau:
• Mã chương trình ngắn gọn, ít tốn bộ nhớ nên dễ dàng áp dụng vào các thiết bị có
lượng bộ nhớ giới hạn như các thiết bị cầm tay thông minh.
• Quá trình mã hoá và giải mã có thể chạy tốt trên các hệ thống xử lý song song.
• Kích thước khối dữ liệu linh hoạt 128 / 192 / 256 bit, có thể thay đổi cho phù
hợp từng hệ thống cụ thể.

Tuy nhiên phương pháp Rijndael vẫn còn các hạn chế:
• Thời gian giải mã dài hơn thời gian mã hoá.
• Bảng Sbox của quá trình giải mã và quá trình mã hoá khác nhau nên cần thêm bộ
nhớ để lưu.
• Không tận dụng được các đoạn mã của quá trình mã hoá vào quá trình giải mã.
Vào tháng 6 / 2003, chính phủ Hoa kỳ tuyển bố AES (thuật toán Rijndael có thể được sử dụng
cho thông tin mật)
Vào thời điểm năm 2006, dạng tấn công lên Rijndael duy nhất thành công là tấn công kênh
7
biên. Tấn công kênh biên không tấn công trực tiếp vào thuật toán mã hoá mà thay vào đó, tấn công lên
các hệ thống thực hiện thuật toán có sơ hở làm lộ dữ liệu.

2.4 Đánh giá các phương pháp mã hoá quy ước
- Mã hoá quy ước sử dụng cùng một khoá để mã hoá và giải mã thông tin, do đó để đảm bảo bảo mật
thông tin chỉ những người liên quan mới được biết khoá bí mật. Mặc dù hệ thống mã hoá quy ước cung
cấp khá nhiều thuật toán mã hoá có tốc độ bảo mật rất cao nhưng mã hoá quy ước có những hạn chế
sau:
• Hạn chế về khả năng trao đổi khoá: Do khoá để giải mã và mã hoá cần phải được
biết giữa người gửi và người nhận thông tin nên phát sinh vấn đề an toàn khi
truyền khoá. Nếu khoá quy ước bị lấy cắp thì thông tin được mã hoá bằng khoá
đó không còn được bảo mật an toàn. Ngoài ra, nếu không kiểm soát được khoá
có bị mất hay không, sẽ không xác minh được tính xác thực của thông tin gửi
đến.
• Hạn chế về khả năng quản lý khoá: Đối với từng người cần liên lạc và với từng
nội dung thông tin cần phải có một khoá quy ước để mã hoá và giải mã. Do đó
nếu trên một mạng liên lạc lớn, số lượng khoá cần phải lưu giữ rất nhiều nên nảy
sinh vấn đề quản lý khoá quy ước và bảo mật thiết bị lưu trữ khoá quy ước.
• Hạn chế về kích thước không gian khoá: Số khoá có thể là 2^56, với tốc độ xử lý
của các máy tính hiện nay, có thể cho phép tấn công thành công phương pháp
DES theo phương thức “vét cạn”.

3. Mã hoá khoá công khai
3.1 Giới thiệu mã hoá khoá công khai
- Hay còn gọi là hệ mã hoá khoá phi đối xứng là hệ mã hoá có khoá lập mã và khoá
giải mã khác nhau (ke != kd), dù biết được khoá này cũng khó tính được khoá kia. Bao
gồm 2 loại khoá:
• Khoá lập mã: cho phép công khai, gọi là khoá công khai (public key)
• Khoá giải mã: khoá bí mật, gọi là khoá riêng (private key)
- Một người bất kỳ có thể dùng khoá công khai để mã hoá bản tin, nhưng chỉ người
nào sở hữu khoá riêng thì mới có khả năng đọc được bản rõ.
- Hệ mã hoá khoá công khai hay hệ mã hoá khoá phi đối xứng do Diffie và Hellman
phát mình vào những năm 1970.
3.2 Đánh giá hệ mã hoá khoá công khai
• Ưu điểm:
• Thuật toán được viết một lần, công khai cho nhiều lần dùng, cho nhiều người
dùng, họ chỉ cần giữ bí mật khoá riêng của mình.
• Khi biết các tham số ban đầu của hệ mã hoá, việc tính ra cặp khoá công khai
và bí mật phải là dễ, tức là trong thời gian đa thức. Người gửi có bản rõ P và
khoá công khai thì dễ tạo ra bản mã C. Người nhận có bản mã C và khoá bí
mật thì dễ giải thành bản rõ P.
• Người mã hoá dùng khoá công khai, người giải mã giữ khoá bí mật. Khả
8
năng lộ khoá bí mật khó hơn vì chỉ có 1 người giữ. Nếu thám mã biết khoá
công khai, muốn tìm khoá bí mật thì sẽ phải đối đầu với 1 bài toán rất khó.
• Nếu thám mã biết khoá công khai và bản mã C, thì việc tìm ra bản rõ P cung
là bài toán khó, số phép thử là rất lớn, không khả thi.
• Hạn chế:
• Mã hoá và giải mã chậm hơn hệ mã hoá khoá đối xứng
3.3 Nơi sử dụng hệ mã hoá công khai
• Hệ mã hoá khoá công khai thường được sử dụng chủ yếu trên các mạng công
khai như Internet, khi mà việc trao chuyển khoá bí mật tương đối khó khăn.

• Đặc trưng nổi bật của hệ mã hoá khoá công khai là khoá công khai (public key)
và bản mã (ciphertext) đều có thể gửi đi trên một kênh truyền tin không an toàn.
• Nhưng do tốc độ mã hoá và giải mã chậm nên hệ mã hoá khoá công khai chỉ
dùng để mã hoá những bản tin ngắn, ví dụ như mã hoá khoá bị mật gửi đi.
• Hệ mã hoá khoá công khai thường được sử dụng cho cặp người dùng thoả thuận
khoá bí mật của Hệ mã hoá khoá riêng.
II. Ứng dụng hệ mã hoá khoá đối xứng vào bảo mật thông tin trên
iPhone, hệ điều hành iOS 7.1 - Thuật toán Rijndael
1. Giới thiệu về iPhone, iOS
- iPhone là mẫu điện thoại di động thông minh của hãng điện tử Mỹ Apple Computer. Phiên bản
chiếc iPhone đầu tiên ra mắt ngày 29/6/2007. Bến cạnh tính năng là một máy điện thoại thông thường,
iPhone còn được trang bị màn hình cảm ứng, máy chụp hình, khả năng chơi nhạc và chiếu phim, trình
duyệt web
- Ngày nay, iPhone đã trở thành một trong những thiết bị di động thông minh phổ biến nhất trên
toàn thế giới. Tính tới thời điểm hiện tại, có khoảng 146 triệu chiếc iPhone với hệ điều hành iOS được
sử dụng trên toàn thế giới (theo số liệu thống kê từ /> - iOS là hệ điều hành trên các thiết bị di động độc quyền của Apple, tính đến cuối năm 2013,
có khoảng hơn 1 triệu ứng dụng cho hệ điều hành iOS được phát hành (thông tin từ trang
kèm theo đó là lượng dữ liệu khổng lồ mà người dùng truyền tải qua
lại lẫn nhau trên iOS.
2. Vấn đề đặt ra.
- Với lượng thông tin khổng lồ được lưu trữ và truyền tải qua các thiết bị sử dụng iOS, làm thế
nào có thể đảm bảo lượng thông tin đó được bảo mật, không rơi vào tay kẻ xấu.
- Bảo mật thông tin được truyền tải qua lại giữa các thiết bị là bài toán lớn, bài toán nhỏ hơn
nhưng không kém phần quan trọng là làm sao bảo mật thông tin được lưu trên chính thiết bị di động cá
nhân của từng người sử dụng. Apple gần như chưa cung cấp biện pháp bảo mật nào nếu như kẻ gian lấy
được thông tin trên bộ nhớ của iPhone (các biện pháp bảo mật hiện nay chỉ chống kẻ gian không sử
dụng được thiết bị một cách thông thường bằng cách yêu cầu mật khẩu khi mở iPhone). Đã có rất nhiều
vụ án xảy ra do kẻ gian lấy được dữ liệu cá nhân nhạy cảm khi người sử dụng vô tình mất thiết bị của
mình.
- Với các vấn đề trên, em đã xây dựng một ứng dụng mã hoá và bảo quản dữ liệu ảnh cá nhân

trên thiết bị di động sử dụng hệ điều hành iOS ( cụ thể là iPhone) với mục tiêu mã hoá các dữ liệu ảnh
người dùng muốn che giấu bằng phương pháp mã hoá khoá đối xứng sử dụng thuật toán Rijndael. Do
điều kiện về thiết bị không cho phép nên em xin được thể hiện kết quả ứng dụng của em bằng hình ảnh
9
trên tài liệu này.
3. Ứng dụng Bảo mật dữ liệu
3.1Mục đích của ứng dụng
- Bảo mật ảnh, video của thiết bị di động cầm tay, cụ thể là iPhone.
- Mã hoá những bức ảnh, đoạn video được chọn bởi người dùng sử dụng hệ mã hoá khoá đối xứng
thuật toán Rijndael.
- Những bức ảnh, video sau khi mã hoá sẽ không thể xem được theo cách thông thường, chỉ được
phép xem qua ứng dụng “Bảo mật dữ liệu ảnh” hoặc sau khi giải mã bằng ứng dụng “Bảo mật dữ liệu
ảnh”. Trường hợp điện thoại bị rơi vào tay kẻ gian, kẻ gian sẽ không có cách nào xem được nội dung
những bức ảnh đã được mã hoá nếu không có tải khoản và mật khẩu đăng nhập của người chủ máy .
- Dữ liệu được bảo mật dựa trên khoá là password đăng nhập của người dùng.
3.2 Tóm tắt ứng dụng Bảo mật dữ liệu
1. Màn hình đăng ký:
Hình 3.1: Màn hình đăng ký tài khoản
- Mỗi thiết bị khi tải ứng dụng về và chạy ứng dụng “Bảo mật dữ liệu” lần đầu tiên
sẽ được chuyển đến màn hình đăng ký. Màn hình đăng ký bao gồm các trường: Tên tài
khoản, mật khẩu cấp 1, mật khẩu cấp 2 và email đăng ký.
• Tên tài khoản: Là tên tài khoản đăng nhập vào ứng dụng, tên tài khoản là duy
nhất
10
• Mật khẩu cấp 1: Là mật khẩu đăng nhập vào ứng dụng
• Mật khẩu cấp 2: Có tác dụng như mật khẩu cấp 1, ngoài ra còn sử dụng để xác
nhận trong trường hợp người dùng muốn lấy lại hoặc thay đổi thông tin tài khoản
• Email đăng ký: Là email người sử dụng đăng ký để sử dụng ứng dụng. Email có
tác dụng lấy lại thông tin tài khoản khi người dùng mất hoặc quên thông tin.
Khi ấn “Hoàn tất đăng ký” nếu mọi thông tin được điền đầy đủ và chính xác sẽ thông

báo đăng ký thành công tới người dùng.
Hình 3.2: Đăng ký tài khoản thành công
- Một tài khoản với tên tài khoản là “an toan du lieu”, mật khẩu cấp 1: 123456, mật khẩu
cấp 2: 234567 và email đăng ký: đã được đăng ký.
- Thông tin tài khoản sẽ được lưu sau khi mã hoá bằng thuật toán Rijndael với khoá
chính là mật khẩu cấp 2 và được lưu vào cơ sở dữ liệu của ứng dụng.
2. Màn hình đăng nhập
11
- Sau khi đã có tài khoản, người dùng sẽ được chuyển tới màn hình đăng nhập
Hình 3.3: Màn hình đăng nhập
- Nút “Quên mật khẩu?” dùng cho trường hợp người dùng không thể đăng nhập vào tài
khoản của mình, khi sử dụng chức năng này, người dùng sẽ được chuyển đến màn hình
có chức năng xác thực và lấy lại thông tin tài khoản dựa vào email hoặc mật khẩu cấp 2.
- Màn hình đăng nhập bao gồm trường tài khoản đăng nhập và mật khẩu. Trường hợp
này em đã cố tình đánh sai tên tài khoản thành “an toàn dữ liệu 1”. Khi tên tài khoản
hoặc mật khẩu không đúng sẽ hiện lên cảnh báo:
12
Hình 3.4: Cảnh báo khi sai tài khoản hoặc mật khẩu.
- Sau khi đăng nhập thành công, người dùng sẽ được chuyển tới màn hình chức năng.
3. Màn hình chức năng:
- Màn hình chức năng bao gồm 2 chức năng chính:
• Mã hoá ảnh.
13
• Giải mã ảnh đã mã hoá.
Hình 3.5: Màn hình chức năng
− Chọn Mã hoá ảnh, người dùng sẽ được chuyển tới màn hình mã hoá
4. Màn hình mã hoá
- Màn hình mã hoá cho phép người dùng chọn 1 hoặc nhiều ảnh từ album ảnh của điện
14
thoại. Do thời gian giới hạn nên trong ứng dụng ví dụ này em xin phép chỉ thực hiện mã

hoá với 1 ảnh có sẵn .
Hình 3.6: Màn hình mã hoá ảnh.
- Có thể chọn 1 hoặc nhiều ảnh để mã hoá cùng lúc
15
Hình 3.7: Chọn ảnh mã hóa
16
- Ở đây em thực hiện mã hoá 1 ảnh:
Hình 3.8: Chọn ảnh mã hóa
− Ảnh được chọn để mã hoá được hiển thị lên màn hình.
17
Hình 3.9: Hiển thị ảnh đã được chọn.
- Ấn nút “Bắt đầu mã hoá”, quá trình mã hoá sẽ bắt đầu. Khi mã hoá hoàn tất sẽ hiện lên
thông báo “Mã hoá thành công”. Quá trình mã hoá cực kỳ nhanh chóng, gần như hoàn
thành ngay sau khi nhấn nút với file ảnh mẫu có dung lượng 11Mb.
18
Hình 3.10: Mã hoá thành công.
5. Ảnh trước khi mã hoá
- Thực hiện kết nối iPhone với máy tính và mở thư mục chứa dữ liệu của ứng dụng trước
khi thực hiện mã hoá ảnh có thể dễ dàng nhìn thấy và xem nội dung bức ảnh chưa được
mã hoá:
19
Hình 3.11: Dữ liệu ảnh trên điện thoại được nhìn thấy trước khi mã hoá

6. Ảnh sau khi mã hoá
- Sau khi mã hoá, thực hiện kết nối iPhone với mãy tính để xem file ảnh sau khi được
mã hoá thành công. Lúc này khi mở file ảnh, sẽ không có nội dung nào được hiển thị,
20
nếu cố tình mở ảnh sẽ hiện lên thông báo “Không thể mở ảnh do không nhận ra định
dạng file”


Hình 3.12: File ảnh sau khi mã hoá

21
7. Giải mã ảnh
- Chọn chức năng giải mã ảnh từ màn hình chức năng. Màn hình giải mã ảnh được hiển
thị
Hình 3.13: Màn hình giải mã ảnh
- Màn hình bao gồm :
• Nút “Chọn ảnh muốn giải mã”: Tại đây ta có thể chọn nhiều ảnh để giải mã cùng
một lúc hoặc chỉ giải mã 1 ảnh.
Hình 3.14: Chọn ảnh giải mã
22

×