nghiên cứu tìm hiểu về mật mã sinh trắc - Pdf 22

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
VŨ THANH MINH
NGHIÊN CỨU TÌM HIỂU VỀ
MẬT MÃ SINH TRẮC
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
VŨ THANH MINH
NGHIÊN CỨU TÌM HIỂU VỀ
MẬT MÃ SINH TRẮC
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Giáo viên hướng dẫn : TS Hồ Văn Hương
HÀ NỘI - 2010
2
LỜI CÁM ƠN
Em xin chân thành cám ơn toàn thể các thầy cô giáo trong trường Đại học Công
nghệ, Đại học Quốc gia Hà Nội đã hết lòng dạy dỗ, chỉ bảo, tạo điều kiện tốt cho
em trong suốt quá trình học tập cũng như trong thời gian thực hiện khoá luận tốt
nghiệp này.
Đặc biệt, em gửi lời cám ơn chân thành và sâu sắc tới TS Hồ Văn Hương –Ban cơ
yếu chính phủ, người đã trực tiếp quan tâm, tận tình hướng dẫn, giúp đỡ và tạo
điều kiện hết sức thuận lợi cho em trong quá trình thực hiện khoá luận.
Cảm ơn các bạn đồng khoá và gia đình đã động viên, giúp đỡ tôi rất nhiều trong
quá trình học tập tại Khoa Công nghệ cũng như trong thời gian thực hiện khoá
luận.
Hà nội, ngày 21 tháng 05 năm 2010

Hình 1.13:Xác minh chữ ký số
16
Hình 1.14:Băm thông điệp
16
Hình 1.15:Xác minh thông điệp
17
Hình 1.16:Băm nhiều thông điệp cho ra cùng một kết quả băm
17
Hình 1.17: Mảng 64 hằng số 32-bit Ki{256}
22
Hình 1.18 : Các giá trị khởi tạo của giá trị băm
23
Hình 2.1: Một số vân tay tìm được từ thời xưa
26
Hình 2.2: Các loại vân tay
30
Ký hiệu các cụm từ viết tắt
5
Viết tắt
Tiếng Anh
Tiếng Việt
AES
Advanced Encryption Standard
Chuẩn mã hóa tiên tiến
Bio
Biometric
Sinh trắc
CA
Certificate Authority
Chủ quyền chứng nhận

CHƯƠNG 3:THUẬT TOÁN MÃ HÓA SINH TRẮC 37
3.1 Xử lý ảnh nhận dạng 37
3.2. Sự tương quan 37
3.3. Những yêu cầu của hệ thống 38
3.4 Thiết kế hàm lọc 38
3.5 Độ an toàn của hàm lọc 40
3.6 Bộ lọc tạm thời 40
3.7 Thiết kế bộ lọc an toàn 42
6
3.8 Quá trình đăng ký và xác thực 43
3.8.1 Quá trình đăng ký 43
3.8.2 Quá trình xác thực 47
3.9 Kết luận 51
Chương 4: XÂY DỰNG ỨNG DỤNG 52
4.1 Giới thiệu 52
4.2 Các thuật toán được sử dụng 52
4.2.1 Xử lý ảnh 52
4.2.2 Biến đổi Fourier rời rạc 53
4.2.3 Sinh mảng ngẫu nhiên 54
4.2.4 Các phép toán 55
4.2.4.1 Các phép toán với số phức 55
4.2.4.2 Các phép toán liên quan tới ma trận 55
4.3 Xây dựng ứng dụng mật mã sinh trắc 57
4.3.1 Sinh khóa sinh trắc 57
4.3.2 Mã hóa sử dụng khóa sinh trắc 60
4.4 Giao diện ứng dụng “mật mã sinh trắc” và cách sử dụng 61
4.1 Kết luận 65
KẾT LUẬN…………………………………………………………………. 66
TÀI LIỆU THAM KHẢO ………………………………………………… .67
7

