Tải bản đầy đủ (.pdf) (66 trang)

Tìm hiểu một số phương pháp thám mã hệ mật mã khóa công khai ứng dụng trong bảo mật dữ liệu

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 (931.01 KB, 66 trang )

i

LỜI CẢM ƠN
Lời đầu tiên, em xin được gửi lời cảm ơn sâu sắc đến TS.Nguyễn Duy Minh,
người thầy đã giúp đỡ em trong suốt quá trình làm khóa luận, đồng thời cũng là
người thầy đã hướng dẫn em những bước đi đầu tiên để khám phá một lĩnh vực đầy
bí ẩn và thách thức – lĩnh vực an toàn và bảo mật dữ liệu.
Em xin được cảm ơn các thầy, các cô đã giảng dạy em trong suốt quá trình
học tập. Những kiến thức mà các thầy các cô đã dạy sẽ mãi là hành trang giúp em
vững bước trong tương lai.
Em cũng xin được gửi lời cảm ơn đến tập thể lớp CK11G, một tập thể lớp
đoàn kết với những người bạn không chỉ học giỏi mà còn luôn nhiệt tình, những
người bạn đã giúp đỡ em trong suốt quá trình học tập.
Cuối cùng em xin được gửi lời cảm ơn sâu sắc tới gia đình em, những người
luôn kịp thời động viên, khích lệ em, giúp đỡ em vượt qua những khó khăn trong
cuộc sống.
Thái Nguyên, tháng 08 năm 2014
Học viên

Vũ Quốc Thịnh


ii

ĐỊNH NGHĨA, VIẾT TẮT
Advanced Encryption Standard (AES)

Tiêu chuẩn tiên tiến

Asymmetric key cryptography


Mã hóa bất đối xứng

Authentication

Tính xác thực

Cipher text

Bản mã

Concatenate frequency of pairs

Tần số bộ đôi móc xích

Confidentiality

Tính bảo mật

Cryptannalysis

Thám mã

Cryptography

Mật mã

Cryptology

Mật mã học


Data Encryption Standard (DES)

Tiêu chuẩn mã hóa dữ liệu

Decryption

Giải mã

Encryption

Mã hóa

Frequency

Tấn số

Integrity

Tính toàn vẹn

Key seed

Mầm khóa

Most Likelihood Ratio (MLR)

Tỷ số hợp lý cực đại

Non – repudation


Tính không thể chối bỏ

Plain text

Bản rõ

Private key

Khóa bí mật

Public key

Khóa công khai

Relative frequency

Tần số tương đối

Rivest, Shamir, & Adleman (RSA)
Symmetric - key cryptography

Mã hóa đối xứng


iii

MỤC LỤC
LỜI CẢM ƠN...............................................................................................................i
ĐỊNH NGHĨA, VIẾT TẮT......................................................................................... ii
MỤC LỤC ................................................................................................................. iii

DANH MỤC HÌNH VẼ ..............................................................................................v
LỜI NÓI ĐẦU .............................................................................................................1
CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ THÁM MÃ..3
1.1. Giới thiệu ...................................................................................................... 3
1.2. Các khái niệm cơ bản .................................................................................... 3
1.2.1. Mật mã ................................................................................................... 3
1.2.2. Mật mã học ............................................................................................ 4
1.2.3. Bản rõ .................................................................................................... 4
1.2.4. Bản mã ................................................................................................... 4
1.2.5. Mã hóa ................................................................................................... 4
1.2.6. Giải mã .................................................................................................. 4
1.2.7. Khái niệm hệ mật mã ............................................................................. 5
1.3. Phân loại các hệ mật mã ................................................................................ 6
1.3.1. Mã hóa đối xứng .................................................................................... 6
1.3.2. Mã hóa bất đối xứng .............................................................................. 7
1.4. Tiêu chuẩn đánh giá hệ mật mã ................................................................... 10
1.5. Hệ mật mã RSA .......................................................................................... 10
1.5.1. Mô tả hệ mật RSA................................................................................ 11
1.5.2. Thực thi hệ RSA .................................................................................. 13
1.5.3. Độ an toàn của hệ RSA ........................................................................ 14
1.6. Thám mã ..................................................................................................... 15
1.6.1. Khái niệm ............................................................................................ 15
1.6.2. Các bước cơ bản để tiến hành thám mã ................................................ 19
1.7. Kết luận ...................................................................................................... 26
CHƯƠNG 2: CÁC PHƯƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG
KHAI .........................................................................................................................27
2.1. Tính an toàn của hệ mật mã ........................................................................ 27


iv

2.1.1. An toàn vô điều kiện ............................................................................ 27
2.1.2. An toàn được chứng minh .................................................................... 27
2.1.3. An toàn tính toán.................................................................................. 27
2.2. Các kiểu thám mã ....................................................................................... 28
2.2.1. Tấn công dạng 1: Tìm cách xác định khóa bí mật ................................. 28
2.2.2. Tấn công dạng 2: Tìm cách xác định bản rõ ......................................... 30
2.3. Một số sơ hở dẫn đến tấn công hệ mật RSA ................................................ 32
2.3.1. Biết (n) tìm được p, q ......................................................................... 33
2.3.2. Biết số mũ giải a .................................................................................. 33
2.3.3. Giao thức công chứng .......................................................................... 34
2.3.4. Giao thức số mũ công khai nhỏ ............................................................ 35
2.3.5. Giao thức số mũ bí mật nhỏ ................................................................. 37
2.3.6. Trường hợp các tham số p-1 và q-1 có các ước nguyên tố nhỏ ............. 39
2.4. Kết luận ...................................................................................................... 41
CHƯƠNG 3: THỬ NGHIỆM PHƯƠNG PHÁP THÁM MÃ VỚI HỆ RSA............43
3.1. Mô tả bài toán tấn công RSA sử dụng modul chung .................................... 43
3.2. Thuật toán tấn công giao thức modul n chung ............................................. 43
3.2.1. Kiểu tấn công thứ nhất: Tấn công dựa trên các số mũ mã hóa nguyên tố
cùng nhau ...................................................................................................... 43
3.2.2. Kiểu tấn công thứ hai: Phân tích số modul n bằng cách tìm căn bậc hai
không tầm thường của 1 mod n ...................................................................... 44
3.2.3. Kiểu tấn công thứ ba: Sử dụng khóa công khai và bí mật của mình để
sinh ra khóa bí mật của người dùng khác ....................................................... 46
3.3. Thử nghiệm chương trình ........................................................................... 47
3.3.1. Cơ sở lý thuyết ..................................................................................... 47
3.2.2. Thuật toán ............................................................................................ 48
3.3.3. Đánh giá kết quả ....................................Error! Bookmark not defined.
3.3.4. Thử nghiệm.......................................................................................... 50
3.4. Kết luận ...................................................................................................... 59
KẾT LUẬN ...............................................................................................................60

