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

CS13004 thuat toan thu gon gian

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 (284.85 KB, 5 trang )

Thuật toán thu gọn giàn với mở rộng 3 chiều
Lattice Reduction Algorithm in 3 Dimension Extension
TrÞnh Thanh L©m, NguyÔn Ngäc Hµ

Abstract: Lattice reduction is one of effective method in
cryptanalysis at recent years. It is difficult to understand
this method in terms of mathematics or algorithms in order
to apply it in commercial cryptography systems. The
famous LLL algorithm has been developed and it is
continuing getting much of attention by many researchers.
In case of 1 or 2 dimensions, there are many difference
versions of LLL have been implemented successfully. We
try to study LLL in case of 3 dimension that based on
results of Semaev and find out the way to implement this
algorithm on new Itanium 2 server of Intel.

I.

TÓM TẮT

Trong những năm gần đây, các cách tiếp cận khác
nhau dựa trên phương pháp thu gọn giàn (Lattice
Reduction) đã được sử dụng một cách thường xuyên
cho các nghiên cứu “tấn công” kiểu phân tích mã vào
các hệ thống mật mã khác nhau. Ngay khi không dựa
trên các lý thuyết phức tạp, những phương pháp phân
tích mã này có thể là hơi khó hiểu với các nhà mật mã
hướng ứng dụng cả từ quan điểm toán học và quan
điểm thuật toán. Bài báo này với mục đích giải thích
rõ kết quả có thể đạt được bởi thuật toán thu gọn giàn
nổi tiếng LLL trong các trường hợp nhỏ hơn hoặc


bằng 2 chiều qua các phiên bản thuật toán đã được
công bố khác nhau. Ngoài ra, chúng tôi còn mở rộng
phát triển một thuật toán thu gọn giàn cho trường hợp
3 chiều dựa trên các kết quả của Semaev [10] và
hướng cài đặt thuật toán này trên hệ thống máy tính
64 bit mới được giới thiệu Itanium 2 của Intel.
Với số chiều 1 thì bài toán thu gọn giàn không gặp
phải vấn đề gì lớn, bởi vì giàn khi đó chỉ có 2 cơ sở và
dễ dàng tìm ra cơ sở thu gọn. Với số chiều 2, thuật
toán do Gauss đề xuất giải quyết vấn đề này trong thời
gian đa thức, và nó đã được nhiều nhà nghiên cứu

chứng minh là rất hiệu quả trong cài đặt thực tế. Độ
phức tạp của thuật toán này trong trường hợp 2 chiều
cũng đã được tìm hiểu đầy đủ.
Một câu hỏi được đặt ra là: liệu có thể tìm được
thuật toán tìm cơ sở được thu gọn Minkowski trong
trường hợp số chiều là 3? Nếu có thuật toán đó thì
đánh giá độ phức tạp của nó, liệu có thoả mãn thời
gian đa thức hay không? Và cài đặt thuật toán này như
thế nào? Vấn đề này về một số khía cạnh lý thuyết đã
được Semaev đề cập đến trong [10]. Chúng tôi thực
hiện việc mở rộng các kết quả và hướng cài đặt trong
thực tế trên hệ thống máy tính mạnh sẵn có tại Việt
Nam hoặc chạy được từ xa trên mạng Internet.
II. CÁC KẾT QUẢ TRONG TRƯỜNG HỢP SỐ
CHIỀU NHỎ HƠN 3
1. Lịch sử nghiên cứu giàn:
Một giàn (Lattice) là một nhóm con rời rạc của Rn
hoặc tương tự là một tập L của tất cả các tổ hợp

tuyến tính tích phân của một tập đã cho các véc tơ n
chiều b1 ,..., bp

λ1b1 + ... + λ p bp
Nếu các véc tơ này là độc lập thì (b1 ,..., bp ) được
gọi là một cơ sở của L và p là số chiều của nó.
Từ quan điểm toán học, lịch sử của thu gọn giàn
xuất phát từ lý thuyết các dạng toàn phương được phát
triển bởi Lagrange, Gauss, Hermite, KorkineZolotareff và những người khác và cho tới hình học số
Minkovski [4]. Với sự phát triển của lý thuyết số, chủ
đề này đã được xem xét lại trong những năm 80, khi
Lovász tìm ra một thuật toán thời gian đa thức để tính
toán Cơ sở được thu gọn (Reduced basis) của một