ra bản mã là xâu 64bits. Hiện nay DES và biến thể của nó 3DES vẫn được sử dụng thành
công trong nhiều ứng dụng.
1.2.2 Thuật toán mã hóa AES
Thuật toán mã hóa AES là thuật toán mã hóa khối đối xứng, xử lý các khối dữ liệu
có độ dài 128 bit, sử dụng khóa mã có độ dài 128 bit, 192 bit hoặc 256 bit tương ứng với
“AES-128”, “AES-192”, “AES-256”. Trong khóa luận này, chúng ta sử dụng thuật toán
AES với độ dài khóa là 256 bit tương ứng với “AES-256”.
Chuẩn mã hóa tiên tiến AES: AES là một thuật toán mã hóa khối được chính phủ
hoa kỳ áp dụng làm chuẩn mã hóa. AES có thể dễ dàng thực hiện với tốc độ cao bằng
phần mềm hoặc phần cứng và không đòi hỏi nhiều bộ nhớ. Do AES là một tiêu chuẩn mã
hóa mới, nó đang được tiến hành để sử dụng đại trà.
AES làm việc với từng khối dữ liệu 4x4. Quá trình mã hóa bao gồm 4 bước:

AddRoundKey: mỗi byte của khối được kết hợp với khóa con. Mỗi khóa con
trong chu trình khóa được tạo ra từ khóa chính với quá trình tạo khóa con Rijdael. Mỗi
khóa có độ dài như các khối. Quá trình được thực hiện bằng phép XOR từng bit của khóa
con vơi khối dữ liệu.
Hình 1.2: AddRoundKey bản rõ và khóa
9

Bước SubBytes: các bytes được thay thế thông qua bảng S-box. Đây chính là
quá trình phi tuyến của thuật toán. Hộp S-box này được tạo ra trong từ nghịch
đảo trong
trường hữu hạn GF( 28 ) có tính chất phi tuyến. Để chống lại các tấn công trên
các đặc
tính đại số, hộp S-box này được tạo nên bằng cách kết hợp nghịch đảo với một
phép biến
đổi affine khả nghịch.
Hình 1.3: Bước SubBytes


• Bước InvSubBytes : là nghịch đảo của phép thay thế theo byte SubBytes trong
đó sử dụng một hộp S-nghịch bằng cách áp dụng phép biến đổi ngược của phép
11
biến đổi affine sau khi thực hiện phép nghịch đảo trên trường GF(28) cho bởi
bảng:
Hình 1.7 Hộp S-nghịch
• Bước InvMix Columns : là phép biến đổi ngược của bước MixColumns.
InvMixColumns thao tác trên từng cột của trạng thái, xem mỗi cột như là một
đa thức bốn hạng tử, được coi như các đa thức trên trường GF(28) va được nhân
theo modulo (x4+1) với đa thức nghịch đảo của a(x) tức là a-1(x):
• Bước InvAddRoundKey: là phép biến đổi nghịch đảo của bước AddRoundKey
– là phép biến đổi thuận nghịch vì nó chỉ áp dụng một phép toán XOR nên nó
được thực hiện như bước AddRoundKey trong quá trình giải mã
1.3 Hệ mật mã khóa công khai
Khóa mã hóa còn gọi là khóa công khai dùng để mã hóa dữ liệu. Khóa giải mã còn
gọi là khóa bí mật dùng để giải mã dữ liệu. Trong hệ mật này khóa mã hóa và khóa giải
mã là khác nhau. Về mặt toán học, khi biết khóa công khai ta khó có thể tính được khóa bí
mật. Khóa bí mật (private key) được giữ bí mật trong khi khóa công khai (public key)
được công khai. Người gửi thông điệp A sẽ dùng khóa công khai kB để mã hóa dữ liệu
muốn gửi tới người B và người B sẽ dùng khóa bí mật của mình để giải mã thông điệp
nhận được.
Có nhiều hệ thống mật mã sử dụng khóa công khai được triển khai rộng rãi như hệ
mật RSA, hệ mật Elgamal sử dụng giao thức trao đổi khóa Diffie – Hellman và nổi lên
12
trong những năm gần đây là hệ mật dựa trên đường cong Eliptic. Trong số những hệ mật
mã trên thì hệ mật mã RSA được cộng đồng quốc tế chấp nhận rộng rãi trong việc thực thi
hệ mã hóa công khai.
Hệ mật RSA do Rivest, Shamir, và Adlman phát minh ra, được công bố đầu tiên vào
tháng 8 năm 1977 trên tạp chí Scientific American. Tính bảo mật của hệ mật mã RSA
được bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán phân tích 1

