맞춤기술찾기

이전대상기술

블록 암호용 다항식 곱셈장치 및 방법

  • 기술번호 : KST2015079098
  • 담당센터 : 대전기술혁신센터
  • 전화번호 : 042-610-2279
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 본 발명은 AES 블록 암호의 라운드 연산을 하드웨어로 구현할 때, 많은 게이트 수를 필요로 하는 믹스 칼럼 변환의 게이트 수를 줄여 빠른 시간에 다항식 곱셈을 수행하기 위한 것으로, 이를 위한 구성은 입력 데이터 값에 대하여 한 바이트씩 연산을 수행한 후, 수행된 한 바이트 단위의 데이터 값을 클럭(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 다중화기를 포함한다. 따라서, AES 블록 암호용 믹스 칼럼 변환을 위한 다항식 곱셈 기의 면적을 작게 차지할 뿐만 아니라 입력에서 출력에 이르기까지 데이터가 거쳐야 할 게이트 수를 최소화하여 다항식 곱셈 장치의 동작 가능 주파수를 높일 수 있다. 그리고, AES 블록 암호용 믹스 칼럼 변환을 위한 다항식 곱셈기를 소프트웨어로 구현하는 것보다 훨씬 빠르게 동작한다. 또한, AES 블록 암호용 믹스 칼럼 변환을 위한 다항식 곱셈기를 AES 알고리즘의 암/복호화 장치에 적용하여 빠른 시간 내에 안전하게 데이터를 암호화 및 복호화 하는데 적용할 수 있다. 마지막으로, AES 블록 암호용 믹스 칼럼 변환을 위한 다항식 곱셈 장치가 AES 알고리즘에만 국한되지 않고 다른 다항식 곱셈이 필요한 장치에도 쉽게 적용할 수 있다는 효과가 있다.
Int. CL H04L 9/06 (2006.01)
CPC H04L 9/0631(2013.01)
출원번호/일자 1020020075193 (2002.11.29)
출원인 한국전자통신연구원
등록번호/일자 10-0498736-0000 (2005.06.22)
공개번호/일자 10-2004-0047105 (2004.06.05) 문서열기
공고번호/일자 (20050701) 문서열기
국제출원번호/일자
국제공개번호/일자
우선권정보
법적상태 소멸
심사진행상태 수리
심판사항
구분
원출원번호/일자
관련 출원번호
심사청구여부/일자 Y (2002.11.29)
심사청구항수 16

출원인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 출원인 표입니다.
번호 이름 국적 주소
1 한국전자통신연구원 대한민국 대전광역시 유성구

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 이윤경 대한민국 경상북도영천시
2 김영세 대한민국 대구광역시중구
3 이상우 대한민국 대전광역시서구
4 박영수 대한민국 대전광역시서구
5 전성익 대한민국 대전광역시유성구

대리인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 대리인 표입니다.
번호 이름 국적 주소
1 장성구 대한민국 서울특별시 서초구 마방로 ** (양재동, 동원F&B빌딩)(제일특허법인(유))
2 김원준 대한민국 서울특별시 서초구 마방로 ** (양재동, 동원F&B빌딩)(제일특허법인(유))

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
1 한국전자통신연구원 대한민국 대전광역시 유성구
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 특허출원서
Patent Application
2002.11.29 수리 (Accepted) 1-1-2002-0396228-95
2 의견제출통지서
Notification of reason for refusal
2004.11.29 발송처리완료 (Completion of Transmission) 9-5-2004-0505448-73
3 의견서
Written Opinion
2005.01.28 수리 (Accepted) 1-1-2005-0051830-28
4 명세서 등 보정서
Amendment to Description, etc.
2005.01.28 보정승인간주 (Regarded as an acceptance of amendment) 1-1-2005-0051829-82
5 등록결정서
Decision to grant
2005.05.24 발송처리완료 (Completion of Transmission) 9-5-2005-0232417-77
6 출원인정보변경(경정)신고서
Notification of change of applicant's information
2009.08.04 수리 (Accepted) 4-1-2009-5150899-36
7 출원인정보변경(경정)신고서
Notification of change of applicant's information
2015.02.02 수리 (Accepted) 4-1-2015-0006137-44
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
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
삭제
지정국 정보가 없습니다
패밀리정보가 없습니다
국가 R&D 정보가 없습니다.