Điều gì đặc biệt về trong mật mã học?


12

Trong thuật toán mã hóa nhỏ :

Các bội số khác nhau của hằng số ma thuật được sử dụng để ngăn chặn các cuộc tấn công đơn giản dựa trên tính đối xứng của các viên đạn. Hằng số ma thuật, 2654435769 hoặc 9E3779B9 16 được chọn là , trong đó ϕ là tỷ lệ vàng.232/ϕ

Những thuộc tính nào có làm cho nó hữu ích trong bối cảnh này?232/ϕ


Câu trả lời:


11

AFAIK, các giá trị "ma thuật" như vậy có hai thuộc tính sau:

  1. Họ bằng cách nào đó độc đáo, và nhìn ngẫu nhiên.
  2. Họ có thể tham gia vào các hoạt động đại số nhiều lần; tức là ngay cả sau khi áp dụng một số thao tác cụ thể (nói phép nhân hoặc lũy thừa) nhiều lần, giá trị "ma thuật" vẫn có thể tạo ra các giá trị mới.

Bạn có thể tìm thấy một trường hợp tương tự trong MD5 . Hãy xem xét các dòng sau:

k[i] := floor(abs(sin(i + 1)) × (2 pow 32))

Ở đây, sin(i + 1)có nghĩa là để tạo ra các giá trị ma thuật; là duy nhất, tìm kiếm ngẫu nhiên và có thể làm việc cho nhiều người i. (Trên thực tế, iphạm vi trong 0..63).

Chỉnh sửa: Đọc bài báo gốc trên TEA , người ta hiểu rằng câu trả lời của "Steven Stadnicki" là chính xác. Lưu ý rằng hằng số ma thuật là tên delta:

Một bội số delta khác nhau được sử dụng trong mỗi vòng để không có bit nào của bội số sẽ không thay đổi thường xuyên. Chúng tôi nghi ngờ thuật toán này không nhạy cảm lắm với giá trị của delta và chúng tôi chỉ cần tránh một giá trị xấu. Cần lưu ý rằng delta hóa ra là số lẻ với phép cắt hoặc làm tròn gần nhất, do đó không cần biện pháp phòng ngừa thêm để đảm bảo rằng tất cả các chữ số của tổng thay đổi.

Vì chỉ có 32 bội số delta được sử dụng (mỗi một vòng), nên không có gì lạ khi thuật toán này không nhạy cảm với bất kỳ delta cụ thể nào. (Xem câu trả lời của Steven Stadnicki để biết thêm thông tin.)

Chỉnh sửa 2: Ngẫu nhiên, MD4 sử dụng căn bậc hai của 2 (0x5a827999) và 3 (0x6ed9eba1) làm hằng số "ma thuật" trong các hoạt động của nó. Mục 5.4.4 của cuốn sách An ninh mạng: Truyền thông cá nhân trong thế giới công cộng giải thích rõ điều này:

Để chỉ ra rằng các nhà thiết kế đã không chủ ý chọn một giá trị ma quỷ của hằng số, hằng số được dựa trên căn bậc hai của 2.

Giải thích này giống như điểm được đưa ra dưới đây trong một nhận xét của Gilles.


Nghe có vẻ hợp lý. 2 ^ 32 / pi hoặc 2 ^ 32 / sqrt (2) sẽ hoạt động tốt như vậy chứ?

@Tim: Tôi đoán vậy, nhưng nó là công cụ để kiểm tra kỹ các số ma thuật mới trong bối cảnh hoạt động nội bộ của TEA.
MS Dousti

5
Hơn nữa, một lý do để chọn hằng số toán học như 2 ^ 32 / phi, thay vì giá trị được tạo ngẫu nhiên với các thuộc tính có thể chấp nhận được, là để cho một smidgen tin tưởng rằng đây không phải là giá trị được chọn cho các thuộc tính chưa được tiết lộ - giá trị cửa sau .
Gilles 'SO- ngừng trở nên xấu xa'

2
@Gilles, thực sự, họ thậm chí còn được gọi là "không có gì trong số tay áo của tôi" vì lý do đó, xem en.wikipedia.org/wiki/Noth_up_my_sleeve_number
Henno Brandsma

12

φnφφ{nφ}{nα}α

Cπ=232/π=1367130551(355Cπ)mod232=41157Cφ=232/φ=2654435769n|(nCφ)mod232|216n=28657XnXn+kk232


1
Sadeq: 'mod 1' đề cập đến phần phân số của bội số - trong trường hợp này sẽ là [.62, .24, .85, .47, .09, .71, .33, .94, .56 ,. 18]. Sự tương đương trong giới hạn có nghĩa là mọi giá trị phụ [a, b] của [0, 1] đều chứa tỷ lệ dự kiến ​​(ba) của các giá trị này; trong khi nó chỉ ra rằng các phần phân số của bội số của bất kỳ số vô tỷ nào được phân bổ đều trên [0, 1], những phần của phương pháp tỷ lệ vàng thậm chí phân phối nhanh hơn bất kỳ số nào khác; họ không 'co cụm' trên khoảng thời gian đơn vị.
Steven Stadnicki

8
π113π{(n+113)π}{nπ}

8
đó là một tài sản rất gọn gàng của tỷ lệ vàng
Suresh Venkat

2
Cảm ơn cho mô tả tuyệt vời. Nó thật sự tuyệt vời! Bạn có ý kiến ​​gì về k[i], như được định nghĩa trong MD5 không? (Xem câu trả lời của tôi ở trên.)
MS Dousti

2
sin(nx)xaiΣaik[i]=0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.