TÀI LIỆU THAM KHẢO .........................................................................................61


v

DANH MỤC HÌNH VẼ
Hình 1.1: Quá trình mã hóa và giải mã ........................................................................5
Hình 1.2: Mã hóa thông điệp sử dụng khóa công khai P..............................................8
Hình 1.3: Giải mã thông điệp sử dụng khóa riêng của người nhận ..............................8
Hình 1.4: Mã hóa thông điệp sử dụng khóa bí mật S để mã thông điệp và ..................9
Hình 1.5: Giải mã thông điệp sử dụng khóa bí mật S để giải mã thông điệp và ...........9
Hình 1.6: Sơ đồ biểu diễn thuật toán mã hóa RSA.....................................................13
Hình 3.1: Lưu đồ giải thuật thám mã RSA.................................................................49
Hình 3.2: Giao diện chính của chương trình thám mã RSA .......................................51
Hình 3.3: Nhập các tham số RSA .............................................................................52
Hình 3.4: Tính khóa bí mật d1, d2 .............................................................................53
Hình 3.5: Mã hóa .......................................................................................................54
Hình 3.6: Mã hóa thông điệp .....................................................................................55
Hình 3.7: Thám mã tìm ra khóa bí mật d1 .................................................................56
Hình 3.8: Giải mã tìm ra bản rõ theo khóa d1 ............................................................57
Hình 3.9: Giải mã tìm ra thông điệp ..........................................................................58


1

LỜI NÓI ĐẦU
Từ khi con người có nhu cầu trao đổi thông tin, thư từ với nhau thì nhu cầu
giữ bí mật và bảo mật tính riêng tư của những thông tin, thư từ đó cũng nảy sinh.
Hình thức thông tin trao đổi phổ biến sớm nhất là dưới dạng các văn bản, để giữ bí
mật của thông tin người ta đã sớm nghĩ đến cách che dấu nội dung các văn bản bằng

các biến dạng các văn bản đó để người ngoài đọc nhưng không hiểu được, đồng thời
có cách khôi phục lại nguyên dạng ban đầu để người trong cuộc vẫn hiểu được; theo
cách gọi ngày nay thì dạng biến đổi của văn bản được gọi là mật mã của văn bản,
cách lập mã cho một văn bản được gọi là phép lập mã, còn cách khôi phục lại
nguyên dạng ban đầu gọi là phép giải mã. Phép lập mã và phép giải mã được thực
hiện nhờ một chìa khóa riêng nào đó mà chỉ những người trong cuộc được biết và
nó được gọi là khóa lập mã. Người ngoài dù có lấy được bản mật mã trên đường
truyền mà không có khóa mật mã thì cũng không thể hiểu được nội dung của văn
bản truyền đi.
Trong số các phương pháp đảm bảo an toàn thông tin thì phương pháp mật
mã hóa (Cryptography) được sử dụng rộng rãi và đảm bảo an toàn nhất. Tuy nhiên
phương pháp mật mã hóa không tốt (mặc dù việc quản lý khóa mã được giả thiết là
an toàn) thì rất nguy hiểm. Vậy làm thế nào để đánh giá được chất lượng của một hệ
mã là tốt? Có nhiều phương pháp đánh giá chất lượng của một hệ mật như phương
pháp Entropy của Shannon, nhưng phương pháp tốt nhất và trực quan nhất, đó là
phương pháp phân tích trực tiếp bản mã khi không có khóa mã trong tay mà người
ta thường gọi là thám mã (Cryptannalysis).
Hiện nay thám mã cũng là một lĩnh vực cũng thường được quan tâm nghiên
cứu nhưng ít khi được công khai, hoặc công khai không đầy đủ. Sự hiểu biết về các
phương pháp thám mã hiện nay ở trong nước nói chung đang còn rất hạn chế. Tuy
đã có nhiều công trình nghiên cứu về thám mã nhưng việc đưa ra hệ quy trình thám
mã và chương trình thám mã vẫn ở mức độ hẹp và khó khăn trong ứng dụng thực tế.
Xuất phát từ thực tế đó, để góp phần tăng cường độ an toàn cho các hệ mật
mã hiện đại nhằm góp phần bảo vệ an ninh thông tin trong tình hình mới nên em đã


2
chọn đề tài “Tìm hiểu một số phương pháp thám mã hệ mật mã khóa công khai
ứng dụng trong bảo mật dữ liệu” nhằm nghiên cứu và ứng dụng.
Trong khuôn khổ đề tài được giao, luận văn được trình bày trong 3 chương.

Có phần mở đầu, phần kết luận, phần mục lục, tài liệu tham khảo. Các nội dung cơ
bản của luận văn được trình bày như sau:
Chương 1: “Tổng quan về mật mã khóa công khai và thám mã”. Ở chương
này, luận văn trình bày chi tiết về lịch sử cũng như các khái niệm về các hệ mã
thuộc dòng mã truyền thống cũng như dòng mã đối xứng, mã bất đối xứng giúp
chúng ta hiểu cơ sở lý thuyết về các hệ mật mã. Vấn đề thám mã nói chung và thám
mã đối với hệ mật RSA cũng được em trình bày kỹ trong chương này.
Chương 2: “Các phương pháp thám mã hệ mật mã khóa công khai”.
Trên cơ sở hiểu các hệ mật được trình bày ở chương 1, để có cái nhìn tổng quan về
vấn đề thám mã đối với hệ mật RSA và trên cơ sở trình bày các phương pháp thám
mã đã tổng kết lại các phương pháp và đánh giá kết quả của phương pháp như: các
tấn công cơ bản - modul chung, tấn công vào số mũ công khai hoặc số mũ bí mật
nhỏ, giao thức công chứng...
Chương 3: “Thử nghiệm phương pháp thám mã với hệ RSA”. Qua nghiên
cứu các phương pháp thám mã trong chương 2, chương 3 đề xuất phương pháp tấn
công giao thức sử dụng hệ mật mã RSA có modul n chung. Để minh chứng cho
phương pháp này, luận văn xây dựng thuật toán và cài đặt chương trình thử nghiệm
trong hệ bảo mật.
Do mức độ phức tạp của công việc thám mã là rất lớn nên bài toán đặt ra với
giả thiết người thám mã biết được các thông tin và bản mã được mã hóa bởi RSA từ
bản rõ tương ứng là một thông điệp dạng Text. Từ giả thiết này xây dựng thuật toán
để xác định khóa mật K đã sử dụng để mã hóa cũng như tìm ra bản rõ tương ứng.


