Chuẩn mã DỮ liệU



tải về 0.52 Mb.
trang2/5
Chuyển đổi dữ liệu10.09.2016
Kích0.52 Mb.
#31967
1   2   3   4   5

TRANH LUẬN VỀ DES.

Khi DES được đề xuất như một chuẩn mật mã, đã có rất nhiều ý kiến phê phán. Một lý do phản đối DES có liên quan đến các hộp S. Mọi tính toán liên quan đến DES ngoại trừ các hộp S đều tuyến tính, tức việc tính phép hoặc loại trừ của hai đầu ra cũng giống như phép hoặc loại trừ của hai đầu vào rồi tính tóan đầu ra. Các hộp S - chứa đựng thành phần phi tuyến của hệ mật là yếu tố quan trong nhất đối với độ mật của hệ thống( Ta đã thấy trong chương 1 là các hệ mật tuyến tính - chẳng hạn như Hill - có thể dễ dàng bị mã thám khi bị tấn công bằng bản rõ đã biết). Tuy nhiên tiêu chuẩn xây dựng các hộp S không được biết đầy đủ. Một số người đã gợi ý là các hộp S phải chứa các "cửa sập" được dấu kín, cho phép Cục An ninh Quốc gia Mỹ (NSA) giải mã được các thông báo nhưng vẫn giữ được mức độ an toàn của DES. Dĩ nhiên ta không thể bác bỏ được khẳng định này, tuy nhiên không có một chứng cớ nào được đưa ra để chứng tỏ rằng trong thực tế có các cửa sập như vậy.

Năm 1976 NSA đã khẳng định rằng, các tính chất sau của hộp S là tiêu chuẩn thiết kế:

P0 Mỗi hàng trong mỗi hộp S là một hoán vị của các số nguyên 0, 1, . . . , 15.

P1 Không một hộp S nào là một hàm Affine hoặc tuyến tính các đầu vào của nó.

P2 Việc thay đổi một bít vào của S phải tạo nên sự thay đổi ít nhất là hai bít ra.

P3 Đối với hộp S bất kì và với đầu vào x bất kì S(x) và S(x  001100) phải khác nhau tối thiểu là hai bít ( trong đó x là xâu bít độ dài 6 ).

Hai tính chất khác nhau sau đây của các hộp S có thể coi là được rút ra từ tiêu chuẩn thiết kế của NSA.

P4 Với hộp S bất kì, đầu vào x bất kì và với e, f {0,1}: S(x) S(x  11ef00).

P5 Với hộp S bất kì , nếu cố định một bít vào và xem xét giá trị của một bít đầu ra cố định thì các mẫu vào để bít ra này bằng 0 sẽ xấp xỉ bằng số mẫu ra để bít đó bằng 1.( Chú ý rằng, nếu cố định giá trị bít vào thứ nhất hoặc bít vào thứ 6 thì có 16 mẫu vào làm cho một bít ra cụ thể bằng 0 và có 16 mẫu vào làm cho bít này bằng 1. Với các bít vào từ bít thứ hai đến bít thứ 5 thì điều này không còn đúng nữa. Tuy nhiên phân bố kết quả vẫn gần với phân bố đều. Chính xác hơn, với một hộp S bất kì, nếu ta cố định giá trị của một bít vào bất kì thì số mẫu vào làm cho một bít ra cố định nào đó có giá trị 0 (hoặc 1) luôn nằm trong khoảng từ 13 đến 19).


