Tải bản đầy đủ (.ppt) (24 trang)

luận văn các thuật mã hóa

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 (410.62 KB, 24 trang )


Lập Trình C#
Nhóm 1 Lớp 07CT113
MÃ HÓA VÀ
BẢO MẬT
THÔNG TIN

Như các bạn đã biết ngay từ xa xưa con người
chúng ta đã biết truyền thông .Việc truyền đạt thông
tin phải thông qua người đưa tin do đó việc lộ tin tức
là điều không tránh khỏi.Để bảo mật những thông tin
đó , người ta đã nghĩ ra cách mã hóa nó đi để an toàn
bằng những cơ chế mã hóa đơn giản .
Ngày nay , trong nhiều lĩnh vực vẫn cần sự hỗ trợ
đến mã hóa như ngân hàng , bưu chính …
Nhiều thuật tóan mã hóa ra đời và ngày càng phát
triển hơn
Lời Nói Đầu

Mã hóa với mục đích làm cho dữ liệu
không thể đọc được bởi bất cứ ai, ngoại trừ
những ai được cho chép đọc. Mã hóa sử dụng
thuật toán và khóa để biến đổi dữ liệu từ hình
thức đơn giản rõ ràng (plain hay cleartext),
làm biến dữ liệu sang hình tức mật mã vô
nghĩa (code hay ciphertext). Chỉ có những ai
có thông tin giải mã thì mới giải mã được và
đọc được dữ liệu.
Giới Thiệu

Cryptography (hay crypto) - mật mã học – ngành khoa học


nghiên cứu về việc giấu thông tin. Cụ thể hơn, mật mã học là
ngành học nghiên cứu về những cách chuyển đổi thông tin từ
dạng "có thể hiểu được" thành dạng "không thể hiểu được" và
ngược lại.
1.1) Đặc điểm

Tính bí mật (confidentiality): thông tin chỉ được tiết lộ
cho những ai được phép.

Tính toàn vẹn (integrity): thông tin không thể bị thay
đổi mà không bị phát hiện .

Tính xác thực (authentication): người gửi (hoặc người
nhận) có thể chứng minh đúng họ.

Tính không chối bỏ (non-repudiation): người gửi hoặc
nhận sau này không thể chối bỏ việc đã gửi hoặc nhận
thông tin.
Khái Niệm

Một Số Thuật Ngữ

Cryptosystem (viết tắt của cryptographic system): hệ thống
mã hóa thông tin, có thể là phần mềm như PGP, Ax-Crypt,
Truecrypt giao thức như SSL, IPsec hay đơn giản là một
thuật toán như DES.

Encrypt (encipher): mã hóa – quá trình biến đổi thông tin
từ dạng ban đầu - có thể hiểu được thành dạng không thể hiểu
được, với mục đích giữ bí mật thông tin đó.


Decrypt (decipher): giải mã – quá trình ngược lại với mã
hóa, khôi phục lại thông tin ban đầu từ thông tin đã được mã
hóa.


Plaintext (cleartext): dữ liệu gốc (chưa được mã hóa).

Ciphertext: dữ liệu đã được mã hóa.

Cipher (hay cypher): thuật toán dùng để thực hiện quá trình mã
hóa hay giải mã. Trong bài này gọi tắt là thuật toán

Key: chìa khóa – thông tin dùng cho qui trình mã hóa và giải mã.

Code: cần phân biệt code trong mật mã học với code trong lập trình
hay code trong Zip code

Cryptanalysis: nếu coi mật mã học là việc cất dữ liệu của bạn vào
một cái hộp sau đó dùng chìa khóa khóa lại, thì cryptanalysis là ngành
nghiên cứu những phương pháp mở hộp để xem dữ liệu khi không có
chìa khóa.
Một Số Thuật Ngữ


Password: mật khẩu, là một hay nhiều từ mà người dùng
phải biết để được cấp quyền truy cập.

Key Derivation Function: là một hàm hash được thiết kế
sao cho chìa an toàn hơn đối với tấn công kiểu brute-force hay

