1 |
1
블록암호 시스템의 복호화 장치로서,프로세서, 메모리, 및 무선 통신부를 포함하고,상기 프로세서는 상기 메모리에 저장된 프로그램을 실행하여,상기 무선 통신부를 통해 서버로부터 수신되는 암호문을 제1 암호문 및 제2 암호문으로 분할하는 단계,미리 결정된 역변환을 이용하여 상기 제1 암호문 및 상기 제2 암호문을 변환하는 단계,변환된 제1 암호문 및 변환된 제2 암호문과 비밀키로부터 생성되는 라운드 키 간의 XOR 연산을 포함하는 파이스텔 네트워크를 기반으로 상기 암호문을 평문으로 복호화하는 단계를 수행하고,여기서 상기 미리 결정된 역변환은 상기 암호문의 크기와 같은 크기의 부가 비밀키 및 전자서명에 기반하여 결정되는 변환의 역변환이고, 상기 파이스텔 구조는 n회의 라운드 연산을 포함하고 n은 자연수인, 복호화 장치
|
2 |
2
제1항에서,상기 프로세서는 상기 변환하는 단계 및 상기 XOR 연산을 수행할 때,상기 메모리로부터 룩업 테이블(look up table, LUT)를 읽어들여서 상기 미리 결정된 역변환을 이용하여 상기 제1 암호문 및 상기 제2 암호문을 변환하는 단계 및 상기 변환된 제1 암호문 및 변환된 제2 암호문과, 비밀키로부터 생성되는 라운드 키 간의 XOR 연산을 수행하는, 복호화 장치
|
3 |
3
제2항에서,상기 LUT는 상기 XOR 연산과 상기 미리 결정된 역변환의 결합을 나타내도록 상기 프로그램에 포함되는, 복호화 장치
|
4 |
4
제3항에서,상기 LUT는 복수의 3차원 배열을 포함하고, 상기 복수의 3차원 배열은 if문의 순서 조정 및 변수명 교체에 기반하는 LUT 스크램블링 방식으로 상기 프로그램에 포함되는, 복호화 장치
|
5 |
5
제1항에서,상기 프로세서는 상기 프로그램을 실행하여,상기 무선 통신부를 통해 상기 서버로부터 상기 전자서명을 수신하는 단계를 더 수행하고, 여기서 상기 전자서명은, 상기 평문의 중간 계산 결과, 상기 복호화 장치를 사용하는 사용자의 식별자, 시간 정보, 및 서버의 전자서명으로부터 파생된 값을 바탕으로 결정되는, 복호화 장치
|
6 |
6
제5항에서,상기 프로세서는 상기 프로그램을 실행하여,상기 서버의 상기 전자서명을 확인하여 복호화의 계속 진행여부를 결정하는 단계를 더 수행하는, 복호화 장치
|
7 |
7
제1항에서,상기 프로세서는 상기 라운드 연산을 n회 수행하여 암호문을 평문으로 복호하는 단계를 수행할 때,2m번째 라운드에서, 2m+1번째 라운드의 한쪽 출력과 2m+1번째 라운드 키 간의 제1 XOR 연산을 수행하고, 상기 제1 XOR 연산의 결과에 상기 2m+1번째 라운드에 대응하는 역변환을 적용하고, 상기 역변환의 결과와 2m-1번째 라운드 키 간의 제2 XOR 연산을 수행하는 단계를 수행하고, 여기서 m은 자연수이고 2m+1은 n보다 작은, 복호화 장치
|
8 |
8
제7항에서,상기 프로세서는 상기 라운드 연산을 n회 수행하여 암호문을 평문으로 복호하는 단계를 수행할 때,상기 2m번째 라운드에서 상기 제2 XOR 연산의 결과를, 상기 2m번째 라운드의 반대쪽에서 상기 2m번째 라운드에 대응하는 라운드 함수에 입력하고, 상기 라운드 함수의 출력과 상기 2m번째 라운드의 한쪽 출력 간의 제3 XOR 연산을 수행하는 단계를 더 수행하는, 복호화 장치
|
9 |
9
제8항에서,상기 라운드 함수는 상기 제1 암호문과 같은 길이이고, 그 원소가 모두 0인, 복호화 장치
|
10 |
10
제1항에서,상기 라운드 키 중에서 k0 및 k1은 0이고, 상기 k0 및 k1은 마지막 짝수 번째 라운드에서 수행되는 XOR 연산에서 사용되는 라운드 키인, 복호화 장치
|
11 |
11
블록암호 시스템의 복호화 방법으로서,서버로부터 수신되는 암호문을 제1 암호문 및 제2 암호문으로 분할하는 단계,미리 결정된 역변환을 이용하여 상기 제1 암호문 및 상기 제2 암호문을 변환하는 단계,변환된 제1 암호문 및 변환된 제2 암호문과 비밀키로부터 생성되는 라운드 키 간의 XOR 연산을 포함하는 파이스텔 네트워크를 기반으로 상기 암호문을 평문으로 복호화하는 단계를 포함하고,여기서 상기 미리 결정된 역변환은 상기 암호문의 크기와 같은 크기의 부가 비밀키 및 전자서명에 기반하여 결정되는 변환의 역변환이고, 상기 파이스텔 구조는 n회의 라운드 연산을 포함하고 n은 자연수인, 복호화 방법
|
12 |
12
제11항에서,상기 변환하는 단계 및 상기 XOR 연산은, 상기 XOR 연산과 상기 미리 결정된 역변환 간의 결합을 나타내도록 복호화 프로그램에 포함되는 룩업 테이블(look up table, LUT)를 이용하여 수행되는, 복호화 방법
|
13 |
13
제12항에서,상기 LUT는 복수의 3차원 배열을 포함하고, 상기 복수의 3차원 배열은 if문의 순서 조정 및 변수명 교체에 기반하는 LUT 스크램블링 방식으로 상기 복호화 프로그램에 포함되는, 복호화 방법
|
14 |
14
제11항에서,상기 무선 통신부를 통해 서버로부터 상기 전자서명을 수신하는 단계를 더 포함하고, 여기서 상기 전자서명은, 상기 평문의 중간 계산 결과, 상기 복호화 방법을 사용하는 사용자의 식별자, 시간 정보, 및 서버의 전자서명으로부터 파생된 값을 바탕으로 결정되는, 복호화 방법
|
15 |
15
제14항에서,상기 서버의 상기 전자서명을 확인하여 복호화의 계속 진행여부를 결정하는 단계를 더 포함하는, 복호화 방법
|
16 |
16
제11항에서,상기 라운드 연산을 n회 수행하여 암호문을 평문으로 복호하는 단계는,2m번째 라운드에서, 2m+1번째 라운드의 한쪽 출력과 2m+1번째 라운드 키 간의 제1 XOR 연산을 수행하고, 상기 제1 XOR 연산의 결과에 상기 2m+1번째 라운드에 대응하는 역변환을 적용하고, 상기 역변환의 결과와 2m-1번째 라운드 키 간의 제2 XOR 연산을 수행하는 단계를 포함하고, 여기서 m은 자연수이고 2m+1은 n보다 작은, 복호화 방법
|
17 |
17
제16항에서,상기 라운드 연산을 n회 수행하여 암호문을 평문으로 복호하는 단계는,상기 2m번째 라운드에서 상기 제2 XOR 연산의 결과를, 상기 2m번째 라운드의 반대쪽에서 상기 2m번째 라운드에 대응하는 라운드 함수에 입력하고, 상기 라운드 함수의 출력과 상기 2m번째 라운드의 한쪽 출력 간의 제3 XOR 연산을 수행하는 단계를 더 포함하는, 복호화 방법
|
18 |
18
제17항에서,상기 라운드 함수는 상기 제1 암호문과 같은 길이이고, 그 원소가 모두 0인, 복호화 방법
|
19 |
19
제11항에서,상기 라운드 키 중에서 k0 및 k1은 0이고, 상기 k0 및 k1은 마지막 짝수 번째 라운드에서 수행되는 XOR 연산에서 사용되는 라운드 키인, 복호화 방법
|