Người ta không biết rõ là liệu có còn một chuẩn thiết kế nào đầy đủ hơn được dùng trong việc xây dựng hộp S hay không.
Sự phản đối xác đáng nhất về DES chính là kích thước của không gian khoá: 256 là quá nhỏ để đảm bảo an toàn thực sự. Nhiều thiết bi chuyên dụng đã được đè xuất nhằm phục vụ cho việc tấn công với bản rõ đã biết. Phép tấn công này chủ yếu thực hiện tìm khoá theo phương pháp vét cạn. Tức với bản rõ x 64 bít và bản mã y tương ứng, mỗi khoá đều có thể được kiểm tra cho tới khi tìm được một khoá K thảo mãn eK(x) = y. Cần chú ý là có thể có nhiều hơn một khoá K như vậy).
Ngay từ năm 1977, Diffie và Hellman đã gợi ý rằng có thể xây dựng một chíp VLSI (mạch tích hợp mật độ lớn) có khả năng kiểm tra được 106khoá/giây. Một máy có thể tìm toàn bộ không gian khoá cỡ 106 trong khoảng 1 ngày. Họ ước tính chi phí để tạo một máy như vậy khoảng 2.107$.
Trong cuộc hội thảo tại hội nghị CRYPTO'93, Michael Wiener đã đưa ra một thiết kế rất cụ thể về máy tìm khoá. Máy này xây dựng trên một chíp tìm khoá, có khả năng thực hiện đồng thời 16 phép mã và tốc độ tới 5107 khoá/giây. Với công nghệ hiện nay, chi phí chế tạo khoảng 10,5$/chíp. Giá của một khung máy chứa 5760 chíp vào khoảng 100.000$ và như vậy nó có khả năng tìm ra một khoá của DES trong khoảng 1,5 ngày. Một thiết bị dùng 10 khung máy như vậy có giá chừng 106 $ sẽ giảm thời gian tìm kiếm khoá trng bình xuống còn 3,5 giờ.



    1. DES TRONG THỰC TẾ.

Mặc dù việc mô tả DES khá dài dòng song người ta có thể thực hiện DES rất hữa hiệu bằng cả phần cứng lẫn phần mềm. Các phép toán duy nhất cần được thực hiện là phép hoặc loại trừ các xâu bít. Hàm mở rộng E, các hộp S, các hoán vị IP và P và việc tính toán các giá tri K1,.. . ,K16 đều có thể thực hiện được cùng lúc bằng tra bảng ( trong phần mền ) hoặc bằng cách nối cứng chúng thành một mạch.


Các ứng dụng phần cứng hiện thời có thể đạt được tốc độ mã hoá cực nhanh. Công ty Digital Equipment đã thông báo tại hội nghị CRUPTO'92 rằng họ sẽ chế tạo một chíp có 50 ngàn tranzistor có thể mã hoá với tốc độ 1 Gbít/s bằng cách dùng nhịp có tốc độ 250MHz. Giá của chíp này vào khoảng 300$. Tới năm 1991 đã có 45 ứng dụng phần cứng và chương trình cơ sở của DES được Uỷ ban tiêu Chuẩn quốc gia Mỹ (NBS) chấp thuận.
Một ứng dụng quan trọng của DES là trong giao dịch ngân hàng Mỹ - (ABA) DES được dùng để mã hoá các số định danh cá nhân (PIN) và việc chuyển tài khoản bằng máy thủ quỹ tự động (ATM). DES cũng được Hệ thống chi trả giữa các nhà băng của Ngân hàng hối đoái (CHIPS) dùng để xác thực các giao dụch vào khoản trên 1,51012 USA/tuần. DES còn được sử dụng rộng rãi trong các tổ chức chính phủ. Chẳng hạn như bộ năng lượng, Bộ Tư pháp và Hệ thống dự trữ liên bang.


      1. Các chế độ hoạt động của DES.

Có 4 chế độ làm việc đã được phát triển cho DES: Chế độ chuyển mã điện tử (ECB), chế độ phản hồi mã (CFB), chế độ liên kết khối mã (CBC) và chế độ phản hồi đầu ra (OFB). Chế độ ECB tương ứng với cách dùng thông thường của mã khối: với một dãy các khối bản rõ cho trước x1,x2,. . .( mỗi khối có 64 bít), mỗi xi sẽ được mã hoá bằng cùng một khoá K để tạo thành một chuỗi các khối bản mã y1y2 ... theo quy tắc yi = eK(yi-1xi) i  1. Việc sử dụng chế độ CBC được mô tả trên hình 3.4.
Hình 3.4. Chế độ CBC.