V là tập các thuật toán kiểm thử
Với mỗi k ∈ K, có một thuật toán ký Sigk ∈ S, Sigk : P → A, và một thuật toán
kiểm thử Verk ∈ V, Verk { P x A} → {đúng, sai} thỏa mãn điều kiện sau đây với mọi
x ∈ P, y ∈ A:
Verk(x,y) đúng nếu y = Sigk(x)
Verk(x,y) sai nếu y ≠ Sigk(x)
RSA cũng là thuật toán được dùng nhiều cho mục đích ký số. Sơ đồ chữ ký RSA
được mô tả như sau :
Hình 1.9 Chữ ký số RSA
Quá trình ký và kiểm tra chữ ký được mô tả :
Giả sử A muốn gửi cho B một thông điệp x, A thực hiện các bước:
14
1. A băm thông điệp x bằng thuật toán băm h thu được bản đại diện z = h(x) có
kích thước cố định
Hình 1.10 : Quá trình băm thông điệp
2. A ký số trên văn bản đại diện z bằng khóa bí mật của mình
thu được bản ký số
y = sigk(z)
Hình 1.11: Quá trình ký số
3. A gửi (x,y) cho B
Hình 1.12 : Gửi thông điệp
15
Khi B nhận được (x,y) , B thực hiện các bước sau:
1. B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận được có phải
được gửi từ A hay không bằng cách giải mã chữ ký số y bằng khóa công khai
của A được z
Hình 1.13 : Xác minh chữ ký số
2. B dùng một thuật toán băm – tương ứng với thuật toán băm mà A dùng để băm
thông điệp x đi kèm, nhận được h(x)
Hình 1.14 : Băm thông điệp

- Thứ ba : vấn đề nghiêm trọng hơn là kết quả sau khi ký, nội dung các đoạn của
thông điệp có thể bị xáo trộn với nhau hoặc một số đoạn trong chúng có thể bị mất mát
trong khi người nhận phải xác minh lại thông điệp, do đó ta cần phải bảo đảm tính toàn
vẹn cho thông điệp.
Giải pháp cho các vướng mắc đến chữ ký số là dùng hàm băm để trợ giúp cho việc
ký số. Hàm băm – hiểu theo một nghĩa đơn giản là hàm cho tương ứng một mảng dữ liệu
với một mảng dữ liệu nhỏ hơn – được sử dụng rộng rãi trong nhiều ứng dụng khác nhau
của tin học, không chỉ thuộc phạm vi mật mã.
Hàm băm được đề cập tới trong phạm vi đồ án là hàm băm một chiều. Có tác dụng
trợ giúp cho các sơ đồ ký số nhằm làm giảm dung lượng của các dữ liệu cần thiết để
truyền qua mạng. Hàm băm ở đây được hiểu là không dùng các khóa để mã hóa ( sử dụng
thuật ngữ “ băm ” thay cho “mã hóa”), nó có nhiệm vụ băm thông điệp được đưa vào
theo một thuật toán h một chiều nào đó rồi đưa ra một bản băm là văn bản đại diện cho
thông điệp đầu vào. Văn bản đại diện có kích thước cố định, giá trị của hàm băm là duy
nhất và không thể suy ngược lại được nội dung thông điệp từ giá trị băm này. Hàm băm h
cần có một số đặc tính quan trọng sau :
a. Với thông điệp đầu vào x thu được bản băm (văn bản đại diện) z = h(x)
là duy nhất.
b. Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa thành thông điệp x’
thì h(x) ≠ h(x’), cho dù sự thay đổi trong x là rất nhỏ( ví dụ trên một bit
nào đó trong x thì giá trị băm cũng thay đổi). Điều này có nghĩa là : hai
thông điệp khác nhau thì cho hai giá trị băm khác nhau
18
c. Nội dung của thông điệp x không thể được suy ra từ giá trị băm h(x).
Nghĩa là với giá trị x ta có thể dễ dàng tính được văn bản đại diện z =
h(x) nhưng lại không thể ( thực chất là vô cùng khó) suy ngược lại x nếu
chỉ biết giá trị băm z = h(x).
Một số hàm băm được sử dụng rộng rãi hiện nay là : MD5, MD4, MD2 và hàm
băm chuẩn SHA-1, SHA – 256… và tiếp theo khóa luận sẽ trình bày về hàm băm SHA-
256. Hàm băm này sẽ đươc sử dụng trong quá trình tạo khóa sinh trắc của hệ thống mã