giàn. Thực ra, thuật toán thu gọn giàn tương tự đã
được Lenstra giới thiệu trong quy hoạch tuyến tính
vào khoảng năm 1979 [5] và thuật toán thu gọn giàn
đạt đến dạng cuối cùng trong bài báo của Lenstra,
Lenstra và Lovász [6], và từ đó có tên gọi là Thuật
toán LLL. Những cải tiến thêm nữa thuật toán LLL
được thực hiện bởi Schnorr [9].
Sự liên quan của các thuật toán này đến mật mã đã
được biết đến ngay sau đó: vào tháng 4 năm 1982,
Shamir [11] đã tìm ra một thuật toán thời gian đa thức
để phá hệ mã khoá công khai Merkle-Hellman dựa
trên bài toán Knapsack [8], đây là hệ mã được mong
đợi có thể thay thế cho hệ mã nổi tiếng RSA một cách
cơ bản. Shamir đã dùng thuật toán quy hoạch tuyến
tính Lenstra, nhưng cùng năm đó, Adleman [1] mở

rộng kết quả của Shamir bằng việc thực hiện bài toán
mã như là một bài toán giàn chứ không thiên về bài
toán quy hoạch tuyến tính. Những cải tiến tiếp theo
của phương pháp này đã được thực hiện bởi Lagarias,
Odlyzko [7], Brickell [2] và thời gian gần đây là
Coster, La Macchia, Odlyzko, Schnorr và các tác giả
[3]. Liên quan đến vấn đề này hiện nay vẫn có nhiều
bài báo được công bố về việc mô tả các thủ tục mã mà
chúng có thể phá được thông qua các kỹ thuật thu gọn
giàn, hầu hết bởi phương pháp kiểm tra.
2. Mô tả chức năng của các thuật toán thu gọn
giàn
Như đã nói ở trên, một giàn L gồm tất cả các tổ
hợp tuyến tính tích phân của một tập đã cho các véc tơ

n chiều b1 ,..., bp

λ1b1 + ... + λ p bp
Từ quan điểm thuật toán, chúng ta quan tâm trường
hợp khi tất cả các bi có các tọa độ nguyên. Trong
trường hợp này, giàn L có thể được biểu diễn bởi một

cột khác
3. Xoá các cột bằng không
Điều không đơn giản là cách chọn chính xác dãy
các phép toán trên. Chúng ta có thể nói một cách đơn
giản rằng thuật toán cố gắng thực hiện hai bước sau:
1. Có được các cột ngắn nhất ở phía trước
2. Tạo ra các cột trực giao lẫn nhau nhiều nhất có thể
Một cách lý tưởng, chúng ta muốn có được cột thứ

nhất của ma trận gồm các tọa độ của một véc tơ khác
không ngắn nhất của L và với các cột của ma trận
“hầu như” trực giao. Không may, điều này không dễ
và chúng ta nói rằng không có thuật toán hiệu quả đã
biết để tìm véc tơ khác không ngắn nhất của L . Đây
không chỉ là một bài toán cơ bản mà còn là trung tâm
của nhiều bài toán trong lý thuyết số. Từ khía cạnh kết
quả ra của thuật toán, có thể xây dựng một véc tơ mà
độ dài không vượt quá độ dài của một véc tơ ngắn
nhất nhân với một hằng số nhân cho trước, điều này
phụ thuộc vào chiều của L cũng như dạng của thuật
toán được dùng. Sự thoả hiệp này đã được chỉ ra là đủ
cho nhiều ứng dụng trong thực tế khi số chiều không
đòi hỏi lớn quá.
3. Hiệu suất của thuật toán về lý thuyết
Giả sử L là một giàn sinh bởi một tập các véc tơ

n - chiều. Giả sử BL là ma trận tương ứng của L . Ký
hiệu B là giá trị của ma trận thu được như một kết
quả ra của thuật toán LLL và bởi b1 ,..., bq các véc tơ
cột của nó. Cuối cùng, giả sử λ1 là độ dài của véc tơ
khác không ngắn nhất của L (theo quan niệm Euclide
thường dùng). Điều sau đây được rút ra từ [6]:
Nhận xét 1:

b1 ,..., bq là một cơ sở của L

cấu trúc dữ liệu rất đơn giản là một ma trận BL với

b1 ≤ 2( q −1) / 2 × λ


các cột là tọa độ của các véc tơ b1 ,..., bp . Các thuật

b1 ≤ 2q ( q −1) / 2 × (∆ ( L))1/ q
Ở đây, ký hiệu ∆ ( L) là định thức của L , mà L là

toán thu gọn giàn thực hiện các công việc đơn giản
sau đây:

thể tích (theo nghĩa Euclide) của các hình hộp bao bởi

1. Đổi chỗ hai cột của BL

b1 ,..., bq . Trong trường hợp giàn có số chiều đầy đủ

2. Cộng vào một cột đã cho một tích nguyên của một


( n = q ), thể tích này là giá trị tuyệt đối của định thức
của B hoặc của cơ sở bất kỳ khác sinh bởi L . Điều

nghiên cứu đã chỉ ra rằng thuật toán LLL hoạt động
tốt hơn nhiều so với các mong đợi lý thuyết. Đặc biệt,

kiện iii) có nghĩa là chiều dài của b1 là không quá xa

trong trường hợp xấu nhất hằng số K q , xuất hiện

so với trường hợp “lý tưởng”, tương ứng với một cơ
sở gồm các véc tơ trực giao với nhau có cùng chiều

dài.
Với phân tích mã, nghĩa “heuristic” của nhận xét 1
là: nếu ta chỉ cần tìm một véc tơ đủ ngắn của một
giàn, thuật toán LLL sẽ thực hiện tốt công việc.
Tương tự, nếu ta biết rằng véc tơ ngắn nhất (chưa
biết) là nhỏ hơn nhiều các thành phần khác của giàn
hoặc nhỏ hơn nhiều giá trị (∆ ( L))1/ q , thì thuật toán
LLL có lẽ sẽ tìm ra được nó. Một sự sinh tự nhiên của
nhận xét 1 mà đôi khi hữu dụng là: một quan hệ được
gọi là tối thiểu liên tiếp (successive minima) của một
giàn: tối thiểu thứ i là giá trị dương nhỏ nhất λi sao
cho tồn tại i phần tử độc lập tuyến tính của giàn trong
một hình cầu bán kính λi với tâm là gốc tọa độ.
Nhận xét 2 :

bi ≤ 2( q −1) / 2 × λi
Với phân tích mã, nhận xét này có ý nghĩa là: nếu i
(chưa biết) các véc tơ độc lập tuyến tính của giàn là
rất nhỏ, thì giàn con mà nó bao chứa sẽ được tìm ra
bởi thuật toán LLL.
Thực ra, thuật toán LLL bao gồm một họ các thuật
toán khác nhau phụ thuộc vào một hằng số

1
4

γ , < γ < 1 . Trường hợp được mô tả ở trên tương
ứng với giá trị γ = 3 / 4 và nếu giá trị khác của γ là
được chọn, thì các luỹ thừa của hai nhận xét ở trên
phải được thay thế bằng các luỹ thừa giống nhau là

4 /(4γ − 1) .
Trong [9], Schnorr chỉ ra rằng một sự thừa kế toàn
thể của các thuật toán thu gọn giàn, là các mở rộng
của các thuật toán LLL và được ông gọi là các thu gọn
theo khối Korkine-Zolotareff (BKZ) cũng hữu dụng
trong thực tế.
4. Hiệu suất của thuật toán LLL trong thực tế
Trong tất cả các ứng dụng phân tích mã, các kết quả

( q−1)

trong nhận xét 1 như là 2 2 dường như nhỏ hơn
nhiều so với lý thuyết. Điều này có được là do trong
thực tế, các giả thuyết dạng “heuristic” thường được
đưa ra, và số chiều được áp dụng cũng thường là 2
chiều. Trong nghiên cứu này chúng tôi dự định triển
khai cài đặt thuật toán LLL trong trường hợp 3 chiều
trên hệ thống máy tính mới Itanium 2 của Intel nhằm
tận dụng khả năng tính toán song song EPIC mới
được nghiên cứu. Các kết quả bước đầu cho thấy hiệu
suất tính toán được tăng lên đáng kể. Tuy nhiên, các
kết quả cuối cùng đang tiếp tục được hoàn thiện để có
một so sánh với các kết quả đã có của các nhà nghiên
cứu phân tích mã khác.
5. Các kết quả đã được tính toán trong thực tế
Thời gian chạy của thuật toán LLL là đa thức trong
không gian có số chiều n , chiều q của giàn và cỡ của
ma trận BL . Chính xác hơn, nếu m là số lớn nhất các
bit trong các hệ số của ma trận gốc BL , thì thời gian
chạy của thuật toán chuẩn LLL là O(nq 5 m3 ) . Mặc dù