3

CHƯƠNG 1
TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ THÁM MÃ
1.1. Giới thiệu
Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ khai đã

được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại.Trải
qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên thế giới
từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh vực hoạt
động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị,
ngoại giao. Mật mã trước hết là một loại hoạt động thực tiễn, nội dung chính của nó là
để giữ bí mật thông tin. Ví dụ muốn gửi một văn bản từ một người gửi A đến một
người nhận B, A phải tạo cho văn bản đó một bản mã mật tương ứng và thay vì gửi văn
bản rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật và khôi phục lại văn
bản rõ để hiểu được thông tin mà A muốn gửi cho mình. Do văn bản gửi đi thường
được chuyển qua các con đường công khai nên người ngoài có thể “lấy trộm” được,
nhưng vì đó là bản mật mã nên không đọc hiểu được; Còn A có thể tạo ra bản mã mật
và B có thể giải bản mã mật thành bản rõ để hiểu được là do hai người đã có một thoả
thuận về một chìa khóa chung, chỉ với khóa chung này thì A mới tạo được bản mã mật
từ bản rõ và B mới khôi phục được bản rõ từ bản mã mật. Khóa chung đó được gọi là
khóa mật mã. Để thực hiện được một phép mật mã, ta còn cần có một thuật toán biến
bản rõ cùng với khóa mật mã thành bản mã mật và một thuật toán ngược lại biến bản
mật cùng với khóa mật mã thành bản rõ. Các thuật toán đó được gọi tương ứng là thuật
toán lập mã và thuật toán giải mã. Các thuật toán này thường không nhất thiết phải giữ
bí mật, mà cái luôn cần được giữ bí mật là khóa mật mã. Trong thực tiễn, có những
hoạt động ngược lại với hoạt động bảo mật là khám phá bí mật từ các bản mã “lấy
trộm” được, hoạt động này thường được gọi là mã thám hay phá khóa.
1.2. Các khái niệm cơ bản
1.2.1. Mật mã
Mật mã (Cryptography) là tập hợp mọi phương pháp (hoặc quy tắc) biến đổi
nào đó nhằm chuyển các thông báo (messages) dưới dạng nhận thức được nội dung


4
(như chữ viết, tiếng nói, hình vẽ, hình ảnh…) thành dạng bí mật mà những người
ngoài cuộc không hiểu được nội dung nếu họ không biết được phương pháp (hoặc

quy tắc) biến đổi đó.
1.2.2. Mật mã học
Mật mã học (Cryptology) là một bộ môn khoa học chuyên nghiên cứu về mật
mã và thám mã.
1.2.3. Bản rõ
Ta hiểu bản rõ (Plain text) tức là một bản thông báo có mang nội dung thông
tin mà người đọc có thể hiểu được nó nói cái gì hoặc là nó có ý nghĩa rõ ràng. Bản
rõ (bản thông báo) có thể tồn tại dưới dạng chữ viết, tiếng nói, hình vẽ, biểu bảng…
tương ứng ta sẽ có khái niện mã ký tự, mã thoại, mã fax, mã dữ liệu…
Bản rõ thường được dùng biểu diễn (viết) dưới dạng một dãy các chữ cái
theo quy tắc cú pháp nào đó hoặc ký hiệu thuộc bảng chữ cái A hữu hạn được xác
định trước. Để trình bày, ta ký hiệu M là không gian các bản rõ (message space). Ví
dụ: M có thể là gồm dãy nhị phân, các văn bản tiếng Việt, hoặc mã chương trình
của máy tính…
1.2.4. Bản mã
Bản mã (Cipher text) thường cũng được biểu diễn dưới dạng một dãy các ký
hiệu có thể cũng thuộc A nhưng không theo một quy tắc cú pháp nào cả. Người ta
nói rằng đó là dãy ngẫu nhiên. Ta ký hiệu tập tất cả các bản mã ứng với các bản rõ
m là C.
1.2.5. Mã hóa
Mã hóa (Encryption) là quá trình chuyển đổi thông tin từ bản rõ sang bản
mã. Trong quá trình này thông tin trong bản rõ sẽ được ẩn đi và do đó bất kỹ một
người nào đọc thông điệp này cũng không hiểu được trừ trường hợp người đó có thể
giải mã (PlainText → CipherText)
1.2.6. Giải mã
Là quá trình giải mã (Decryption) để lấy lại thông tin ban đầu, ngược với quá
trình mã hóa (CipherText → PlainText).


5

1.2.7. Khái niệm hệ mật mã
Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D), trong đó:
- P (Plain text) là một tập hợp hữu hạn các các bản rõ có thể, nó được gọi là
không gian bản rõ.
- C (Cipher text) tập hữu hạn các bản mã có thể, nó còn được gọi là không
gian các bản mã. Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã
hóa Ek lên một phần tử của P, với k ∈ K.
- K (Key) là tập hữu hạn các khóa có thể hay còn gọi là không gian khóa.
Đối với mỗi phần tử k của K được gọi là một khóa. Số lượng của không gian khóa
phải đủ lớn để kẻ địch không có đủ thời gian để thử mọi khóa có thể (phương pháp
vét cạn).
- E (Encryption) là tập các hàm lập mã
- D (Decryption) là tập các hàm giải mã.
Với mỗi k ∈ K, có một hàm lập mã ek ∈ E, ek : P → C và một hàm giải mã dk
∈ D, dk: C → P sao cho
dk(ek(x)) = x , ∀x ∈ P

Hình 1.1: Quá trình mã hóa và giải mã
Hệ mật hiện đại cần phải đáp ứng được những yêu cầu sau:
- Tính bảo mật (Confidentiality): đảm bảo dữ liệu được truyền đi một cách
an toàn và không bị lộ nếu như ai đó cố tình muốn có được thông điệp gốc ban đầu.
Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu.