Trong các chế độ OFB và CFB dòng khoá được tạo ra sẽ được cộng mod 2 với bản rõ (tức là nó hoạt động như một hệ mã dòng, xem phần 1.1.7). OFB thực sự là một hệ mã dòng đồng bộ: dòng khoá được tạo bởi việc mã lặp véc tơ khởi tạo 64 bít (véc tơ IV). Ta xác định z0 =IV và rồi tính dòng khoá z1z2 . . . theo quy tắc zi = eK(zi-1), i1. Dãy bản rõ x1x2 . . . sau đó sẽ được mã hoá bằng cách tính yi = xi  zi,i 1.


Trong chế độ CFB, ta bắt đầu với y0 = IV (là một véc tơ khởi tạo 64 bít) và tạo phần tử zi của dòng khoá bằng cách mã hoá khối bản mã trước đó. Tức zi = eK(yi-1), i 1. Cũng như trong chế độ OFB: yi = xi  zi,i 1. Việc sử dụng CFB được mô tả trên hình 3.5 (chú ý rằng hàm mã DES eK được dùng cho cả phép mã và phép giải mã ở các chế độ CFB và OFB).
Hình 3.5. Chế độ CFB


Cũng còn một số biến tấu của OFB và CFB được gọi là các chế độ phản hồi K bít (1 < K < 64 ). Ở đây ta đã mô tả các chế độ phản hồi 64 bít. Các chế độ phản hồi 1 bít và 8 bít thường được dùng trong thực tế cho phép mã hoá đồng thời 1 bit (hoặc byte) số liệu.


Bốn chế độ công tác có những ưu, nhược điểm khác nhau. Ở chế độ ECB và OFB, sự thay đổi của một khối bản rõ xi 64 bít sẽ làm thay đổi khối bản mã yi tương ứng, nhưng các khối bản mã khác không bị ảnh hưởng. Trong một số tình huống đây là một tính chất đáng mong muốn. Ví dụ, chế độ OFB thường được dùng để mã khi truyền vệ tinh.
Mặt khác ở các chế độ CBC và CFB, nếu một khối bản rõ xi bị thay đổi thì yi và tất cả các khối bản mã tiếp theo sẽ bi ảnh hưởng. Như vậy các chế độ CBC và CFB có thể được sử dụng rất hiệu quả cho mục đích xác thực. Đặc biệt hơn, các chế độ này có thể được dùng để tạo mã xác thực bản tin ( MAC - message authentication code). MAC được gắn thêm vào các khối bản rõ để thuyết phục Bob tin rằng, dãy bản rõ đó thực sự là của Alice mà không bị Oscar giả mạo. Như vậy MAC đảm bảo tính toàn vẹn (hay tính xác thực) của một bản tin ( nhưng tất nhiên là MAC không đảm bảo độ mật).
Ta sẽ mô tả cáchb sử dụng chế độ BCB để tạo ra một MAC. Ta bắt đầu bằng véc tơ khởi tạ IV chứa toàn số 0. Sau đó dùng chế đô CBC để tạo các khối bản mã y1,. . . ,yn theo khoá K. Cuối cùng ta xác định MAC là yn. Alice sẽ phát đi dãy các khối bản rõ x1,x2,. . . ,xn cùng với MAC. Khi Bob thu được x1. . .xn anh ta sẽ khôi phục lại y1. . .yn bằng khoá K bí mật và xác minh xem liệu yn có giống với MAC mà mình đã thu được hay không.
Nhận thấy Oscar không thể tạo ra một MAC hợp lệ do anh ta không biết khoá K mà Alice và Bob đang dùng. Hơn nữa Oscar thu chặn được dãy khối bản rõ x1. . .xn và thay đổi ít nhiều nội dung thì thì chắc chắn là Oscar không thể thay đổi MAC để được Bob chấp nhận.
Thông thường ta muốn kết hợp cả tính xác thực lẫn độ bảo mật. Điều đó có thể thực hiện như sau: Trước tiên Alice dùng khoá K1 để tạo MAC cho x1. . . xn . Sau đó Alice xác định xn+1 là MAC rồi mã hoá dãy x1. . .xn+1 bằng khoá thứ hai K2 để tạo ra bản mã y1. . .yn+1 . Khi Bob thu được y1. . .yn+1 , trước tiên Bob sẽ giải mã ( bằng K2) và kiểm tra xem xn+1 có phải là MAC đối với dãy x1. . .xn dùng K1 hay không.
Ngược lại, Alice có thể dùng K1 để mã hoá x1. . .xn và tạo ra được y1...yn , sau đó dùng K2 để tạo MAC yn+1 đối với dãy y1. . .yn. Bob sẽ dùng K2 để xác minh MAC và dung K1 để giải mã y1. . .yn.
3.5. PHÉP TỐI ƯU HOÁ THỜI GIAN - BỘ NHỚ.

