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.
Trang 1ĐẠ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
Hà nội ngày 12/5/2014
Trang 2Mụ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
Trang 4I 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ị
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
Trang 52 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)
chuẩn mã hoá dữ liệu với khoá có độ dài 56 bit
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
Trang 6Kế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á
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ã
Trang 7một thư tín mã hoá DES chưa đầy 24 giờ.
đờ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:
• Chiều dài khoá 128 bit, 192 bit và 256 bit
khác
• Thiết kế đơn giản, đánh giá và cài đặt dễ dàng
- 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
Trang 8quả 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
thay thế SBox
từng byte Trả về từ 4 byte đã được thay thế
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ả
Trang 9♦ 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:
liên tiếp sau: InvShiftRows, InvSubBytes, AddRoundKey, InvMixColumns
InvMixColumns
♦ Thuật toán giải mã Rijndael
6
Trang 10● 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:
lượng bộ nhớ giới hạn như các thiết bị cầm tay thông minh
• 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ế:
nhớ để lưu
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
Trang 11biê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:
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
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
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á:
- 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:
dùng, họ chỉ cần giữ bí mật khoá riêng của mình
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
8
Trang 12nă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ó.
là bài toán khó, số phép thử là rất lớn, không khả thi
• Hạn chế:
3.3 Nơi sử dụng hệ mã hoá công khai
khai như Internet, khi mà việc trao chuyển khoá bí mật tương đối khó khăn
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
dùng để mã hoá những bản tin ngắn, ví dụ như mã hoá khoá bị mật gửi đi
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ừ http://wiki.answers.com/)
- 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,
http://www.theverge.com/), 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
Trang 13trê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ý
nhất
10
Trang 14• Mật khẩu cấp 1: Là mật khẩu đăng nhập vào ứng dụng
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
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ý: antoandulieu@example.vn đã đượ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
Trang 15- 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