6
- Tính xác thực (Authentication): giúp cho người nhận thông điệp các định
được chắc chắn thông điệp mà họ nhận là thông điệp gốc ban đầu. Kẻ giả mạo không
thể giả dạng một người khác hay nói cách khác không thể mạo danh để gửi thông
điệp. Người nhận có khả năng kiểm tra nguồn gốc thông điệp mà họ nhận được.
- Tính toàn vẹn (Integrity): người nhận thông điệp có thể kiểm tra thông điệp

không bị thay đổi trong quá trình truyền đi. Kẻ giả mạo không thể có khả năng thay
thế dữ liệu ban đầu bằng dữ liệu giả mạo.
- Tính không thể chối bỏ (Non - repudation): người gửi, người nhận không
thể chối bỏ sau khi đã gửi hoặc nhận thông điệp.
1.3. Phân loại các hệ mật mã
Công nghệ thông tin phát triển, việc sử dụng máy tính gia tăng cùng với tốc độ
phát triển mạnh mẽ của Internet càng làm tăng nguy cơ bị đánh cắp các thông tin độc
quyền. Với mối đe dọa đó có nhiều biện pháp để đối phó song mã hóa là một phương
pháp chính để có thể bảo vệ các giá trị của thông tin điện tử. Có thể nói mã hóa là công
cụ tự động, quan trọng nhất cho an ninh mạng và truyền thông. Có hai hình thức mã
hóa được sử dụng phổ biến là mã hóa đối xứng (symmetric - key cryptography) và mã
hóa bất đối xứng (asymmetric key cryptography).
1.3.1. Mã hóa đối xứng
Thuật toán đối xứng hay còn gọi là thuật toán mã hóa cổ điển. Thuật toán
này còn có nhiều tên gọi khác như thuật toán khóa bí mật, thuật toán đơn giản, thuật
toán một khóa.
Là thuật toán mà tại đó khóa mã hóa có thể tính toán ra được từ khóa giải mã.
Trong rất nhiều trường hợp, khóa mã hóa và khóa giải mã là giống nhau.
Ưu điểm:
- Xử lý nhanh
Nhược điểm:
- Các phương pháp mã hóa cổ điển đòi hỏi người mã hóa và người giải mã
phải cùng chung một khóa. Khi đó khóa phải giữ bí mật tuyệt đối, do vậy ta dễ dàng
xác định được một khóa nếu biết khóa kia.


7
- Hệ mã hóa đối xứng không bảo vệ được sự an toàn nếu có xác suất cao
khóa người gửi bị lộ. Trong hệ khóa phải được gửi đi trên kênh an toàn nếu kẻ địch
tấn công trên kênh này có thể phát hiện ra khóa.

- Vấn đề quản lý và phân phối khóa là khó khăn và phức tạp khi sử dụng hệ
mã hóa cổ điển. Người gửi và người nhận luôn luôn thống nhất với nhau về vấn đề
khóa. Việc thay đổi khóa là rất khó và rất dễ bị lộ.
- Khuynh hướng cung cấp khóa dài mà nó phải được thay đổi thường xuyên
cho mọi người trong khi vẫn duy trì cả tính an toàn lẫn hiệu quả chi phí sẽ cản trở
rất nhiều tới sự phát triển của hệ mật mã cổ điển.
1.3.2. Mã hóa bất đối xứng
Để giải quyết vấn đề phân phối và thoả thuận khóa của mật mã khóa đối
xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khóa công
khai và một phương pháp trao đổi công khai để tạo ra một khóa bí mật chung mà
tính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán
tính “logarit rời rạc”). Hệ mật mã khóa công khai hay còn được gọi là hệ mật mã
phi đối xứng sử dụng một cặp khóa, khóa mã hóa còn gọi là khóa công khai
(publickey) và khóa giải mã được gọi là khóa bí mật hay khóa riêng (private key).
Trong hệ mật này, khóa mã hóa khác với khóa giải mã. Về mặt toán học thì từ khóa
công rất khó tính được khóa riêng. Biết được khóa này không dễ dàng tìm được
khóa kia. Khóa giải mã được giữ bí mật trong khi khóa mã hóa được công bố công
khai. Một người bất kỳ có thể sử dụng khóa công khai để mã hóa tin tức, nhưng chỉ
có người nào có đúng khóa giải mã mới có khả năng xem được bản rõ.
Người gửi A sẽ mã hóa thông điệp bằng khóa công của người nhận và người
nhận B sẽ giải mã thông điệp với khóa riêng tương ứng của mình.
Quá trình này được mô tả trong hình 1.2 và 1.3.


8

Hình 1.2: Mã hóa thông điệp sử dụng khóa công khai P

Hình 1.3: Giải mã thông điệp sử dụng khóa riêng của người nhận
Việc phát minh ra phương pháp mã công khai tạo ra một cuộc “cách mạng”

trong công nghệ an toàn thông tin điện tử. Nhưng thực tiễn triễn khai cho thấy tốc độ
mã hóa khối dữ liệu lớn bằng các thuật toán mã hóa công khai chậm hơn rất nhiều so
với hệ mã hóa đối xứng. Ví dụ, để đạt được độ an toàn như các hệ mã đối xứng mạnh
cùng thời, RSA đòi hỏi thời gian cho việc mã hóa một văn bản lâu hơn gấp hàng ngàn
lần. Do đó, thay bằng việc mã hóa văn bản có kích thước lớn bằng lược đồ khóa công
khai thì văn bản này sẽ được mã hóa bằng một hệ mã đối xứng có tốc độ cao như
DES, IDEA,…sau đó khóa được sử dụng trong hệ mã đối xứng sẽ được mã hóa sử
dụng mật mã khóa công khai. Phương pháp này rất khả thi trong việc mã và giải mã
những văn bản có kích thước lớn như được mô tả trong hình 1.4 và 1.5.


9

Hình 1.4: Mã hóa thông điệp sử dụng khóa bí mật S để mã thông điệp và
khóa công khai P để mã khóa bí mật S.

Hình 1.5: Giải mã thông điệp sử dụng khóa bí mật S để giải mã thông điệp và
khóa riêng P để giải mã khóa bí mật S.
Ưu và nhược điểm của hệ mật mã khóa công khai
Vấn đề còn tồn đọng của hệ mật mã khóa đối xứng được giải quyết nhờ hệ
mật mã khóa công khai. Chính ưu điểm này đã thu hút nhiều trí tuệ vào việc đề
xuất, đánh giá các hệ mật mã công khai. Nhưng do bản thân các hệ mật mã khóa
công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ
mật mã này đều có tốc độ mã dịch không nhanh lắm. Chính nhược điểm này làm
cho các hệ mật mã khóa công khai khó được dùng một cách độc lập.
Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc
xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra. Do các khóa mã công
khai được công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khóa
được công bố có đúng là của đối tượng cần liên lạc hay không?” là một kẽ hở có thể



10
bị lợi dụng. Vấn đề xác thực này được giải quyết cũng chính bằng các hệ mật mã
khóa công khai. Nhiều thủ tục xác thực đã được nghiên cứu và sử dụng như
Kerberos, X.509… Một ưu điểm nữa của các hệ mật mã khóa công khai là các ứng
dụng của nó trong lĩnh vực chữ ký số, cùng với các kết quả về hàm băm, thủ tục ký
để bảo đảm tính toàn vẹn của một văn bản được giải quyết.
1.4. Tiêu chuẩn đánh giá hệ mật mã
Để đánh giá một hệ mật mã người ta thường đánh giá thông qua các tính chất sau:
Độ an toàn: Một hệ mật được đưa vào sử dụng điều đầu tiên phải có độ an
toàn cao. Ưu điểm của mật mã là có thể đánh giá được độ an toàn thông qua độ an
toàn tính toán mà không cần phải cài đặt. Một hệ mật được coi là an toàn nếu để phá
hệ mật mã này phải dùng n phép toán. Mà để giải quyết n phép toán cần thời gian
vô cùng lớn, không thể chấp nhận được.
Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc
độ mã và giải mã. Hệ mật tốt thì thời gian mã và giải mã nhanh.
Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này được truyền
công khai hay truyền khóa bí mật. Phân phối khóa bí mật thì chi phí sẽ cao hơn so
với các hệ mật có khóa công khai. Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ
mật mã.
1.5. Hệ mật mã RSA
Có nhiều hệ thống khóa công khai được triển khai rộng rãi như hệ RSA, hệ
ElGamal sử dụng giao thức trao đổi khóa Diffie-Hellman và nổi lên trong những
năm gần đây là hệ đường cong Elliptic. Trong số các hệ mật mã trên thì hệ RSA là
hệ được cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc
thực thi mật mã khóa công khai.
Hệ mật mã RSA, do Rivest, Shamir và Adleman tìm ra, đã được công bố lần
đầu tiên vào tháng 8 năm 1977 trên tạp chí Scientific American. Hệ mật mã RSA
được sử dụng rộng rãi trong thực tiễn đặc biệt cho mục đích bảo mật và xác thực dữ
liệu số. Tính bảo mật và an toàn của chúng đượ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 số nguyên thành các thừa số nguyên tố.


11
Hệ mật mã RSA được sử dụng để cung cấp sự bảo mật và đảm bảo tính xác
thực của dữ liệu số. Hiện nay RSA được sử dụng trong nhiều hệ thống thương mại.
Các dịch vụ web server và web browser sử dụng nó để đảm bảo an toàn việc truyền
thông web, nó được sử dụng để đảm bảo bảo mật và xác thực của Email, đảm bảo
an toàn cho các phiên truy nhập từ xa và là bộ phận quan trọng của các hệ thống
thanh toán thẻ tín dụng điện tử.
Tóm lại, RSA thường được sử dụng trong các ứng dụng cần sự bảo đảm an
toàn và bảo mật dữ liệu số.
1.5.1. Mô tả hệ mật RSA
Hệ mật mã RSA sử dụng các tính toán trong Zn, trong đó n là tích của hai số
nguyên tố phân biệt p, q và (n) = (p-1)(q-1). Mô tả hình thức của hệ mật này như sau:
Hệ mật mã RSA được mô tả như sau:
Cho n = p*q với p, q là số nguyên tố lớn. Đặt P = C = Zn
Chọn b nguyên tố cùng nhau với (n), (n) = (p-1)(q-1)
Ta định nghĩa K = {(n, b, a): a*b  1mod (n)}
Trong đó (n, b) là công khai, a là bí mật
Với mỗi K = (n, a, b), mỗi x ∈ P, y ∈ C, định nghĩa:
Hàm mã hóa:
y = xb mod n
Hàm giải mã:
x = ya mod n
trong đó (x, y  Zn).
Các giá trị n, b công khai còn các giá trị p, q, a giữ bí mật.
Ta hãy kiểm tra xem các phép mã và giải mã có phải là các phép toán nghịch
đảo của nhau hay không.
Vì ab  1(mod(n)) nên ta có ab = t.(n) + 1 với một số nguyên t  1 nào đó.



12
Giả sử x  Zn ;
a. Trường hợp (x,n) =1  x(n) mod n = 1.
Khi đó ta có:

ya modn  (xb)a mod n  xt(n)+1 mod n
 ((x(n) mod n)t ).x mod n
 1t .x (mod n)
 x (mod n)

b. Trường hợp (x,n)= d>1  d = p hoặc d = q.
Giả sử d = p, khi đó x = hp với 0 < h < q và (h,n) = 1, suy ra:
ya modn  (xb)a mod n  (hab modn)( pab modn) modn
Do (h,n) = 1 nên hab modn  h
Bên cạnh đó,
pabmodn = pabmod(p.q)

 pab mod q
 p.p(n) mod q
 p.p(p).(q)mod q
 p.(p(p))(q)mod q

Vậy ya modn  h.p modn = h.p = x.

 p


13

1.5.2. Thực thi hệ RSA
Chọn 2 số nguyên tố lớn p và q
(p<>q)

Tính n = p*q

Bản rõ m
Tính (n) = (p - 1)(q - 1)
Khóa công khai
(e, n)
Chọn khóa công khai e
(0 < e < (n), gcd (e, (n)) = 1
)

c = me mod n

Bản mã c

Tính khóa bí mật d
d = e-1 mod n
(dùng thuật toán Euclide)

Khóa bí mật
(d, n)

Hình 1.6: Sơ đồ biểu diễn thuật toán mã hóa RSA

m = cd mod n

Bản rõ gốc m

mm