Trong phần này sẽ mô tả phép tối ưu hoá thời gian - bô nhớ khá lý thú khi phá DES bằng tấn công bản rõ chọn lọc. Ta nhớ lại rằng, trong phép tấn công bản rõ chọn lọc, Oscar đã thu được cặp rõ - mã được tạo bởi khoá K (chưa biết). Bởi vậy, Oscar có x và y, trong đó y = eK(x) và anh ta muốn xác định được K.


Một đặc điểm của phép tối ưu hoá thời gian - bộ nhớ này là nó không phụ thuộc vào "cấu trúc" của DES trên mọi phương diện. Khía cạnh duy nhất của DES có quan hệ tới phép tấn công này là các bản rõ và các bản mã 64 bít trong khi các khoá có 56 bít.
Ta đã thảo luận về ý tưởng tìm khoá bằng phương pháp vét cạn: với một cặp rõ - mã cho trước, hãy thử tất cả 256 khoá cụ thể. Điều này không yêu cầu bộ nhớ, nhưng trung bình phải thử 255 khoá trước khi tìm được khoá đúng. Mặt khác, với một bản rõ x cho trước, Oscar có thể tính trước yK = eK(x) đối với toàn bộ 256 khoá K và xây dựng một bảng các cặp (yK,K) được sắp xếp theo các tạo độ đầu của chúng. Sau đó khi Oscar thu được bản mã y ( là kết quả của phép mã bản rõ x), anh ta phải nhìn vào giá trị y trong bảng và lập tức tìm được khoá K. Như vậy trong trường hợp này việc tìm được khoá K chỉ yêu câu một thời gian cố định nhưng ta phải có một bô nhớ có dung lượng lớn và cần thời gian tính toán trước lớn ( chú ý là quan điểm này không có lợi thế về thời gian tính toán tổng cộng nếu chỉ cần tìm một khoá, bởi vì việc xây dựng bảng cũng mất nhiều thời gian như việc tìm khóa vét cạn. Phương pháp này chỉ có lợi khi cần tìm nhiều khoá trong một khoảng thời gian vì ta chỉ cấn dùng một bảng cho tất cả các trường hợp).
Phép tối ưu hoá thời gian - bộ nhớ sẽ có thời gian tính toán nhỏ hơn phép tìm kiếm vét cạn và có yêu cầu bộ nhớ nhỏ hơn việc lập bangr tra cứu. Thuật toán có thể mô tả theo hai tham số m và t là các số nguyên dương. Thuật toán cần một hàm rút gọn R để rút gọn một xâu bít có độ dài 64 thành một xâu bít có độ dài 56 ( chẳng hạn R phải vứt bỏ 8 trong 64 bít). Giả sử x là một xâu bản rõ cố định 64 bít. Hãy xác định hàm g(K0) =R(eKo(x)) với một xâu bít K0 có độ dài 56. Chú ý rằng g là một hàm thực hiện ánh xạ 56 bít sab\ng 56 bít.
Trong giai đoạn tiền xử lý, Oscar chọn m xâu bít ngẫu nhiên có độ dài 56 được kí hiệu là X(i,0), 1 i  m. Oscar tính x(i,j) với 1  j  t theo quan hệ truy toán sau: X(i,j) = g(X(i,j-1)), 1  i x  m , 1  j  t như chỉ trên hình 3.6.