là đa thức, điều này vẫn chưa đủ và không cho phép
bất kỳ một cài đặt hiệu quả nào. Theo kết quả nghiên
cứu của Odlyzko và được thực hiện độc lập bởi
Schnorr, các cài đặt thực tế của các thuật toán là phiên
bản thu gọn LLL cho thấy chưa đạt hiệu quả như
mong đợi dù đã tiến bộ hơn nhiều so với lý thuyết
theo nghĩa thời gian tính toán.
Tất nhiên, thời gian chạy của thuật toán LLL cũng
phụ thuộc vào giá trị của hằng số γ được chấp nhận
bởi một vài heuristic có thể sẽ có ích như là sự tính
toán trước tiên với một giá trị vừa phải γ và sau cùng
với một giá trị gần với 1 hơn. Tương tự, các thu gọn
BKZ có một thời gian tính toán xấu hơn LLL. Cuối
cùng, thời gian tính toán cũng phụ thuộc vào kiểu bài
toán cần giải quyết.


III. MỞ RỘNG CHO TRƯỜNG HỢP 3 CHIỀU
Ý tưởng chủ đạo trong phần mở rộng thuật toán
LLL trong trường hợp 3 chiều của chúng tôi là như
sau:
Mở rộng thuật toán đi tìm cơ sở thu gọn (theo nghĩa
Minkowski) trong trường hợp 3 chiều bằng việc lặp
lại các bài toán vector gần nhất được chọn tốt
(heuristic) trong trường hợp 2 chiều.
1. Thu gọn từng cặp 2 chiều
Định nghĩa: Một cơ sở b1 , b2 , b3 của một giàn 3
chiều L trong Rn, n≥3, được gọi là 2-thu gọn nếu các
vector của nó là được thu gọn từng cặp.
Thuật toán (Thuật toán cho 2-thu gọn):

trong Rn, n≥3
− Ra: Một cơ sở 2-thu gọn b1 , b2 , b3 của giàn này
− Bước 1: (tìm một cặp không thu gọn) Nếu bi , b j là
không thu gọn với cặp i, j ∈ {1, 2,3} thì thực hiện
bước 2. Ngược lại thì dừng
− Bước 2: (Thu gọn cặp) Tính toán a , b = G (bi , b j )
thay thế bi , b j ← a , b , và quay lại bước 1. Ở đây
hàm G là hàm Gauss đã biết.
Định nghĩa: Chúng ta nói rằng một cơ sở b1 , b2 , b3
của một giàn 3 chiều L trong Rn, n≥3, được gọi là thu
gọn nếu các vector của nó thoả mãn:

cho

mọi số nguyên x1 , x2
Như vậy, một cơ sở thu gọn là cơ sở 2-thu gọn.
Định nghĩa này tương đương cơ sở thu gọn Minkowski
từ [10]. Như vậy, b1 là vector ngắn nhất khác không

Thuật toán (Thuật toán thu gọn):

b1 , b2 ) Ước lượng