Sau đây là một ví dụ về cách thức thực hiện của hệ RSA (tất nhiên không mật).
Giả sử Bob chọn p = 101 và q = 113. Khi đó n = 11413 và (n) = 100 x 112
= 11200. Bob chọn ngẫu nhiên một số b và kiểm tra điều kiện UCLN ((n), b) = 1


14
bằng thuật toán Euclide. Giả sử Bob chọn b = 3533, khi đó theo thuật toán Euclid
mở rộng: b-1 = 6597 mod 11200.
Bởi vậy, số mũ bí mật để giải mã của Bob là a = 6597.
Bob sẽ công bố n = 11413 và b = 3533 trong một danh bạ khóa công khai.
Bây giờ, giả sử Alice muốn gửi bản rõ x = 9726 tới Bob. Cô ta sẽ tính:
97263533 mod 11413 = 5761
rồi gửi bản mã 5761 trên kênh.
Khi Bob nhận được bản mã 5761, anh ta sử dụng số mũ bí mật a để tính ra x:
57616597mod 11413 = 9726.
1.5.3. Độ an toàn của hệ RSA
a. Bài toán phân tích số và việc phá hệ mật RSA
Cách tấn công dễ thấy nhất đối với hệ mật RSA là người thám mã sẽ cố gắng
phân tích n ra các thừa số nguyên tố n = p*q. Nếu thực hiện được phép phân tích
này thì có thể dễ dàng tính được (n) = (p - 1).(q - 1) và do đó tìm được thông tin
cửa sập d tương ứng với thông tin mã hóa E bằng thuật toán Euclude. Như vậy
chúng ta thấy ngay việc phá hệ mật RSA là dễ hơn bài toán phân tích số nguyên ra
thừa số nguyên tố tuy nhiên cũng chưa có một kết quả nào chỉ ra rằng bài toán phân
tích số là thực sự khó hơn cho nên người ta thường thừa nhận rằng bài toán phá hệ
RSA là tương đương với bài toán phân tích số nguyên thành thừa số nguyên tố.
Để đảm bảo tính khó phân tích ra thừa số của n = p*q thì yêu cầu đầu tiên là
p, q là các số nguyên tố lớn và là số nguyên tố “mạnh”. Khái niệm “mạnh” ở đây
chỉ bắt nguồn từ ý nghĩa khó phân tích do vậy nó sẽ được bổ xung cùng với kết quả

có được của khả năng phân tích số. Nói một cách khác là khái niệm “mạnh” bao
gồm sự loại trừ các lớp số nguyên tố mà với chúng tồn tại thuật toán phân tích hiệu
quả, ta có thể biết đến một khái niệm sơ khai của tính “mạnh” đó là các số nguyên
tố p mà p - 1 và p + 1 có chứa thừa số nguyên tố lớn.
Vì thế để hệ RSA được coi là an toàn thì nhất thiết n = p*q phải là một số đủ
lớn để việc phân tích nó sẽ không có khả năng về mặt tính toán. Các thuật toán phân
tích hiện thời có khả năng phân tích các số tới 130 chữ số thập phân. Vì vậy để đảm


15
bảo an toàn nên chọn các số p và q có khoảng 100 chữ số, khi đó n sẽ có tới 200 chữ
số. Ngoài ra các số p, q cần phải thoả mãn một số yêu cầu cụ thể nữa.
b. Việc tấn công hệ mật RSA khác phương pháp phân tích số.
Một kết quả thú vị là một thuật toán bất kỳ để tính số mũ giải mã d đều có
thể được dùng như một chương trình con trong thuật toán xác suất kiêu Las Vegas
để phân tích n.
Như vậy mặc dù rằng nếu d bị lộ thì việc phân tích n cũng không còn ý nghĩa
theo quan điểm phá hệ mật tuy nhiên kết quả trên dù sao cũng cho ta một thuật toán
phân tích số n khi biết d với xác suất thành công không quá ½ của mỗi lần chọn số
ngẫu nhiên làm đầu vào cho thuật toán.
1.6. Thám mã
1.6.1. Khái niệm
Thám mã là quá trình khôi phục lại bản rõ hoặc khóa khi chỉ có bản mã
tương ứng cho trước (không biết khóa và quy tắc mã/dịch) gọi là thám mã. Người
làm công tác thám mã được gọi là người mã thám (Cryptanalysist) hay gọi là mã
thám viên.
Tổ chức làm công tác thám mã được gọi là đơn vị mã thám. Mã thám là một
bộ phận không thể thiếu của ngành tình báo điện tử. Hầu hết các quốc gia đều có bộ
phận tình báo điện tử này, nhưng sự phát triển và hiệu quả của nó lại phụ thuộc vào
trình độ khoa học - công nghệ của từng nước. Nước nào có trình độ khoa học - công

nghệ càng cao thì khả năng của công tác thám mã nói riêng, tình báo điện tử nói
chung càng mạnh.
Mục tiêu của thám mã: Mục tiêu của thám mã (phá mã) là tìm những điểm yếu
hoặc không an toàn tổng phương pháp mật mã hóa.Thám mã có thể được thực hiện
bởi những kẻ tấn công ác ý, nhằm làm hỏng hệ thống; hoặc bởi những người thiết kế
ra hệ thống với ý định đánh giá độ an toàn của hệ thống.
Để nghiên cứu thám mã được các bản mã truyền thống, người mã thám phải
nghiên cứu các đặc trưng cơ bản của bản rõ. Nói một cách khác, trong mọi ngôn
ngữ tự nhiên đều có những đặc trưng bất biến mà mã thám viên cần nắm vững để