cổ điển. Hàm này được thực hiện lại nhiều lần trên mật khẩu
ban đầu cùng với một số ngẫu nhiên để tạo ra một chìa khóa
có độ an toàn cao hơn. Số ngẫu nhiên này gọi là salt, còn số
lần lặp lại là iteration.

Keylength (Keysize): Độ dài (hay độ lớn) của chìa khóa.
Một thuật toán có chìa khóa càng dài thì càng có nhiều khả
năng chống lại tấn công kiểu brute-force.
Chìa Khóa

1 ) Cổ điển

Substitution: thay thế – phương pháp mã hóa
trong đó từng kí tự (hoặc từng nhóm kí tự) của văn
bản ban đầu được thay thế bằng một (hay một nhóm)
kí tự khác. Tuy không còn được sử dụng nhưng ý
tưởng của phương pháp này vẫn được tiếp tục trong
những thuật toán hiện đại.

Transposition: hoán vị – phương pháp mã hóa
trong đó các kí tự trong văn bản ban đầu chỉ thay đổi
vị trí cho nhau còn bản thân các kí tự không hề bị
biến đổi.
Thuật Toán Mã Hóa


Symmetric cryptography: Mã hóa đối xứng ,tức là cả hai
quá trình mã hóa và giải mã đều dùng một chìa khóa. Để đảm
bảo tính an toàn, chìa khóa này phải được giữ bí mật. Vì thế các
thuật toán loại này còn có tên gọi khác là secret key

cryptography (hay private key cryptography), tức là thuật toán
mã hóa dùng chìa khóa riêng (hay bí mật).

Asymmetric cryptography: Mã hóa bất đối xứng, sử dụng
một cặp chìa khóa có liên quan với nhau về mặt toán học, một
chìa công khai dùng để mã hoá (public key) và một chìa bí mật
dùng để giải mã (private key).
2) Hiện đại
Thuật Toán Mã Hóa

Hashing là một phương thức mật mã nhưng nó không
phải là một thuật toán mã hoá .Đúng như vậy, hashing
chỉ sử dụng một chứng chỉ số duy nhất được biết đến
với tên như “hash value – giá trị hash”, “hash – băm”,
Message Authentication Code (MAC), fingerprint –
vân tay, hay một đoạn message.
Hàm hash (hash function) là hàm một chiều mà nếu đưa
một lượng dữ liệu bất kì qua hàm này sẽ cho ra một
chuỗi có độ dài cố định ở đầu ra. Và không thể suy
ngược lại.
Hàm Hash

Hàm Hash
Hai tính chất quan trọng của hàm này là:
Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết
quả, điều này tương tự như việc bạn không thể chỉ dựa vào
một dấu vân tay lạ mà suy ra ai là chủ của nó được.
Tính duy nhất: xác suất để có một vụ va chạm (hash
collision), tức là hai thông điệp khác nhau có cùng một kết
quả hash, là cực kì nhỏ.


1) Brute-force attack (exhaustive key search): phương pháp
tấn công bằng cách thử tất cả những chìa khóa có thể có. Đây là
phương pháp tấn công thô sơ nhất và cũng khó khăn nhất.
2) Frequency analysis: thống kê tần suất, chỉ có thể áp dụng
được đối với các thuật toán cổ điển dùng phương pháp thay thế, ví
dụ phương pháp Caesar. Để thực hiện phương pháp này ta cần
một lượng văn bản đã mã hóa đủ lớn để phép thống kê được chính
xác.
3) Differential cryptanalysis: Eli Biham và Adi Shamir tìm ra
phương pháp này vào khoảng cuối những năm 1980; nó thường
được sử dụng để tấn công các thuật toán khối .Phương pháp này
dựa trên việc phân tích những biến đổi của hai văn bản gốc có liên
quan khi được mã hóa bởi cùng một chìa.
Tấn Công Mã Hóa Thông Tin

1. One-time Pad (OTP) : Còn có tên gọi khác là Vernam
Cipher, OTP được mệnh danh là cái chén thánh của ngành
mã hóa dữ liệu ( bất khả xâm phạm ).
2. DES :DES (viết tắt của Data Encryption Standard, hay Tiêu
chuẩn Mã hóa Dữ liệu)
3. AES : viết tắt của Advance Encryption Standard.
4. RSA : Viết tắt của 3 người tạo ra : Ronald Rivest, Adi
Shamir và Leonard Adleman.
5. MD5 : MD5 (Message-Digest algorithm 5) là một hàm băm
để mã hóa với giá trị băm là 128bit.
Một Số Thuật Toán Mã Hóa

One-time Pad (OTP):
OTP là thuật toán duy nhất chứng minh được về lý thuyết là

không thể phá được ngay cả với tài nguyên vô tận (tức là có thể
chống lại kiểu tấn công brute-force). Để có thể đạt được mức
độ bảo mật của OTP, tất cả những điều kiện sau phải được thỏa
mãn:

Độ dài của chìa khóa phải đúng bằng độ dài văn bản cần mã
hóa.

Chìa khóa chỉ được dùng một lần.

Chìa khóa phải là một số ngẫu nhiên thực.
Một Số Thuật Toán Mã Hóa

DES
DES là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn
Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức
vào năm 1976 . Sau đó chuẩn này được sử dụng rộng rãi trên
phạm vi thế giới. Ngay từ đầu, thuật toán của nó đã gây ra rất
nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ
dài khóa tương đối ngắn, và các nghi ngờ về cửa sau để Cơ quan
An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa. Do đó, DES đã
được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy
hiểu biết hiện đại về mật mã khối (block cipher) và các phương
pháp thám mã tương ứng.
Một Số Thuật Toán Mã Hóa

DES
Chiều dài khóa là 64 bit ( 8 Byte). Nhưng các bit thứ 8
trong khóa được dùng trong việc kiểm tra nên chiều dài
khóa thực tế là 56 bit

Với chiều dài khóa như vậy thì việc tấn công bằng cách
thử hết các khóa phải thử đến 2^56, trung bình là 2^55=
36,028,797,018,968,968 ( hơn 30 triệu tỉ lần thử)
Một Số Thuật Toán Mã Hóa


1998 khi tổ chức Electronic Frontier Foundation (EFF), một tổ
chức hoạt động cho quyền công dân trên Internet, xây dựng một
hệ thống chuyên biệt để phá mã với giá thành 250000 đô la Mỹ .
Động cơ thúc đẩy EFF trong hành động này là nhằm chứng
minh DES có thể bị phá vỡ trên lý thuyết cũng như trên thực tế:
"Nhiều người không tin vào chân lý cho đến khi họ nhìn thấy sự
việc bằng chính mắt mình. Xây dựng một bộ máy có thể phá
khóa DES trong vòng vài ngày là cách duy nhất chứng tỏ với
mọi người rằng họ không thể đảm bảo an ninh thông tin dựa vào
DES." Hệ thống này đã tìm được khóa DES bằng phương pháp
duyệt toàn bộ trong thời gian hơn 2 ngày; trong khi vào khoảng
thời gian đó, một chưởng lý của Bộ Tư pháp Hoa Kỳ (DOJ) vẫn
tuyên bố rằng DES là không thể bị phá vỡ.
DES
Một Số Thuật Toán Mã Hóa

AES
Tháng 12 năm 1997, viện tiêu chuẩn và công nghệ Mỹ (NIST –
National Institute of Standard and Technology) kêu gọi phát triển
một thuật toán mới thay thế cho 3DES (một biến thể an toàn hơn
của DES với chìa khóa dài 112 bit). Thuật toán được chọn phải là
thuật toán khối có kích thước khối là 128 bit, hỗ trợ chìa khóa có
kích thước 128 bit, 192 bit và 256 bit.
15 thuật toán được gửi đến từ nhiều nơi trên thế giới, 5 thuật toán

lọt vào vòng hai: Rijndael, Twofish, Serpent, RC6 và MARS.
Tháng 11 năm 2001, Rijndael đuợc chọn làm AES (một phần nhờ
có tốc độ nhanh hơn so với các đối thủ), chính thức thay thế DES
trong vai trò chuẩn mã hóa dữ liệu.
Một Số Thuật Toán Mã Hóa

Trong mật mã học , RSA là một thuật toán mã hóa khóa công
khai .Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký
điện tử đồng thời với việc mã hóa .Nó đánh dấu một sự tiến bộ
vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công
cộng . RSA đang được sử dụng phổ biến trong thương mại điện
tử và được cho là đảm bảo an toàn với diiều kiện độ dài khóa đủ
lớn .
RSA sử dụng khóa công khai để mã hóa và sử dụng khóa cá
nhân để giải mã ( 2 khóa này có quan hệ mật thiết với nhau)
RSA
Một Số Thuật Toán Mã Hóa

RSA đảm bảo dữ liệu được an toàn khi truyền qua mạng. Việc
bị lộ mã là rất khó.
Ngoài ra RSA còn được dùng để tạo chữ ký điện tử
Để tạo ra một bản mã hóa có độ an toàn tương đương với DES.
RSA sẽ phải mất nhiều thời gian hơn.
RSA
Một Số Thuật Toán Mã Hóa

MD5 (Message-Digest algorithm 5) là một hàm băm để mã
hóa với giá trị băm là 128bit. Từng được xem là một chuẩn
trên Internet, MD5 đã được sữ dụng rông rải trong các
chương trình an ninh mạng, và cũng thường được dùng để

kiểm tra tính nguyên vẹn của tập tin.
MD5 biến đổi một thông điệp có chiều dài bất kì thành một khối
có kích thước cố định 128 bits
MD5
Một Số Thuật Toán Mã Hóa


MD5 có 2 ứng dụng quan trọng:

1/ MD5 được sử dụng rộng rải trong thế giới phần mềm để đảm
bảo rằng tập tin tải về không bị hỏng. Người sử dụng có thể so
sánh giữa thông số kiểm tra phần mềm bằng MD5 được công bố
với thông số kiểm tra phần mềm tải về bằng MD5. Hệ điều hành
Unix sử dụng MD5 để kiểm tra các gói mà nó phân phối, trong
khi hệ điều hành Windows sử dụng phần mềm của hãng thứ ba.

2/ MD5 được dùng để mã hóa mật khẩu. Mục đích của việc mã
hóa này là biến đổi một chuổi mật khẩu thành một đoạn mã
khác, sao cho từ đoạn mã đó không thể nào lần trở lại mật khẩu.
Có nghĩa là việc giải mã là không thể hoặc phải mất một
khoãng thời gian vô tận (đủ để làm nản lòng các hacker).
MD5
Một Số Thuật Toán Mã Hóa


Mã Hóa (cryptography) là một trong những mặt phức
tạp nhất của quá trình phát triển phần mềm mà bất kỳ
nhà phát triển nào cũng sẽ sử dụng.

Lý thuyết kỹ thuật mật mã hiện đại cực kỳ khó hiểu

và đòi hỏi một mức kiến thức toán học mà tương đối
ít người có được.

May mắn là thư viện lớp .NET Framework cung cấp
các hiện thực dễ sử dụng cho hầu hết các kỹ thuật mật
mã thông dụng và hỗ trợ các giải thuật phổ biến nhất.
Tổng Kết

Môn học: Lập Trình C#
Giảng viên:
Ths Đặng Kiên Cường
Đề Tài: Mã Hóa Và Bảo Mật
Thông Tin
Tài liệu tham khảo:
“ Các giải pháp lập trình c# ”
“ C# 2005 – Lập trình windows form”
Nhóm Thực Hiện:
No1 Lớp 07CT113
Thành viên:
Phạm Quang Huy
Hoàng Khai Nguyên
Nguyễn Thị Thanh Trúc
Đới Sỹ Đức
Nguyễn Thị Nữ Việt

×