에서 작은 암호화 알고리즘 :
라운드의 대칭을 기반으로 간단한 공격을 막기 위해 여러 가지 마법 상수를 사용합니다. 매직 상수, 또는 2,654,435,769 9E3779B9 16 이되도록 선택되는 , φ는 황금비이다.
이 문맥에서 어떤 속성이 유용합니까?
에서 작은 암호화 알고리즘 :
라운드의 대칭을 기반으로 간단한 공격을 막기 위해 여러 가지 마법 상수를 사용합니다. 매직 상수, 또는 2,654,435,769 9E3779B9 16 이되도록 선택되는 , φ는 황금비이다.
이 문맥에서 어떤 속성이 유용합니까?
답변:
AFAIK, 이러한 "마법"값에는 다음 두 가지 속성이 있습니다.
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의 의견에서 아래에 언급 한 내용과 동일합니다.
k[i]
MD5에 정의 된대로에 대한 의견이 있습니까? (위의 내 답변을 참조하십시오.)