16
phục vụ việc phân tích các bản mã. Đó là quy luật tần số, quy luật trùng lặp, quy
luật văn phong, v.v...
a. Tần số (Frequency)
Người ta định nghĩa tần số xuất hiện một ký tự, một nhóm ký tự, một từ hay
một vần v.v... trong một văn bản là số lần xuất hiện của ký tự, nhóm ký tự, từ, vần
đó trong văn bản đã cho.
Người ta có thể tính tần số từ một hoặc nhiều văn bản (thông báo) của một
loại ngôn ngữ nào đó để rút ra những quy luật riêng của ngôn ngữ đó. Có nhiều loại
tần số như: Tần số từng ký tự (tần số đơn), tần số từng cặp 2 ký tự (tần số bộ đôi).
Ngay tần số bộ đôi cũng có nhiều cách tính khác nhau như: Tần số bộ đôi thông
thường; Tần số bộ đôi móc xích (concatenate); Tần số bộ k ký tự (k = 1, 2, 3, 4...).
Ngoài ra còn có: tần số từ, tần số vần chữ cái (ví dụ - tion, trong tiếng Anh), tần số
các nhóm nguyên âm, tần số các ký tự đứng đầu từ, tần số ký tự đứng cuối từ
Một điểm cần lưu ý là mỗi loại ngôn ngữ tự nhiên khác nhau có các tần số
không giống nhau. Ngay trong một ngôn ngữ, các loại văn bản có tính chất văn học
sẽ có các tần số không hoàn toàn giống nhau. Những tính chất đó người ta gọi là các
đặc trưng ngôn ngữ.
Ta lưu ý rằng, các văn bản khác nhau thường có độ dài (số lượng các ký tự

trong văn bản đó) khác nhau. Do đó khái niệm tần số như định nghĩa trên có nhiều
trường hợp rất khó trong thực hành. Vì vậy người ta đưa ra khái niệm tần số tương
đối (tần suất - relative frequency). Tần suất của một ký tự x nào đó trong văn bản là
số lần xuất hiện ký tự đó chia cho độ dài của văn bản đó. Còn tần suất bộ đôi móc
xích xy nào đó trong một văn bản là số lần xuất hiện bộ đôi đó có trong văn bản
chia cho độ dài của văn bản trừ đi một. Ví dụ, giả sử văn bản có độ dài n, khi đó số
lượng bộ đôi móc xích là n-1 , nếu số lần xuất hiện cặp “nh” là m lần thì tần suất
của cặp “nh” sẽ là mnh / (n-1).
b. Sự trùng lặp
Là một quy luật của bất cứ ngôn ngữ tự nhiên nào. Đó là đặc trưng thứ 2 của
ngôn ngữ được thể hiện trên các văn bản thông báo (sau đây gọi là bản rõ). Ngoài


17
quy luật tần số thì quy luật trùng lặp rất cần thiết và có thể nói chúng không thể
thiếu đối với công tác thám mã truyền thống.
c. Văn phong (Quy luật hành văn trong văn bản).
Trong thực tế, các loại văn bản khác nhau sẽ có văn phong không giống nhau
do phụ thuộc vào thói quen của từng người soạn thảo ra văn bản đó. Đây cũng là
quy luật đáng lưu ý trong việc thám mã. Văn phong được chia thành các dạng:
- Dạng đầu văn bản (gọi là quy luật đầu điện):
Ví dụ: Công điện số…, báo cáo số…, kính gửi ông…, căn cứ Công văn số…,
phúc đáp Công văn số…
- Dạng thân văn bản (quy luật thân điện): Văn bản thường có chia theo từng
mục hoặc không chia theo mục; Nội dung văn bản có khác nhau tuỳ theo từng loại
nội dung như ngoại giao, tình báo, quân sự, kinh tế, chính trị v.v...;
- Dạng cuối văn bản (quy luật cuối điện): Đoạn kết thúc một văn bản thường
cũng có những quy luật: Mỗi người soạn thảo văn bản khác nhau sẽ có quy luật
khác nhau.
Ví dụ, thường chấm hết thì có chữ stop, stopend; câu chào Salam và sau cùng

là tên, chức vụ, cấp bậc của người gửi thông báo, v.v... Những thông tin này đôi khi
rất quan trọng, giúp nhà mã thám thành công trong nhiệm vụ của mình.
d. Quy luật tình huống
Như đã được trình bày ở phần trước, thám mã là tìm mọi biện pháp có thể để
khôi phục lại bản rõ và/hoặc khóa mã từ một số bản mã cho trước. Điều này cho
thấy thám mã là một loại công việc khó khăn và phức tạp, nó vừa mang tính khoa
học lại vừa mang tính nghệ thuật. Rõ ràng, khoa học về mật mã càng phát triển thì
kỹ thuật thám mã càng gặp nhiều khó khăn.
Để chống lại việc thám mã của đối phương, các nhà sản xuất mật mã phải
thiết kế các thuật toán mã hóa và các loại khóa mã sao cho các thông tin về khóa mã
và bản rõ không lộ rõ trên bản mã. Tuy nhiên, do đặc điểm của bản thân mật mã và
việc phân cấp sử dụng, nên trên thực tế, mật mã luôn chứa đựng những mâu thuẫn
nội tại mà các nhà mã thám vẫn có thể dựa vào đó khai thác, khám phá, đó là:


18
- Trình độ về mật mã ở các nước khác nhau sẽ khác nhau. Hiện nay, bên
cạnh những nước có công nghệ bảo mật (mật mã) rất hiện đại, vẫn còn không ít
nước vẫn đang sử dụng mật mã ở mức độ trung bình, thậm chí có nước dùng mật
mã truyền thống tương đối đơn giản. Và ngay trong cùng một nước, các lực lượng,
ngành khác nhau lại dùng các hệ mã khác nhau. Ví dụ, mật mã dùng trong quân sự
khác mật mã dùng trong ngoại giao, mật mã dùng trong tình báo khác với mật mã
dùng trong ngân hàng, tài chính v.v...
- Thông thường, những nhà lập mã không phải là người sử dụng mật mã.
Các nhà lập mã có trình độ cao trong lĩnh vực mật mã nhưng những người sử dụng
mật mã lại không cần như vậy. Người sử dụng thường có xu hướng muốn đơn giản
hóa công việc của mình, chính vì vậy họ dễ vi phạm các qui tắc đảm bảo an toàn
mật mã.
- Khóa mã không được bảo vệ cẩn thận theo quy định, và một sơ hở nhỏ
cũng đủ tạo khe hở cho các nhà mã thám lấy cắp được khóa mà mật mã viên không