số bit trong 1 block
19
M(i)
Mj(i)
w
T
N
Wt
1.5.2.2 Phép toán
^



+
<<
>>
Block thứ i
từ thứ j của block thứ i, M0(i) là từ trái nhất của block i
số bit của một từ
w-bit tạm thời sử dụng trong tính toán băm
số block của thông điệp chuẩn
w-bit thứ t của thông điệp liệt kê
phép toán end
phép toán or
phép toán cộng bit XOR
phép phủ định
phép cộng theo modulo 2w
phép dịch trái, ở đây x<<n có nghĩa là x được dịch trái n bit
phép dịch phải, x>>n có nghĩa là x được dịch phải n bit
1.5.2.3 Chuyển đổi dữ liệu

ROTRn(x) = (x>>n) v (x<<w-n)
- ROTLn(x) :
ROTLn(x) = (x<<n) v (x >> w-n)
1.5.2.5 Các hàm chức năng sử dụng trong SHA-256
SHA-256 sử dụng 6 hàm chức năng , mỗi hàm chức năng làm việc trên các từ 32-
bit được ký hiệu là x,y và z. Kết quả trả về của các hàm cũng là chuỗi 32-bit. Các hàm
chức năng trong SHA-256 là :
Ch (x,y,z) = (x ^ y) ⊕ ( ← x ^ z)
Maj (x,y,z) = (x ^ y) ⊕ (x ^ z) ⊕ (y ^ z)

{256}
( x) = ROTR2 (x) ⊕ ROTR13(x) ⊕ ROTR22(x)
∑1
{256}
( x) = ROTR6(x) ⊕ ROTR11(x) ⊕ ROTR25(x)


{256}
{256}
(x) = ROTR 7(x) ⊕ ROTR 18(x) ⊕ SHR3(x)
(x) = ROTR17(x) ⊕ ROTR19(x) ⊕ SHR10(x)
1.5.2.6 Các hằng số sử dụng trong SHA-256
SHA-256 sử dụng một mảng 64 hằng số 32-bit, K0{256}, K1{256}…, K63{256}. Những
từ 32-bit này được lấy từ 32 bit đầu tiên của phần phân số trong kết quả của phép lấy căn
bậc 3 của 64 số nguyên tố đầu tiên
Ở hệ hex, những hằng số đó là (từ trái qua phải):
21
Hình 1.17 : Mảng 64 hằng số 32-bit Ki{256}
1.5.2.7 Quá trình tiền xử lý thông điệp M
Thông điệp M sẽ được xử lý vê dạng chuẩn trước khi tính toán băm. Quá trình xử

Bước 1 : Tính {Wt} theo công thức
Wt = Mt(i)
với 0 ≤ t ≤ 15
Wt =

{256}
(W
t-2
) + W
t-7
+

{256}
(Wt-15) + Wt-16
với 16 ≤ t ≤ 63
Bước 2 :Gán 8 biến a, b, c, d, e, f, g, h bằng giá trị của giá trị băm thứ (i-1)
a = H0(i-1)
23
< 2 . Thuật toán sử dụng :

Trích đoạn Đặc trưng tổng thể Các thuật toán được sử dụng Các phép toán Giao diện ứng dụng “mật mã sinh trắc” và cách sử dụng
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status