Bước 1. (Giản ước cặp

( a, b) = G (b1 , b2 ) , thay thế b1 , b2 ← a, b .
Bước

2.


(Tìm

một

số

tối

thiểu

của

b3 + x2 b2 + x1b1 ). Tìm các số nguyên x1 , x2 để
b3 + x2 b2 + x1b1 là tối thiểu. Ta có x2 − y2 ≤ 1
và x1 − y1 ≤ 1 , trong đó

(b2 , b3 )

(b1 , b2 ) (b1 , b3 )

2
2
b2
b2
b1 ,
y2 = −
(b , b ) (b , b )
1 − 1 22 ⋅ 1 22
b1
b2


( b1 , b3 )



(b1 , b2 ) ( b2 , b3 )

2
2
b1
b1
b2
y1 = −
(b , b ) (b , b )
1 − 1 22 ⋅ 1 22
b1
b2
2



− Đặt a = b3 + x2 b2 + x1b1 .
Bước 3. (Thay thế b3 ← a ) Nếu a ≥ b3 , thì dừng,

b1 ≤ b2 ≤ b3 và quay lại bước 1.
Nhận xét: Thuật toán này dùng thuật toán tìm 2-thu
gọn. Độ phức tạp tính toán của nó là O (log 3 M )
phép toán nhị phân để tìm cơ sở thu gọn cho một cơ

1. b1 ≤ b2 ≤ b3 ;


λ ( L) = b1 ≤ 21/ 6 ∆( L)1/ 3

− Ra: Một cơ sở thu gọn b1 , b2 , b3 của giàn này

ngược lại Thay thế b3 ← a . Sắp xếp b1 , b2 , b3 để

2. Thu gọn trường hợp 3 chiều

của L , nó chỉ ra rằng:

trong Rn, n≥3

2

− Vào: Một cơ sở b1 , b2 , b3 của một giàn 3 chiều L

2. b2 + x1b1 ≥ b2 and b3 + x2b2 + x1b1 ≥ b3

− Vào: Một cơ sở b1 , b2 , b3 của một giàn 3 chiều L

sở b1 , b2 , b3 ∈ Z n , n ≥ 3 . Ở đây b1 , b2 , b3 ≤ M .
3. Hướng cài đặt thuật toán trong thực tế
Trên cơ sở các cài đặt dựa trên ngôn ngữ C trong
trường hợp 2 chiều [9], chúng tôi đã triển khai cài đặt
trong trường hợp 3 chiều thể hiện thuật toán tìm cơ sở
thu gọn nêu trên bằng ngôn ngữ C. Để đảm bảo tốc độ
tính toán nhanh hơn trong thực tế thì việc tìm kiếm
một thủ tục cài đặt tối ưu hơn đang tiếp tục được
nghiên cứu. Hy vọng, những công cụ mới sẽ giúp cài

đặt thuật toán mở rộng trên các máy tính mạnh trong


thực tế đạt kết quả tốt hơn và sẽ được trình bày trong
các báo cáo kết quả nghiên cứu trong tương lai.
TÀI LIỆU THAM KHẢO

[7] J.C. Lagarias and A.M.Odlyzko, Solving low-density
subset sum problems. In Proceedings of the 24th IEEE
symposium on Foundations of Computer Science,
IEEE, 1983. Pages 1-10.

[1] L.M. Adleman, On breaking generalized knapsack
public key cryptosystems, In Proc. 15th ACM
Symposium on Theory of Computing, 1983, pages 402412.

[8] R. Merkle and M. Hellman, Hiding information and
signatures in trapdoor knapsacks. IEEE Trans. Inform.
Theory, IT-24, September 1978. Pages 525-530

[2] E.F. Brickell, Breaking iterated knapsacks. In G.R.
Blakley and D.C. Chaum, editors, Proceedings
CRYPTO 84, Springer, 1985, pages 342-358

[9] C.P. Schnorr, A hierarchy of polynomial time lattice
basis reduction algorithms. Theoretical Computer
Science, Vol. 53. 1987. Pages 201-224

[3] M.J. Coster, A. Joux, B.A. LaMacchia, A. Odlyzko,
C.P. Schnorr, and J. Stern, Improved low-density subset

sum algorithms. Computational Complexity, Vol. 2,
1992. Pages 11-28

[10] I. Semaev, A 3-dimensional Lattice Reduction
Algorithm. In Proceedings CRYPTO 2001, 2001, Pages
181-193.

[4] A. Joux, J. Stern, Lattice Reduction: a Toolbox for the
Cryptanalyst. Springer, 1994.
[5] H.W. Lenstra, Interger programming with a fixed
number of variables. Math. Oper. Res., Vol 8, 1983,
Pages 538-548.

[11] A. Shamir, A polynomial-time algorithm for breaking
the basic Merkle-Hellman cryptosystem. In Proceedings
of the 23rd IEEE Symposium on Foundations of
Computer Science, IEEE, 1982. pages 145-152.
Ngày nhận bài: 17/06/2004

[6] A.K. Lenstra, H.W. Lenstra, Jr., and L. Lovsz,
Factoring polymials with rational coefficients.
Mathematicsche Ann. Vol 261, 1982, Pages 513-534.

Sinh ngày 5-11-1966

SƠ LƯỢC TÁC GIẢ
TRỊNH THANH LÂM
Sinh năm 1966 tại Hải Dương.
Tốt nghiệp Đại học Toán năm
1988 và Thạc sỹ Tin học năm

1994 tại trường Đại học Tổng
hợp Hà Nội.
Hiện đang làm việc tại: Intel
Việt Nam
Hướng nghiên cứu chính: an
toàn thông tin và phân tích mã.
E-mail:

Tốt nghiệp Đại học Tổng hợp năm 1988 khoa Toán
- Cơ- Tin học. Nhận bằng Thạc
sỹ khoa Công nghệ thông tin
trường Đại học Bách khoa Hà
Nội năm 2001
Hiện đang công tác tại Bưu
điện Hải Phòng
Hướng nghiên cứu: Dấu dữ
liệu và phân tích mã.
Email:

NGUYỄN NGỌC HÀ



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×