Hình 3.6. Tính X(i,j)





Sau đó Oscar xây dựng một bảng các cặp T = (X(i,t), X(i,0) được sắp xếp theo toạ độ đầu của chúng( tức là chỉ lưu giữ cột đầu và cột cuối của X).

Sau khi thu được bản mã y ( là bản mã của bản rõ x đã chọn). Oscar cần phải xác định K và anh ta sẽ xác định được nếu K nằm trong t cột đầu của bảng X, tuy nhiên anh ta chỉ làm điều này bằng cách chỉ nhìn vào bảng T.
Giả sử rằng K = X(i,t-j) với j nào đó, 1  j  t ( tức giả sử rằng K nằm ở t cột đầu tiên của X). Khi đó rõ ràng là gj(K) = x(i,t), trong đó gj kí hiệu hàm nhận được bằng cách lặp g một số lần bằng j. Bây giờ ta thấy rằng:
gj(K) = gj-1(g(K))

= gj-1(R(eK(x)))

= gj-1(R(y))
G
iả sử tính ỵj,1  j  t, từ quan hệ truy toán


R(y) nếu j = 1

yi =

g(ỵj-1) nếu 2  j  t



Từ đó rút ra rằng yj = X(i,t-j) nếu K = X(i,t-j). Tuy nhiên cần chú ý rằng yj = X(i,t) chưa đủ để đảm bảo là K = X(i,t-j). Sở dĩ như vậy vì hàm rút gọn R không phải là một đơn ánh: miền xác định của R có lực lượng 264 và giá trị của R có lực lượng 256, bởi vậy tính trung bình có 28 = 256 nghịch ảnh của một xâu bít bất kì cho trước có độ dài 56. Bởi vây cần phải kiểm tra xem y = eX(i,t-j)(x) hay không để biết liệu X(i,t-j) có thực sự là khoá hay không. Ta không lưu trữ giá trị X(i,t-j) nhưng có thể dễ dàng tính lại nó từ X(i,0) bằng cách lặp t-j lần hàm g.
Oscar sẽ thực hiện theo thuật toán được mô tả trên hình 3.7.

Hình 3.7. Phép tối ưu hoá bộ nhớ - thời gian trong DES.


  1. Tính y1 = R(y)

  2. for j = 1 to t do

  3. if yj = X(i,t-j) với giá trị i nào đó then

  4. Tính X(i,t-j) từ X(i,0) bằng cách lặp t-j lần hàm g.

  5. if y = eX(i,t-j)(x) then

đặt K = X(i,t-j) và QUIT

6. Tính yj+1 = g(yj)


Bằng cách phân tích xác suất thành công của thuật toán, có thể chứng tỏ rằng nếu mt2  N = 256 thì xác suất để K = X(i,t-j) với i, j nào đó sẽ vào khoảng 0,8môi trường/N. Thừa số 0,8 tính theo điều kiện không phải tất cả cácX(i,t) đều phân biệt . Điều này gợi ý cho ta nên lấy m  t  N1/3 và xây dựng khoảng N1/3 bảng, mỗi bảng dùng một hàm rút gọn R khác nhau. Nếu thực hiện đươc điều này thì yêu cầu về bộ nhớ là 112N1/3 bít ( vì ta cần lưu trữ 2N2/3 số nguyên, mỗi số có 56 bít). Thời gian tiền tính toán dễ dàng thấy là cỡ O(N).

Việc phân tích thời gian chạy của thuật toán có khó hơn hơn một chút: Trước hết ta thấy rằng, bước 3 có thể chạy trong một thời gian không đổi (sử dụng phép mã hash) hoặc trong trường hợp xấu nhất, bước 3 có thể chạy với thời gian O(logm) khi dùng phép tmf kiếm nhị phân. Nếu bước 3 không thoả mãn (tức là phép tìm kiếm không thành công) thì thời gian chạy là O(N2/3). Các phân tích chi tiết hơn chứng tỏ rằng, ngay cả khi tính cả thời gian chạy của các bước 4 và5 thì thời gian chạy trung bình chỉ tăng một lương là hằng số.



    1. THÁM MÃ VI SAI (DC).

Phương pháp DC do Biham và Shamir đưa ra là một phương pháp tấn công DES rất nổi tiếng. Đây là một phép tấn công với bản rõ chọn lọc. Mặc dù phương pháp này không cho một phương pháp thực tế để phá DES 16 vòng thông dụng, nhưng nó có thể thực hiện thành công trong việc phá DES có số vòng mã hoá ít hơn. Chẳng hạn DES 8 vòng có thể phá được trong vòng vài phút trên một máy tính cá nhân nhỏ.


Bây giờ ta sẽ mô tả những ý tưởng cơ bản dùng trong kỹ thuật này, ta có thể bỏ qua phép hoá vị ban đầu IP và phép hoán vị ngược của nó ( không ảnh hưởng tới việc phân tích mã). Như đã nói ở trên, ta chỉ xét hạn chế DES n vòng với n  16. Bởi vậy, với các điều kiện trên, ta coi L0R0 là bản rõ và LnRn là bản mã trong DES n vòng ( cần chú ý rằng ta không cần đảo LnRn ).
Phương pháp DC xoay quanh việc so sánh kết quả phép hoặc - loại trừ của hai bản rõ với kết quả của phép hoặc - loại trừ của hai bản mã tương ứng. Đại thể ta sẽ xét hai bản rõ L0R0 vàL0*R0* với giá trị của phép hoặc - loại trừ L0'R0' = L0R0 L0*R0*. Trong phần này ta sẽ sử dụng ký hiệu ( ' ) để chỉ phép hoặc - loại trừ (XOR) của hai xâu bít.
Định nghĩa 3.1

Giả sử Sj là một hộp S (1 j  8 ). Xét một cặp đã sắp xếp của các xâu bít độ dài 6 ( ký hiệu là Bj, Bj*). Ta nói rằng XOR vào (của Sj ) là Bj Bj* và XOR ra ( của Sj ) là Sj(Bj)  Sj(Bj*).
Chú ý rằng XOR vào là một xâu bít có độ dài 6 và XOR ra là một xâu bít có độ dài 4.
Định nghĩa 3.2

Với bất kỳ Bj'  (Z2)6, ta định nghĩa tập (Bj') gồm các cặp được sắp xếp (Bj,Bj*) có XOR vào là Bj'.
Dễ dàng thấy rằng một tập (Bj') bất kỳ đều chứa 26 = 64 cặp và
(Bj') = {(Bj,Bj Bj' ) : Bj (Z2)6}
Với mỗi cặp trong (Bj') ta có thể tính XOR ra của Sj và lập bảng phân bố kết quả. Có 64 XOR ra phân bố trong 24 = 16 giá trị có thể. Tính không đều của các phân bố này là cơ sở cho phép tấn công.
Ví dụ 3.1.

Giả sử xét hộp S đầu tiên S1 và XOR vào 110100, khi đó:

(110100) = {(000000,110100), (000001,110100), . . . ,(111111,110100)}

Với mỗi cặp được sắp trong tập(110100) ta tính XOR ra của S1. Ví dụ S1(000000) = E16 = 1110 và S1(110100) = 916 = 1001, bởi vậy XOR đối với cặp (000000,110100) là 0111.


Nếu làm công việc này cho tất cả 64 cặp trong (110100) thì ta sẽ thu được phân bố sau của các XOR ra:


0000

0001

0010

0011

0100

0101

0110

0111

0

8

16

6

2

0

0

12




1000

1001

1010

1011

1100

1101

1110

1111

6

0

0

0

0

8

0

6

Trong ví dụ 3.1 chỉ có 8 trong 16 XOR ra có thể xuất hiện trên thực tế. Ví dụ cụ thể này có phân bố rất không đều. Nói chung nếu ta cố định một hộp S là Sj và một XOR vào Bj' thì trung bình có khoảng 75-80% các XOR ra là có thể xuất hiện.


Để mô tả và đưa ra các phân bố này, ta cần phải có thêm mọt số khái niệm thích hợp. Sau đó là một số định nghĩa.
Định nghĩa 3.3

Với 1  j  8 và với các xâu bít Bj' có độ dài 6 còn Cj' có độ dài 4, ta định nghĩa:

INj(Bj',Cj') = { Bj (Z2)6 : Sj(Bj)  Sj(Bj  Bj') = Cj'}


Nj(Bj',Cj') = | INj(Bj',Cj' ) |.
Nj(Bj',Cj' ) là số các cặp có XOR vào bằng Bj' và có XOR ra bằng Cj' với hộp Sj. Các cặp thực tế có các XOR vào xác định và tạo nên các XOR ra xác định có thể nhận được từ tập INj(Bj',Cj' ). Ta thấy rằng, tập này có thể được phân thành Nj(Bj',Cj' )/2 cặp, mỗi cặp có số XOR vào bằng Bj'.
Chú ý rằng phân bố được lập bảng ở trong ví dụ 3.1 chứa các giá trị N1(110100,C1'), C1' (Z2)4. Các tập IN1(110100,C1') được liệt kê trên hình 3.8.

Với mỗi hộp trong 8 hộp S có 64 XOR và có thể. Bởi vậy có thể tính được tất cả 512 phân bố và dễ dàng dùng máy tính để lập bảng các phân bố này.

Cần nhớ lại rằng, đầu vào của các hộp S ở vong thứ i là B = E J, trong đó E = E(Ri-1) là một hàm mở rộng của Ri-1 và J = Ki là các bít khoá của vòng thứ i. Bây giờ số XOR vào (cho tất cả 8 hộp) có thể được tính như sau:

B  B* = (E  J)  (E*  J)

= E  E*

Có thể thấy môt điều rất quan trọng là XOR vao không phụ thuộc vào các bít khoá J ( tuy nhiên chắc chắn XOR ra sẽ phụ thuộc vào các bít khóa này.


Hình 3.8. Các xâu vào có thể với XOR vào là 110100.


Các XOR ra

Các xâu vào có thể

0000




0001

000011,001111,011110,011111,

101010,101011,110111,111011



0010

000100,000101,001110,010001,

010010,010100,011010,011011,

100000,100101,010110,101110,

101111,110000,110001,111010



0011

000001,000010,010101,100001,

110101,110110



0100

010011,100111

0101




0110




0111

000000,001000,001101,010111

011000,011101,100011,101001

101100,110100,111001,111100


1000

001001,001100,011001,101101

111000,111101



1001




1010




1011




1100




1101

000110,010000,010110,011100

100010,100100,101000,110010



1110




1111

000111,001010,001011,001100

111110,111111



Каталог: files -> FileMonHoc
FileMonHoc -> NGÂn hàng câu hỏi lập trình cơ BẢn nhóm câu hỏI 2 ĐIỂM
FileMonHoc -> CHƯƠng 2 giới thiệu về LÝ thuyết số
FileMonHoc -> CÁc hệ MẬt khoá CÔng khai kháC
FileMonHoc -> BỘ MÔn duyệt chủ nhiệm Bộ môn
FileMonHoc -> Khoa công nghệ thông tin cộng hòa xã HỘi chủ nghĩa việt nam
FileMonHoc -> Chủ nhiệm Bộ môn Ngô Thành Long ĐỀ CƯƠng chi tiết bài giảNG
FileMonHoc -> Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠng chi tiết bài giảNG
FileMonHoc -> Khoa: CÔng nghệ thông tin cộng hòa xã HỘi chủ nghĩa việt nam
FileMonHoc -> MẬt mã khóA ĐỐi xứng lý thuyết cơ bản của Shannon
FileMonHoc -> Khoa công nghệ thông tin bài giảng LẬp trình cơ BẢn biên soạn

tải về 0.52 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương