맞춤기술찾기

이전대상기술

SHA 알고리즘 기반의 메시지 스케줄 연산 방법, 메시지 압축 연산 방법 및 이를 수행하는 암호장치

  • 기술번호 : KST2015084419
  • 담당센터 : 대전기술혁신센터
  • 전화번호 : 042-610-2279
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 본 발명은 SHA 알고리즘 기반의 메시지 스케줄 연산 방법, 메시지 압축 연산 방법 및 이를 수행하는 암호장치에 관한 것이다. 본 발명은, 메시지 스케줄 연산을 수행 시 하나의 덧셈기를 이용하여 순차적으로 메시지 스케줄 연산을 수행한다. 또한, 메시지 스케줄 연산 시 입력되는 연산 데이터를 저장하는 메모리를 17번째 라운드부터는 메시지 스케줄 연산에 의해 생성되는 중간 데이터를 저장하기 위해 사용한다. 또한, 본 발명은 메시지 압축 연산을 수행 시에도 하나의 덧셈기를 이용하여 순차적으로 메시지 압축 연산을 수행한다. SHA-256, 해쉬 연산, 암호, 메시지 스케줄, 메시지 압축, 덧셈기
Int. CL H04L 9/28 (2006.01)
CPC
출원번호/일자 1020080106552 (2008.10.29)
출원인 한국전자통신연구원
등록번호/일자
공개번호/일자 10-2010-0047592 (2010.05.10) 문서열기
공고번호/일자
국제출원번호/일자
국제공개번호/일자
우선권정보
법적상태 거절
심사진행상태 수리
심판사항
구분 신규
원출원번호/일자
관련 출원번호
심사청구여부/일자 Y (2008.10.29)
심사청구항수 22

출원인

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

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 김무섭 대한민국 대전 유성구
2 박영수 대한민국 대전 서구
3 박지만 대한민국 대전 유성구
4 김영세 대한민국 대전 유성구
5 주홍일 대한민국 대전 서구
6 전성익 대한민국 대전 유성구

