특별한 무엇입니까


12

에서 작은 암호화 알고리즘 :

라운드의 대칭을 기반으로 간단한 공격을 막기 위해 여러 가지 마법 상수를 사용합니다. 매직 상수, 또는 2,654,435,769 9E3779B9 16 이되도록 선택되는 , φ는 황금비이다.232/ϕ

이 문맥에서 어떤 속성이 유용합니까?232/ϕ


답변:


11

AFAIK, 이러한 "마법"값에는 다음 두 가지 속성이 있습니다.

  1. 그것들은 어떻게 든 독창적이며 무작위로 보입니다.
  2. 그들은 대수 연산에 반복적으로 참여할 수 있습니다. 즉, 특정 연산 (곱하기 또는 지수화)을 여러 번 적용한 후에도 "마법"값은 여전히 ​​새로운 값을 생성 할 수 있습니다.

MD5 에서도 비슷한 사례를 찾을 수 있습니다 . 다음 줄을 고려하십시오.

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

여기서 sin(i + 1)마법의 가치를 창출하는 것을 의미합니다. 독특하고 임의적 인 모양이며 많은 작업을 수행 할 수 있습니다 i. (실제로 i범위는 0..63입니다).

편집 : TEA원본 논문을 읽으면 "Steven Stadnicki"의 대답이 정확하다는 것을 이해합니다. 매직 상수는 이름 델타입니다.

각 라운드마다 다른 델타 배수가 사용되므로 비트 수가 자주 변경되지 않습니다. 우리는 알고리즘이 델타 값에 매우 민감하지 않다고 생각하고 나쁜 값을 피하기 만하면됩니다. 델타는 잘림 또는 가장 가까운 반올림에서 홀수 인 것으로 판명되므로 합계의 모든 자릿수가 변경되도록 추가 예방 조치가 필요하지 않습니다.

델타의 32 배만 사용되므로 (각 라운드마다 하나씩) 알고리즘이 특정 델타에 크게 민감하지 않은 것은 당연합니다. (자세한 내용은 Steven Stadnicki의 답변을 참조하십시오.)

편집 2 : 덧붙여서, MD4 는 2 (0x5a827999)와 3 (0x6ed9eba1)의 제곱근을 연산의 "매직"상수로 사용합니다. 네트워크 보안 : 공공 세계에서의 사적인 커뮤니케이션 책의 5.4.4 절 에서 이를 잘 설명합니다.

설계자가 의도적으로 상수의 악마 값을 선택하지 않았 음을 나타 내기 위해 상수는 2의 제곱근을 기준으로합니다.

이 설명은 Gilles의 의견에서 아래에 언급 한 내용과 동일합니다.


합리적으로 들립니다. 그렇다면 2 ^ 32 / pi 또는 2 ^ 32 / sqrt (2)도 잘 작동 했습니까?

@Tim : 그렇습니다. 그러나 TEA 내부 작업의 맥락에서 새로운 매직 번호를 다시 확인하는 것이 중요합니다.
MS Dousti

5
또한, 허용 가능한 특성을 갖는 무작위로 생성 된 값이 아니라 2 ^ 32 / phi와 같은 수학적 상수를 선택하는 이유는 이것이 공개되지 않은 추가적인 특성 (백도어 값)에 대해 선택된 값이 아니라는 확신을 심어주기위한 것입니다. .
Gilles 'SO- 악한 중지'

2
@Gilles, 사실, 그들은 심지어 "내 소매 번호에 아무것도 없습니다"라고 불립니다. en.wikipedia.org/wiki/Nothing_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'은 배수의 소수 부분을 나타냅니다.이 경우 [.62, .24, .85, .47, .09, .71, .33, .94, .56,. 18]. 한계에서의 등분 포는 [0, 1]의 하위 구간 [a, b]에 이러한 값의 예상 비율 (ba)이 포함됨을 의미합니다. 어떤 비이성 수의 배수의 분수 부분은 [0, 1]에 균등하게 분배되는 반면, 황금 비율의 부분은 다른 숫자보다 더 빠르게 분포하는 것으로 나타났습니다. 그들은 단위 간격에서 '뭉치지'않습니다.
Steven Stadnicki

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

8
그것은 황금 비율의 매우 깔끔한 속성입니다
Suresh Venkat

2
훌륭한 설명 감사합니다. 정말 대단했습니다! k[i]MD5에 정의 된대로에 대한 의견이 있습니까? (위의 내 답변을 참조하십시오.)
MS Dousti

2
sin(nx)xaiΣaik[i]=0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.