2013-06-09 6 views
1

교육용 소프트웨어에서 사용하기 위해 Twofish 알고리즘을 구현 중입니다. UI에 QT를 사용하고 Wikipedia의 연구 및 Bruce Schneier의 Twofish 논문을 사용하고 있지만 Im은 미백 하위 키 생성에 집중했습니다. 난 successfuly 둥근 하위 키를 생성하는 방법을 이해했지만 미백 것들을 생성하는 방법을 발견하지 않았습니다.Twofish : 미백 서브 키 생성

나는 k = 2 (128 비트 키, 128/64 = 2)를 취하고 있으므로, 2k = 4; M_e와 M_0의 크기는 2입니다. 원래의 키와 16 라운드의 라운드 키를 채우고 있습니다. 각 키는 2 개입니다.

그래서, 대신 40 개 하위 키의 난 단지 내가 미백을위한 8 놓친 32

받고 있어요? 나는 그 논문을 다시 읽었고 그것들을위한 알고리즘을 찾지 못했다. 또는 둥근 것들의 앞이나 뒤의 첫 번째 또는 마지막 N 키와 같은 생성 방법에 대한 제안이있다.

어떻게 미백 키를 생성합니까? twofish paper 가입일

답변

1

:

페이지 5 라운드 제 파이 스텔 전에 하위의

피쉬 (Twofish)의 배타적 논리합을 연산하여 128 비트와 마지막 파이 스텔 라운드 후에 다른 128 비트. 이러한 하위 키는 둥근 하위 키와 동일한 방법으로 계산되며 다른 키는 입니다.

7 페이지의 방정식은 입력 화이트닝이 처음 4Ki로 수행되고 다음 4Ki로 출력 화이트닝이 수행되었음을 보여줍니다.

함수 F (주 라운드에서 사용됨)는 키 K_ (2r + 8) 및 K_ (2r + 9)를 사용합니다. +8 및 +9는 미백에 사용 된 8 개의 키를 건너 뛰기 위해 추가되었습니다.

요약하면 추가 4 라운드 (8 개의 추가 키 만들기)를위한 키를 생성해야합니다. 처음 4 개의 키는 입력에 사용되고 다음 4 개의 키는 출력에 사용됩니다.

+0

대단히 감사합니다. 나는 키가 작아서 라운드 키 인덱스에서 +8을 보지 못했습니다. –