대리인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 대리인 표입니다.
번호 이름 국적 주소
1 팬코리아특허법인 대한민국 서울특별시 강남구 논현로**길 **, 역삼***빌딩 (역삼동)

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
최종권리자 정보가 없습니다
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2008.10.29 수리 (Accepted) 1-1-2008-0752301-00
2 선행기술조사의뢰서
Request for Prior Art Search
2009.07.09 수리 (Accepted) 9-1-9999-9999999-89
3 출원인정보변경(경정)신고서
Notification of change of applicant's information
2009.08.04 수리 (Accepted) 4-1-2009-5150899-36
4 선행기술조사보고서
Report of Prior Art Search
2009.08.14 수리 (Accepted) 9-1-2009-0047686-02
5 의견제출통지서
Notification of reason for refusal
2010.08.30 발송처리완료 (Completion of Transmission) 9-5-2010-0379661-10
6 [대리인선임]대리인(대표자)에 관한 신고서
[Appointment of Agent] Report on Agent (Representative)
2010.09.30 수리 (Accepted) 1-1-2010-0633818-37
7 거절결정서
Decision to Refuse a Patent
2011.02.25 발송처리완료 (Completion of Transmission) 9-5-2011-0112934-86
8 출원인정보변경(경정)신고서
Notification of change of applicant's information
2015.02.02 수리 (Accepted) 4-1-2015-0006137-44
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
1 1
SHA 알고리즘 기반의 암호장치에 있어서, 하나의 덧셈기를 포함하며, 제1 라운드 이전에는 입력되는 연산 데이터 중 일부 데이터를 각 라운드 별 중간 데이터로 출력하고, 상기 제1 라운드부터는 상기 덧셈기를 이용하여, 제1 중간 데이터에 대하여 SHA 알고리즘의 제1 연산함수를 수행한 결과값, 제2 중간 데이터에 대하여 상기 SHA 알고리즘의 제2 연산함수를 수행한 결과값, 제3 중간 데이터 및 제4 중간 데이터를 복수의 단계에 걸쳐 기 설정된 순서대로 합산하여 각 라운드 별 중간 데이터로 출력하는 메시지 스케줄부; 및 상기 메시지 스케줄부에서 각 라운드 별로 출력되는 중간 데이터를 이용한 메시지 압축 연산을 수행하여 해쉬 연산의 최종 결과 데이터를 생성하는 메시지 압축부 를 포함하는 암호장치
2 2
제 1항에 있어서, 상기 메시지 스케줄부 및 상기 메시지 압축부의 연산 수행 순서와 결과 저장 과정을 제어하기 위한 제어신호를 출력하는 제어부 를 더 포함하는 암호장치
3 3
제 2항에 있어서, 상기 메시지 스케줄부는, 상기 입력되는 데이터의 크기와 동일한 크기를 가지며, 상기 제어부의 제어신호를 토대로, 상기 제1 라운드 이전에는 상기 입력되는 연산 데이터를 각 라운드 별 중간 데이터로 저장하고 상기 제1 라운드부터는 상기 메시지 스케줄부에서 각 라운드 별로 출력되는 중간 데이터를 저장하는 메모리; 및 상기 제어부의 제어신호를 토대로, 상기 제1 라운드 이전에는 상기 입력되는 연산 데이터를 선택하여 상기 메모리로 출력하고, 상기 제1 라운드부터는 상기 메시지 스케줄부에서 각 라운드 별로 출력되는 중간 데이터를 선택하여 상기 메모리로 출력하는 제1 멀티플렉서 를 더 포함하는 암호장치
4 4
제 3항에 있어서, 상기 메모리는, 상기 제어부의 제어신호를 토대로, 상기 제1 라운드 이전에는 상기 입력되는 연산 데이터 중 일부 데이터를 각 라운드 별 중간 데이터로 출력하고, 상기 제1 라운드부터는 각 단계 별로 상기 제1 중간 데이터, 상기 제2 중간 데이터, 상기 제3 중간 데이터 및 상기 제4 중간 데이터 중 하나를 출력하는 것을 특징으로 하는 암호장치
5 5
제 4항에 있어서, 상기 메시지 스케줄부는, 상기 메모리로부터 출력되는 상기 제1 중간 데이터에 대하여 상기 제1 연산함수를 수행한 결과값을 출력하는 제1 연산함수 연산부; 및 상기 메모리로부터 출력되는 상기 제2 중간 데이터에 대하여 상기 제2 연산함수를 수행한 결과값을 출력하는 제2 연산함수 연산부 를 더 포함하는 암호장치
6 6
제 5항에 있어서, 상기 메시지 스케줄부는, 상기 제어부의 제어신호를 토대로, 상기 제1 라운드부터는 각 단계 별로 상기 제1 연산함수 연산부의 출력값, 상기 제2 연산함수 연산부의 출력값 및 상기 메모리에서 출력되는 상기 제3 중간 데이터 중 하나를 선택하여 상기 덧셈기로 출력하는 제2 멀티플렉서 를 더 포함하는 암호장치
7 7
제 6항에 있어서, 상기 메시지 스케줄부는, 상기 제어부의 제어신호를 토대로, 상기 제1 라운드 이전에는 상기 메모리에서 출력되는 각 라운드 별 중간 데이터를 선택하여 출력하고, 상기 제1 라운드부터는 각 단계 별로 상기 메모리에서 출력되는 상기 제4 중간 데이터 및 상기 덧셈기의 출력값 중 하나를 선택하여 출력하는 제3 멀티플렉서; 및 상기 제3 멀티플렉서의 출력값을 저장하며, 저장된 값을 상기 메모리 및 상기 덧셈기로 출력하는 레지스터 를 더 포함하는 암호장치
8 8
제 1항 내지 제 7항 중 어느 한 항에 있어서, 상기 SHA 알고리즘은 SHA-256 알고리즘인 것을 특징으로 하는 암호장치
9 9
SHA 알고리즘 기반의 암호장치에 있어서, 입력되는 연산 데이터를 이용하여 각 라운드 별 중간 데이터를 생성하여 출력하는 메시지 스케줄부; 및 하나의 덧셈기 및 복수의 레지스터를 포함하며, 해쉬 연산이 시작되면 상기 복수의 레지스터에 복수의 초기값을 로드하고, 초기값 로드가 완료되면 메시지 압축 연산의 각 라운드 별로, 상기 복수의 레지스터에 저장된 값, 상기 복수의 레지스터에 저장된 값을 이용하여 해쉬 연산의 연산함수들을 각각 수행한 결과값들, 상기 중간 데이터 및 라운드 상수를 복수의 단계에 걸쳐 기 설정된 순서대로 상기 덧셈기를 통해 합산하고, 상기 덧셈기를 통해 합산한 값을 이용하여 상기 복수의 레지스터에 저장된 값을 업데이트하며, 상기 복수의 라운드에 걸쳐 수행되는 메시지 압축 연산이 완료되면 상기 복수의 초기값과 상기 복수의 레지스터에 저장된 값을 합산하여 최종 결과 데이터를 생성하는 압축부 를 포함하는 암호장치
10 10
제 9항에 있어서, 상기 메시지 스케줄부 및 상기 메시지 압축부의 연산 수행 순서와 결과 저장 과정을 제어하기 위한 제어신호를 출력하는 제어부 를 더 포함하는 암호장치
11 11
제 9항에 있어서, 상기 메시지 압축부는, 상기 복수의 레지스터 중 e 레지스터, f 레지스터 및 g 레지스터에 저장된 값을 이용하여 상기 연산함수들 중 제1 연산함수를 수행한 결과값을 출력하는 제1 연산함수 연산부; 상기 e 레지스터에 저장된 값을 이용하여 상기 연산함수들 중 제2 연산함수를 수행한 결과값을 출력하는 제2 연산함수 연산부; 상기 복수의 레지스터 중 a 레지스터, b 레지스터 및 c 레지스터에 저장된 값을 이용하여 상기 연산함수들 중 제3 연산함수를 수행한 결과값을 출력하는 제3 연산함수 연산부; 및 상기 a 레지스터에 저장된 값을 이용하여 상기 연산함수들 중 제4 연산함수를 수행한 결과값을 출력하는 제4 연산함수 연산부 를 포함하는 암호장치
12 12
제 11항에 있어서, 상기 메시지 압축부는, 상기 복수의 초기값과 상기 라운드 상수를 저장하며, 상기 제어부의제어신호를 토대로 상기 복수의 초기값을 상기 복수의 레지스터에 로드하는 중에는 상기 복수의 초기값을 순차적으로 출력하고, 상기 메시지 압축 연산의 각 라운드 별로는 대응하는 상기 라운드 상수를 출력하며, 상기 복수의 라운드에 걸쳐 수행되는 메시지 압축 연산이 완료되면 상기 복수의 초기값을 순차적으로 출력하는 메모리 를 더 포함하는 암호장치
13 13
제 12항에 있어서, 상기 메시지 압축부는, 상기 복수의 초기값을 상기 복수의 레지스터에 로드하는 중에는 상기 메모리에서 출력되는 초기값을 선택하여 출력하고, 상기 메시지 압축 연산의 각 라운드 별로는 상기 제1 연산함수 연산부의 출력값, 상기 제2 연산함수 연산부의 출력값, 상기 제3 연산함수 연산부의 출력값, 상기 복수의 레지스터 중 d 레지스터에 저장된 값, 상기 중간 데이터 및 상기 라운드 상수 중 하나를 각 단계 별로 선택하여 출력하고, 상기 복수의 라운드에 걸쳐 수행되는 메시지 압축 연산이 완료되면 상기 메모리에서 출력되는 초기값을 선택하여 출력하는 멀티플렉서 를 더 포함하고, 상기 덧셈기는, 상기 복수의 레지스터 중 h 레지스터에 저장된 값과 상기 멀티플렉서의 출력값을 합산하여 상기 a 레지스터, 상기 d 레지스터 및 상기 h 레지스터로 출력하는 것을 특징으로 하는 암호장치
14 14
제 9항 내지 제13항 중 어느 한 항에 있어서, 상기 복수의 레지스터는 시프트 레지스터인 것을 특징으로 하는 암호장치
15 15
SHA 알고리즘 기반의 암호장치의 메시지 스케줄 연산 방법에 있어서, 연산 데이터가 입력되면, 상기 연산 데이터를 복수의 블록으로 분류하여 상기 연산 데이터와 동일한 크기의 메모리에 저장하는 단계; 제1 라운드 이전에는 상기 메모리에 저장된 복수의 블록을 상기 제1 라운드 이전의 각 라운드 별 중간 데이터로 순차적으로 출력하는 단계; 및 상기 제1 라운드부터는 각 라운드 별로 이전 제1 라운드에서 출력된 제1 중간 데이터에 대하여 SHA 알고리즘의 제1 연산함수를 수행한 결과값, 이전 제2 라운드에서 출력된 제2 중간 데이터에 대하여 상기 SHA 알고리즘의 제2 연산함수를 수행한 결과값, 이전 제3 라운드 및 제 4라운드에서 출력된 제3 중간 데이터 및 제4 중간 데이터를 하나의 덧셈기를 이용하여 복수의 단계에 걸쳐 기 설정된 순서대로 합산하여 상기 제1 라운드부터의 각 라운드 별 중간 데이터를 출력하는 단계 를 포함하는 방법
16 16
제 15항에 있어서, 상기 제1 라운드부터의 각 라운드 별 중간 데이터는 상기 메모리에 순차적으로 저장되며, 상기 제1 중간 데이터, 상기 제2 중간 데이터, 상기 제3 중간 데이터 및 상기 제4 중간 데이터는 상기 메모리에서 출력되는 것을 특징으로 하는 방법
17 17
제 16항에 있어서, 상기 제1 라운드부터의 각 라운드 별 중간 데이터를 출력하는 단계는, 상기 덧셈기를 통해 상기 제3 중간 데이터 및 상기 제1 연산함수를 수행한 결과값을 합산한 제1 결과값을 출력하는 단계; 상기 덧셈기를 통해 상기 제1 결과값에 상기 제4 중간 데이터를 합산한 제2 결과값을 출력하는 단계; 및 상기 덧셈기를 통해 상기 제2 결과값에 상기 제2 연산함수를 수행한 결과값을 합산한 제3 결과값을 출력하는 단계 를 포함하고, 상기 제3 결과값이 대응하는 라운드의 중간 데이터인 것을 특징으로 하는 방법
18 18
SHA 알고리즘 기반의 암호장치의 메시지 스케줄 연산을 통해 생성된 각 라운드 별 중간데이터를 이용하여 제1 연산함수, 제2 연산함수, 제3 연산함수 및 제4 연산함수를 포함하는 메시지 압축 연산을 수행하는 방법에 있어서, 복수의 초기값을 제1 레지스터, 제2 레지스터 및 제3 레지스터를 포함하는 복수의 레지스터에 로드하는 단계; 상기 제1 레지스터에 저장된 값, 상기 복수의 레지스터 중 일부 레지스터를 이용하여 상기 제1 연산함수, 제2 연산함수, 제3 연산함수 및 제4 연산함수를 각각 수행한 결과값들, 대응하는 라운드의 중간 데이터 및 라운드 상수를 하나의 덧셈기를 이용하여 복수의 단계에 걸쳐 기 설정된 순서대로 합산하고, 각 단계 별로 상기 덧셈기를 이용하여 합산한 결과값을 상기 제1 레지스터, 상기 제2 레지스터 및 상기 제3 레지스터 중 하나에 선택적으로 저장하는 단계; 상기 복수의 레지스터 중 상기 제3 레지스터를 제외한 나머지 레지스터에 저장된 값들을 이웃하는 레지스터로 한 단계씩 시프트 하여 저장하는 단계; 상기 선택적으로 저장하는 단계 및 상기 시프트 하여 저장하는 단계를 복수의 라운드에 걸쳐 반복적으로 수행하는 단계; 및 상기 복수의 레지스터에 저장된 값과 상기 복수의 초기값을 합산하여 해쉬 연산의 최종 결과 데이터를 출력하는 단계 를 포함하는 방법
19 19
제 18항에 있어서, 상기 선택적으로 저장하는 단계는, 상기 제1 레지스터에 저장된 값, 상기 제1 연산함수 및 제2 연산함수를 각각 수행한 결과값들, 대응하는 중간 데이터 및 라운드 상수를 하나의 덧셈기를 이용하여 복수의 단계에 걸쳐 기 설정된 순서대로 합산한 제1 결과값을 상기 제1 레지스터에 저장하는 단계; 상기 제2 레지스터에 저장된 값과 상기 제1 레지스터에 저장된 값을 상기 덧셈기를 이용하여 합산한 제2 결과값을 상기 제2 레지스터에 저장하는 단계; 상기 제3 연산함수를 수행한 결과값에 상기 제1 레지스터에 저장된 값을 상기 덧셈기를 이용하여 합산한 제3 결과값을 상기 제1 레지스터에 저장하는 단계; 및 상기 제4 연산함수를 수행한 결과값에 상기 제1 레지스터에 저장된 값을 상기 덧셈기를 이용하여 합산한 제4 결과값을 상기 제3 레지스터에 저장하는 단계 를 포함하는 방법
20 20
제 19항에 있어서, 상기 로드하는 단계는, 상기 복수의 초기값 중 하나를 상기 제3 레지스터에 저장하고, 상기 복수의 레지스터 중 상기 제3 레지스터를 제외한 나머지 레지스터에 저장된 값들을 이웃하는 레지스터로 한 단계씩 시프트 하여 저장하는 과정을 상기 복수의 레지스터의 수만큼 반복해서 수행하는 단계인 방법
21 21
제 19항에 있어서, 상기 출력하는 단계는, 상기 복수의 초기값 중 하나와 상기 제1 레지스터에 저장된 값을 상기 덧셈기를 이용하여 합산한 값을 상기 제3 레지스터에 저장하고, 상기 복수의 레지스터 중 상기 제3 레지스터를 제외한 나머지 레지스터에 저장된 값들을 이웃하는 레지스터로 한 단계씩 시프트 하여 저장하는 과정을 상기 복수의 레지스터의 수만큼 반복해서 수행하는 단계; 및 상기 복수의 레지스터에 저장된 값을 상기 최종 결과 데이터로 출력하는 단계 를 포함하는 방법
22 22
제 21항에 있어서, 상기 복수의 레지스터에 저장된 상기 최종 결과 데이터는 다음 메시지 압축 연산의 초기값으로 사용되는 것을 특징으로 하는 방법
지정국 정보가 없습니다
순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - 패밀리정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 JP22107947 JP 일본 FAMILY
2 US20100104098 US 미국 FAMILY

DOCDB 패밀리 정보

순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - DOCDB 패밀리 정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 JP2010107947 JP 일본 DOCDBFAMILY
2 US2010104098 US 미국 DOCDBFAMILY
순번, 연구부처, 주관기관, 연구사업, 연구과제의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 국가R&D 연구정보 정보 표입니다.
순번 연구부처 주관기관 연구사업 연구과제
1 지식경제부 및 정보통신연구진흥원 한국전자통신연구원 IT성장동력사업 차세대 모바일 단말기의 보안 및 신뢰 서비스를 위한 공통 보안 핵심 모듈 개발