1 |
1
블록 암호용 다항식 곱셈장치에 있어서, 입력 데이터 값에 대하여 한 바이트씩 연산을 수행한 후, 수행된 한 바이트 단위의 데이터 값을 클럭(clock)이 들어올 때마다 쉬프트시켜 제공하는 저장부와, 상기 저장부로부터 제공되는 바이트 단위의 데이터 값이 암호화 모드인지, 아니면 복호화 모드인지를 결정하고, 상기 결정된 모드 각각에 맞게 상기 바이트 단위의 데이터 값을 제공하는 제1,2,3,4 다중화기와, 상기 제1다중화기에 의해 결정된 각각의 모드에 따라 제공되는 바이트 단위의 데이터 값 중 최상위 비트 값(In(7))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값 {02}를 곱하여 제공하는 제1 곱셈기와, 상기 제1다중화기에 의해 결정된 각각의 모드에 따라 제공되는 바이트 단위의 데이터 값 중 상위 3비트 값(In(7:5))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값 {0e}를 곱하여 제공하는 제2 곱셈기와, 상기 제2다중화기에 의해 결정된 각각의 모드에 따라 제공되는 바이트 단위의 데이터 값 중 최상위 비트 값(In(7))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값 {03}을 곱하여 제공하는 제3 곱셈기와, 상기 제2다중화기에 의해 결정된 각각의 모드에 따라 제공되는 바이트 단위의 데이터 값 중 상위 3비트 값(In(7:5))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값{0b}를 곱하여 제공하는 제4 곱셈기와, 상기 제3다중화기에 의해 결정된 복호화 모드에 따라 제공되는 바이트 단위의 데이터 값 중 상위 3비트 값(In(7:5))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값{0d}를 곱하여 제공하는 제5 곱셈기와, 상기 제4다중화기에 의해 결정된 복호화 모드에 따라 제공되는 바이트 단위의 데이터 값 중 상위 3비트 값(In(7:5))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수의 값{09}를 곱하여 제공하는 제6 곱셈기와, 상기 제1,3 곱셈기 각각의 다항식 곱셈 연산 결과인 데이터 값과, 제3,4 다중화기에 의해 결정된 암호화 모드에 따라 제공되는 바이트 단위의 데이터 값을 각각 비트 단위로 XOR 연산을 수행하여 출력하는 제1 XOR 연산기와, 상기 제2,4,5,6 곱셈기 각각의 다항식 곱셈 연산 결과인 데이터 값을 각각 비트 단위로 XOR 연산을 수행하여 출력하는 제2 XOR 연산기와, 상기 제1,2 XOR 연산기 각각으로부터 제공되는 8비트 출력 중 암호화 모드인지, 아니면 복호화 모드인지에 따라 믹스 칼럼 변환의 결과 값을 결정하면서 출력(Out(7:0)을 수행하는 제5 다중화기 를 포함하는 블록 암호용 다항식 곱셈장치
|
2 |
2
제 1 항에 있어서, 상기 저장부는, 상기 임의의 비트 입력 데이터 값 중 가장 최상위 8비트 값을 상기 제1 다중화기에 제공하고, 다음 상위 8비트 값을 상기 제2 다중화기에 제공하며, 다음 상위 8비트 값을 상기 제3 다중화기에 제공하며, 마지막 8비트 값을 상기 제4 다중화기에 제공하는 것을 특징으로 하는 블록 암호용 다항식 곱셈장치
|
3 |
3
제 2 항에 있어서, 상기 저장부는, 외부로부터 클럭이 제공될 때마다 저장된 값들은 8비트 씩 회전 쉬프트하며, 다음 값을 갖는 클럭이 제공될 때 상기 저장부에 저장된 값들은 8비트 씩 회전 쉬프트를 하면서 상기 과정을 반복함에 따라 4클럭 동안 연산을 통해 8비트씩 4개의 믹스 칼럼 변환 결과를 제공하는 것을 특징으로 하는 블록 암호용 다항식 곱셈장치
|
4 |
4
제 1 항에 있어서, 상기 제1 다중화기는, 저장부로부터 제공된 가장 상위 8비트 값(32:24)을 암호화 모드일 경우 상기 제1 곱셈기로 제공하고, 복호화 모드일 경우 상기 제2 곱셈기로 제공하며, 상기 제2 다중화기는, 저장부로부터 제공된 다음 상위 8비트 값(23:16)을 암호화 모드일 경우 상기 제3 곱셈기로 제공하고, 복호화 모드일 경우 상기 제4 곱셈기로 제공하며, 상기 제3 다중화기는, 저장부로부터 제공된 다음 상위 8비트 값(15:8)을 암호화 모드일 경우 상기 저장부로부터 제공된 8비트 값이 "00000000"이 되어 직접 제1 XOR 연산기로 제공하며, 복호화 모드일 경우 상기 상위 8비트 값(15:8)을 상기 제5 곱셈기로 제공하며, 상기 제4 다중화기는, 저장부로부터 제공된 마지막 8비트 값(7:0)을 암호화 모드일 경우 상기 저장부로부터 제공된 8비트 값이 "00000000"이 되어 직접 제1 XOR 연산기로 제공하며, 복호화 모드일 경우 마지막 8비트 값을 상기 제6 곱셈기로 제공하는 것을 특징으로 하는 블록 암호용 다항식 곱셈장치
|
5 |
5
제 1 항에 있어서, 상기 제1,2,3,4,5,6 곱셈기는, 상기 최상위 입력 비트, 혹은 상위 입력 3비트를 마스크의 값으로 설정하여 다항식 곱셈을 수행하는 것을 특징으로 하는 블록 암호용 다항식 곱셈장치
|
6 |
6
제 5 항에 있어서, 상기 설정된 마스크의 값에 따라 상기 제1,2,3,4,5,6 곱셈기의 출력 값을 결정하는 것을 특징으로 하는 블록 암호용 다항식 곱셈장치
|
7 |
7
제 6 항에 있어서, 상기 설정된 마스크의 값에 따라 입력 값과 다수개의 인버터만을 이용하여 출력 값을 계산하는 것을 특징으로 하는 블록 암호용 다항식 곱셈장치
|
8 |
8
제 7 항에 있어서, 상기 입력 값을 이용하여 temp 값을 설정하며, 상기 설정된 temp 값을 이용하여 상기 제1,2,3,4,5,6 곱셈기의 연산 속도를 증가하도록 하는 것을 특징으로 하는 블록 암호용 다항식 곱셈장치
|
9 |
9
제1,2,3,4,5 다중화기, 제1,2,3,4,5,6 곱셈기, 제1,2 XOR 연산기, 저장부를 구비하는 시스템에서의 블록 암호화 다항식 곱셈 방법에 있어서, 상기 저장부에서 입력 데이터 값에 대하여 한 바이트씩 연산을 수행한 후, 수행된 한 바이트 단위의 데이터 값을 클럭(clock)이 들어올 때마다 쉬프트시켜 제1,2,3,4 다중화기 각각으로 제공하는 단계와, 상기 제1,2,3,4 다중화기에서 상기 저장부로부터 제공되는 바이트 단위의 데이터 값이 암호화 모드인지, 아니면 복호화 모드인지를 결정하고, 상기 결정된 모드 각각에 맞게 상기 바이트 단위의 데이터 값을 상기 제1,2,3,4,5,6 곱셈기와 제1,2 XOR 연산기에 선택적으로 제공하는 단계와, 상기 제1 곱셈기에서 상기 제1다중화기에 의해 결정된 각각의 모드에 따라 제공되는 바이트 단위의 데이터 값 중 최상위 비트 값(In(7))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값 {02}를 곱하여 제1 XOR 연산기에 제공하는 단계와, 상기 제2 곱셈기에서 상기 제1다중화기에 의해 결정된 각각의 모드에 따라 제공되는 바이트 단위의 데이터 값 중 상위 3비트 값(In(7:5))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값 {0e}를 곱하여 제2 XOR 연산기에 제공하는 단계와, 상기 제3 곱셈기에서 상기 제2다중화기에 의해 결정된 각각의 모드에 따라 제공되는 바이트 단위의 데이터 값 중 최상위 비트 값(In(7))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값 {03}을 곱하여 제1 XOR 연산기에 제공하는 단계와, 상기 제4 곱셈기에서 상기 제2다중화기에 의해 결정된 각각의 모드에 따라 제공되는 바이트 단위의 데이터 값 중 상위 3비트 값(In(7:5))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값{0b}를 곱하여 제2 XOR 연산기에 제공하는 단계와, 상기 제5 곱셈기에서 상기 제3다중화기에 의해 결정된 복호화 모드에 따라 제공되는 바이트 단위의 데이터 값 중 상위 3비트 값(In(7:5))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수 값{0d}를 곱하여 제2 XOR 연산기에 제공하는 단계와, 상기 제6 곱셈기에서 상기 제4다중화기에 의해 결정된 복호화 모드에 따라 제공되는 바이트 단위의 데이터 값 중 상위 3비트 값(In(7:5))이 마스크의 값으로 할당되며, 상기 할당된 마스크의 값에 따라 16진수의 값{09}를 곱하여 제2 XOR 연산기에 제공하는 단계와, 상기 제1 XOR 연산기에서 상기 제1,3 곱셈기 각각의 다항식 곱셈 연산 결과인 데이터 값과, 상기 제3,4 다중화기에 의해 결정된 암호화 모드에 따라 제공되는 바이트 단위의 데이터 값을 각각 비트 단위로 XOR 연산을 수행하여 제5 다중화기에 출력하는 단계와, 상기 제2 XOR 연산기에서 제2,4,5,6 곱셈기 각각의 다항식 곱셈 연산 결과인 데이터 값을 각각 비트 단위로 XOR 연산을 수행하여 제5 다중화기에 출력하는 단계와, 상기 제5 다중화기에서 상기 제1,2 XOR 연산기 각각으로부터 제공되는 8비트 출력 중 암호화 모드인지, 아니면 복호화 모드인지에 따라 믹스 칼럼 변환의 결과 값을 결정하면서 출력(Out(7:0)을 수행하는 단계 를 포함하는 블록 암호용 다항식 곱셈방법
|
10 |
10
제 9 항에 있어서, 상기 저장부는, 상기 임의의 비트 입력 데이터 값 중 가장 최상위 8비트 값을 상기 제1 다중화기에 제공하고, 다음 상위 8비트 값을 상기 제2 다중화기에 제공하며, 다음 상위 8비트 값을 상기 제3 다중화기에 제공하며, 마지막 8비트 값을 상기 제4 다중화기에 제공하는 것을 특징으로 하는 블록 암호용 다항식 곱셈방법
|
11 |
11
제 10 항에 있어서, 상기 저장부는, 외부로부터 클럭이 제공될 때마다 저장된 값들은 8비트 씩 회전 쉬프트하며, 다음 값을 갖는 클럭이 제공될 때 상기 저장부에 저장된 값들은 8비트 씩 회전 쉬프트를 하면서 상기 과정을 반복함에 따라 4클럭 동안 연산을 통해 8비트씩 4개의 믹스 칼럼 변환 결과를 제공하는 것을 특징으로 하는 블록 암호용 다항식 곱셈방법
|
12 |
12
제 9 항에 있어서, 상기 제1 다중화기는 저장부로부터 제공된 가장 상위 8비트 값(32:24)을 암호화 모드일 경우 상기 제1 곱셈기로 제공하고, 복호화 모드일 경우 상기 제2 곱셈기로 제공하며, 상기 제2 다중화기는 저장부로부터 제공된 다음 상위 8비트 값(23:16)을 암호화 모드일 경우 상기 제3 곱셈기로 제공하고, 복호화 모드일 경우 상기 제4 곱셈기로 제공하며, 상기 제3 다중화기는 저장부로부터 제공된 다음 상위 8비트 값(15:8)을 암호화 모드일 경우 상기 저장부로부터 제공된 8비트 값이 "00000000"이 되어 직접 제1 XOR 연산기로 제공하며, 복호화 모드일 경우 상기 상위 8비트 값(15:8)을 상기 제5 곱셈기로 제공하며, 상기 제4 다중화기는 저장부로부터 제공된 마지막 8비트 값(7:0)을 암호화 모드일 경우 상기 저장부로부터 제공된 8비트 값이 "00000000"이 되어 직접 제1 XOR 연산기로 제공하며, 복호화 모드일 경우 마지막 8비트 값을 상기 제6 곱셈기로 제공하는 것을 특징으로 하는 블록 암호용 다항식 곱셈방법
|
13 |
13
제 9 항에 있어서, 상기 제1,2,3,4,5,6 곱셈기는, 상기 최상위 입력 비트 또는 상위 입력 3비트를 마스크의 값으로 설정하여 다항식 곱셈을 수행하는 것을 특징으로 하는 블록 암호용 다항식 곱셈방법
|
14 |
14
제 13 항에 있어서, 상기 마스크의 값에 따라 상기 제1,2,3,4,5,6 곱셈기의 출력 값을 결정하는 것을 특징으로 하는 블록 암호용 다항식 곱셈방법
|
15 |
15
제 14 항에 있어서, 상기 마스크의 값에 따라 입력 값과 다수개의 인버터만을 이용하여 출력 값을 계산하는 것을 특징으로 하는 블록 암호용 다항식 곱셈방법
|
16 |
16
제 15 항에 있어서, 상기 입력 값을 이용하여 temp 값을 설정하며, 상기 설정된 temp 값에 따라 상기 제1,2,3,4,5,6 곱셈기의 연산 속도를 증가하도록 하는 것을 특징으로 하는 블록 암호용 다항식 곱셈방법
|
17 |
17
삭제
|
18 |
18
삭제
|
19 |
18
삭제
|