hề biết. Vì vậy, khóa đó vẫn được sử dụng và các nhà mã thám khi nhận được các
bản mã chỉ việc dùng khóa đó mà dịch bình thường.
- Độ dư ngôn ngữ cũng là một quy luật rất quan trọng của ngôn ngữ tự
nhiên. Độ dư ngôn ngữ tồn tại trong chính bản mã của nhiều luật mã khác nhau, đặc
biệt là trong hệ mã truyền thống.
- Tiêu chuẩn bản rõ: chính là quy luật bản rõ được thể hiện qua quy luật tần
số, quy luật trùng lặp.... Đây là một yếu tố trọng yếu giúp cho nhà mã thám thành
công không những đối với mật mã truyền thống mà cả đối với mật mã khóa đối
xứng nói chung (như mã DES, IDEA, AES v.v...)
* Tiêu chuẩn bản rõ
Tiêu chuẩn bản rõ là một thành phần không thể thiếu đối với công tác thám
mã, đặc biệt là thám mã hiện đại. Vậy tiêu chuẩn bản rõ là gì? Ta biết rằng, các
ngôn ngữ tự nhiên đều có quy luật chung nhất đó là quy luật tần số và quy luật trùng
lặp. Hai quy luật này đã bị biến mất đối với bản mã. Với phương pháp mã hóa phức
tạp thì hai quy luật này hoàn toàn bị biến mất. Một trong những điều khác nhau cơ


19
bản của bản rõ và bản mã là ở chỗ đó. Giả sử nhà mã thám nhận được một (hoặc
một số) bản mã và bằng cách nào đó, họ đã biết được một vài thông tin về thuật
toán mã hóa (và dịch).
Tuy không biết được mã/dịch cụ thể nhưng nhà mã thám có thể biết được tất
cả khả năng có thể của khóa. Từ đó, người ta thử cho đầu vào (Input) là bản mã và
“khóa” (dự đoán) lấy trong không gian khóa rồi dịch thử. Kết quả đầu ra (output) sẽ
là một dãy nào đó (có thể đọc được có nghĩa hoặc cũng có thể không có nghĩa) mà
ta vẫn gọi là “bản rõ”. Nhưng bản rõ này chưa thể hiện được quy luật tần số và
trùng lặp. Nó chỉ thể hiện được quy luật tần số và trùng lặp nếu khóa mà ta đưa vào
là đúng hoặc có sai cũng chỉ sai một vài ký tự. Nhưng làm cách nào để biết được
quy luật tần số và trùng lặp được thể hiện trên “bản rõ” mà ta vừa tạo ra (từ khóa và
bản mã ban đầu (gọi là bản mã gốc). Do số liệu khóa đưa vào là rất lớn nên dùng

mắt thường để quan sát xem “bản rõ” nào thể hiện được quy luật tần số và trùng lặp
là không khả thi về khía cạnh thời gian tìm kiếm.
Tiêu chuẩn bản rõ giúp ta tự động xác định “bản rõ” nào thể hiện quy luật tần
số và trùng lặp, “bản rõ” nào không. Nhờ tiêu chuẩn bản rõ, nhà mã thám có thể
chia không gian khóa thành hai nhóm, một nhóm cho phép tạo ra được “bản rõ” có
quy luật tần số và trùng lặp, một nhóm gồm các khóa còn lại. Trong thực tế, nhóm
gồm các khóa cho phép tạo ra “bản rõ” có quy luật (ta gọi là bản rõ có nghĩa) là rất
ít so với nhóm còn lại. Từ đó chúng ta tiến hành kiểm tra tiếp và kết hợp với mắt
thường, chúng ta có thể giải ra được bản rõ ban đầu (bản rõ gốc) cần tìm và khóa
mà ta mong muốn.
Có nhiều phương pháp khác nhau để tạo ra các Tiêu chuẩn bản rõ. Do không
gian khóa thường rất lớn, nên cần có một tiêu chuẩn bản rõ có tốc độ tính toán càng
nhanh và càng chính xác càng tốt, trong đó tốc độ tính toán được ưu tiên số một
1.6.2. Các bước cơ bản để tiến hành thám mã
Khi nhận được một số bản mã, các nhà thám mã cần thực hiện một loạt các
bước nghiên cứu nhằm khôi phục được bản rõ (hoặc khóa) từ các bản mã nhận
được. Ta tìm hiểu các bước cơ bản nhất đó là:


20
Bước 1: Phân loại bản mã
Sau khi nhận được một số bức điện mã, các nhà phân tích mật mã có thể
phân loại xem những bức điện mã có cùng một loại mã pháp, có cùng một loại khóa
mã. Mặc dù chúng ta chưa biết được mã pháp (phương pháp mã hóa) của các bức
điện đó, nhưng chúng vẫn phân loại (phân lớp) được. Đây là một bước quan trọng
quyết định sự thành công hay thất bại của mã thám nên rất mất nhiều thời gian. Nếu
việc phân loại chính xác thì sẽ thuận lợi cho các bước tiến hành tiếp theo. Ngược
lại, nếu phân loại thiếu chính xác thì sẽ gây khó khăn cho các bước sau đó, thậm chí
thất bại.
Người ta có nhiều phương pháp thực thi giai đoạn này, một trong số đó là áp

dụng kỹ thuật phân lớp các đối tượng. Ý tưởng của bài toán phân lớp như sau:
Giả sử ta nhận được m bản mã M1, M2,..., Mm với m ≥ 2. Mỗi bản mã ta gọi
là một đối tượng. Tập hợp m bản mã (các đối tượng) ta ký hiệu là G.
Vậy G = {M1, M2,..., Mm}. Ứng với mỗi đối tượng ta cần tìm ra các đặc
trưng tham số. Giả sử đối tượng Mi có pi đặc trưng. Ở đây, để cho đơn giản, ta giả
thiết p1 = p2 = ...= pm= p. Vấn đề đặt ra là hãy phân tập hợp G thành k lớp không
giao nhau mà ta ký hiệu là G1, G2, ..., Gk, k > 1 sao cho:
(i) Gi khác 0 i = 1,k
(ii) Gi 1 Gj i khác j
(iii) G1 c G2 c...c YGk = G
và sao cho sai sót trong phân lớp là bé nhất có thể được. Để thực hiện việc phân lớp
các đối tượng ta cần đưa ra một độ đo “khoảng cách” giữa các đối tượng. Các đối
tượng “gần gũi” nhau sẽ được gán cho cùng một lớp.
Bước 2 : Xác định mã pháp
Sau khi hoàn thành việc phân lớp (phân loại mã pháp) ở bước 1, chúng ta
tiến hành xác định phương pháp mã dịch ứng với từng lớp cụ thể (cần chú ý rằng,
thường thì chúng ta tiến hành xác định mã pháp đối với các bản mã có nhiều đặc
điểm nhất theo quan điểm của các nhà thám mã). Đây là một khâu rất quan trọng
của công tác thám mã truyền thống. Tuy nhiên đối với một số hệ mật đối xứng hiện


×