1 |
1
데이터를 처리하여 암호화하는 방법에 있어서, (a) 제1 입력값인 평문을 획득하고, S-레이어 출력 마스크 (M')8와의 XOR(eXclusive-OR; 배타적 논리합) 연산을 통하여 상기 제1 입력값을 마스킹함으로써 제1 마스킹 입력값을 산출하는 단계; (b) 소정의 라운드 횟수 r에 대하여 i = 0에서부터 i = r - 1에 이르기까지, (i) 제i+1 라운드 키 RKi와 제i+1 라운드 상수 ci를 XOR 연산한 결괏값과, 상기 S-레이어 출력 마스크 (M')8와 S-레이어 입력 마스크 M8을 XOR 연산한 결괏값인 라운드 키 마스크를 XOR 연산한 결괏값으로서 생성된 제i+1 마스킹 라운드 키와 (ii) 제i+1 마스킹 입력값을 XOR 연산한 결괏값에 대하여, 마스킹된 치환 연산 및 마스킹된 확산 연산을 수행하여 제i+2 마스킹 입력값을 산출하는 프로세스를 i를 1씩 증가시키며 반복 수행하는 단계; 및 (c) 제r+1 라운드 키 RKr와 제r+1 라운드 상수 cr를 XOR 연산한 결괏값을 상기 S-레이어 출력 마스크 (M')8와의 XOR 연산을 통하여 마스킹함으로써 산출된 제r+1 마스킹 라운드 키와 제r+1 마스킹 입력값을 XOR 연산한 결괏값을 암호문으로 산출하는 단계를 포함하는 데이터 암호화 방법
|
2 |
2
제1항에 있어서, 상기 평문, 상기 암호문, 상기 S-레이어 입력 마스크 M8, 상기 S-레이어 출력 마스크 (M')8 및 상기 라운드 키 마스크는 64개의 비트로 구성되고, 소정의 키 길이 수 n에 대하여, 64비트 길이의 키 분절 Ki(0≤i003c#n)이 K = (Kn-1||
|
3 |
3
제2항에 있어서, 상기 키 길이 수 n는 2이고 상기 라운드 횟수 r는 14이거나상기 키 길이 수 n는 4이고 상기 라운드 횟수 r는 18인, 데이터 암호화 방법
|
4 |
4
제2항에 있어서, 상기 S-레이어 입력 마스크 M8는 S-박스 입력 마스크 M을 8회 연접한 수이되, 상기 S-박스 입력 마스크 M은 8비트 랜덤 수이고, 상기 S-레이어 출력 마스크 (M')8는 S-박스 출력 마스크 M'를 8회 연접한 수이되, 상기 S-박스 출력 마스크 M'은 8비트 랜덤 수이며, 상기 라운드 키 마스크는 상기 S-레이어 입력 마스크 M8와 상기 S-레이어 출력 마스크 (M')8를 XOR 연산한 결괏값인, 데이터 암호화 방법
|
5 |
5
제4항에 있어서, 상기 마스킹된 치환 연산은, 상기 마스킹된 치환 연산에 입력된 입력값과 상기 S-박스 입력 마스크 M을 XOR 연산한 결괏값이, 마스킹되지 않은 치환 연산에 입력됨으로써 상기 마스킹되지 않은 치환 연산으로부터 획득된 출력값과 상기 S-박스 출력 마스크 M'를 XOR 연산한 결괏값을 상기 마스킹된 치환 연산의 출력값으로서 되돌려주는 연산이고, 상기 마스킹되지 않은 치환 연산은, 64비트 입력값에 대하여 적용되는 64비트 치환 연산 S64이고, 상기 64비트 입력값을 가로쓰기로 오른쪽 상단에서 왼쪽 하단까지 8×8의 비트열로 표현한 경우, 8개 열들 각각의 상단 열로부터 하단 열까지 취한 비트들(x0, x1,
|
6 |
6
제5항에 있어서, 상기 제2 치환 연산의 입력값의 왼쪽 4비트를 행의 상단으로부터 하단까지 열거하고 오른쪽 4비트를 열의 왼쪽으로부터 오른쪽까지 열거하여 상기 입력값에 대응하는 상기 제2 치환 연산의 출력값을 나타낸 S-박스 테이블(S-box table)은, 와 같이 정해지고, 상기 마스킹된 치환 연산은 상기 S-박스 테이블로부터 도출된 마스킹된 S-박스 테이블을 이용하여 수행되는, 데이터 암호화 방법
|
7 |
7
제3항에 있어서, 상기 확산 연산은, 상기 확산 연산의 64비트 입력값을 가로쓰기로 오른쪽 상단에서 왼쪽 하단까지 8×8의 비트열로 표현한 경우, 상기 비트열에 대한 총 7회의 열별 일방향 비트 로테이션(rotation)으로써 구현되고, 상기 마스킹된 확산 연산은, 마스킹되지 않은 확산 연산과 동일한, 데이터 암호화 방법
|
8 |
8
제7항에 있어서, 상기 열별 일방향 비트 로테이션은, 상기 비트열의 제2 행에 대한 3만큼의 좌 로테이션, 상기 비트열의 제3 행에 대한 6만큼의 좌 로테이션, 상기 비트열의 제4 행에 대한 1만큼의 좌 로테이션, 상기 비트열의 제5 행에 대한 4만큼의 좌 로테이션, 상기 비트열의 제6 행에 대한 2만큼의 좌 로테이션, 상기 비트열의 제7 행에 대한 5만큼의 좌 로테이션, 및 상기 비트열의 제8 행에 대한 7만큼의 좌 로테이션으로 구성된 제1 비트 로테이션 연산, 또는 상기 제1 비트 로테이션 연산과 동치인 우 로테이션들로 구성된 제2 비트 로테이션 연산인, 데이터 암호화 방법
|
9 |
9
데이터를 처리하여 복호화하는 방법에 있어서, 제1항에 따른 데이터 암호화 방법의 역연산을 수행함으로써 상기 암호문으로부터 상기 평문을 산출하는 데이터 복호화 방법
|
10 |
10
입출력 가능한 연산 장치로 하여금, 제1항 내지 제9항 중 어느 한 항의 방법을 수행하도록 구현된 명령어(instructions)를 포함하는, 기계 판독 가능한 비일시적 기록 매체에 저장된, 프로그램 코드
|
11 |
11
데이터를 처리하여 암호화하는 장치에 있어서, 제1 입력값인 평문을 획득하는 평문 입력부; S-레이어 입력 마스크 M8 및 S-레이어 출력 마스크 (M')8를 랜덤 생성하는 마스크 값 생성부; S-레이어 출력 마스크 (M')8와의 XOR(eXclusive-OR; 배타적 논리합) 연산을 통하여 상기 제1 입력값을 마스킹함으로써 제1 마스킹 입력값을 산출하는 마스크 값 적용부; 소정의 라운드 횟수 r에 대하여, 0 ≤ i ≤ r - 1을 만족하는 정수 i에 대하여, (i) 제i+1 라운드 키 RKi와 제i+1 라운드 상수 ci를 XOR 연산한 결괏값과, 상기 S-레이어 출력 마스크 (M')8와 S-레이어 입력 마스크 M8을 XOR 연산한 결괏값인 라운드 키 마스크를 XOR 연산한 결괏값으로서 생성된 제i+1 마스킹 라운드 키와 (ii) 제i+1 마스킹 입력값을 XOR 연산하는 라운드 키 적용부; 상기 라운드 키 적용부에 의한 결괏값에 대하여, 마스킹된 치환 연산을 수행하는 치환 연산 수행부; 상기 치환 연산 수행부에 의한 결괏값에 대하여, 마스킹된 확산 연산을 수행하여 제i+2 마스킹 입력값을 산출하는 확산 연산 수행부; 제r+1 라운드 키 RKr와 제r+1 라운드 상수 cr를 XOR 연산한 결괏값을 상기 S-레이어 출력 마스크 (M')8와의 XOR 연산을 통하여 마스킹함으로써 산출된 제r+1 마스킹 라운드 키와 제r+1 마스킹 입력값을 XOR 연산하는 마스크 값 해제부; 및 상기 마스크 값 해제부의 결괏값을 암호문으로 출력하는 암호문 출력부를 포함하고, 상기 라운드 키 적용부, 상기 치환 연산 수행부, 상기 확산 연산 수행부의 연산은, i = 0에서부터 i = r - 1에 이르기까지 i가 1씩 증가되며 반복 수행되는, 데이터 암호화 장치
|
12 |
12
데이터를 처리하여 복호화하는 장치에 있어서, 제11항에 따른 데이터 암호화 장치에 대응하여 상기 암호문으로부터 상기 평문을 산출하는, 데이터 복호화 장치
|