KR20140105504A - Sm2 키 교환 프로토콜 기반의 키 협상 방법 및 장치 - Google Patents

Sm2 키 교환 프로토콜 기반의 키 협상 방법 및 장치 Download PDF

Info

Publication number
KR20140105504A
KR20140105504A KR20147017887A KR20147017887A KR20140105504A KR 20140105504 A KR20140105504 A KR 20140105504A KR 20147017887 A KR20147017887 A KR 20147017887A KR 20147017887 A KR20147017887 A KR 20147017887A KR 20140105504 A KR20140105504 A KR 20140105504A
Authority
KR
South Korea
Prior art keywords
value
parameter
key
positive integer
negotiation
Prior art date
Application number
KR20147017887A
Other languages
English (en)
Other versions
KR101617561B1 (ko
Inventor
지용 리
시앙 안
Original Assignee
차이나 아이더블유엔콤 씨오., 엘티디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 차이나 아이더블유엔콤 씨오., 엘티디 filed Critical 차이나 아이더블유엔콤 씨오., 엘티디
Publication of KR20140105504A publication Critical patent/KR20140105504A/ko
Application granted granted Critical
Publication of KR101617561B1 publication Critical patent/KR101617561B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 정보 기술 분야에 관한 것으로서 SM2 키 교환 프로토콜 기반의 키 협상 방법 및 장치를 개시한다. 상기 방법에 있어서 협상 양쪽은 모두 부등식
Figure pct00274
를 성립시키는 X의 값 중의 최소의 양의 정수 값에 따라 매개변수W를 계산하며 상기 매개변수W에 따라 협상 상대방과 키 협상을 수행한다. 먼저
Figure pct00275
의 로그 값을 계산한 후 올림 연산을 수행하는 방식을 채용하며 매개변수W를 계산하는 방법에 비해 계산량을 효과적으로 감소시키며 알고리즘의 실현 복잡성을 감소시켜 SM2 키 교환 프로토콜 기반의 키 협상 프로세스의 실현 효율을 크게 향상시켜 SM2 키 교환 프로토콜의 공학적인 실현을 최적화한다.

Description

SM2 키 교환 프로토콜 기반의 키 협상 방법 및 장치{KEY NEGOTIATION METHOD AND APPARATUS ACCORDING TO SM2 KEY EXCHANGE PROTOCOL}
본 출원은, 2011년 11월 30일에 중국 특허청에 출원된 출원 번호 제201110390564.7호, SM2 키 교환 프로토콜 기반의 키 협상 방법 및 장치를 발명 명칭으로 하는 중국 특허 출원의 우선권을 주장하며, 상기 중국 특허 출원의 전체 내용은 본 출원에 참조로서 통합된다.
본 발명은 정보 기술 분야에 관한 것으로서, 보다 상세하게는 SM2 키 교환 프로토콜 기반의 키 협상 방법 및 장치에 관한 것이다.
부가가치 2010 년 12 월에 중국 국가 암호 관리국은 SM2, SM3 암호화 알고리즘을 공개하며 이는 SM2, SM3 암호화 알고리즘이 상용화 단계에 들어가는 것을 표시한다. SM2 키 교환 프로토콜은 SM2 암호화 알고리즘의 하나의 구성 요소로서 키 관리 및 키 협상 기능 분야에 잘 적용된다. SM2 키 교환 프로토콜 공학의 실현 과정에서 매개변수W는 키 교환 프로토콜 내의 하나의 중요한 매개변수로서 매개변수 값의 생성 연산 효율이 전체 키 교환 프로토콜 실현 효율의 결정적인 요인이 된다.
SM2 키 교환 프로토콜의 규정에 따라 기존 키 협상 프로세스는 다음과 같다.
사용자 A가 키 협상 개시자이며 사용자 B가 키 협상 응답자라고 가정하면 사용자 A와 사용자 B가 협상하여 얻은 키 데이터의 길이는 klen 비트이며 사용자 A와 사용자 B가 동일한 타원 곡선 방정식을 사용하며 여기서 상기 타원 곡선 방정식의 타입은 소체 방정식
Figure pct00001
을 선택할 수 있으며 이차 확대체 방정식
Figure pct00002
을 선택할 수도 있다.
SM2 키 교환 프로토콜에 규정되는 키 유도 함수는
Figure pct00003
로 기록되며 그는 하나의 비밀 비트 열에서 키 데이터를 유도하는 역할을 하며 여기서 Z가 입력된 비밀 비트 열이며 정수 klen은 획득될 키 데이터의 비트 길이를 표시하며 그 값이
Figure pct00004
보다 작아야 되며 길이가 klen인 키 데이터 비트 열을 K로 기록된다. 키 데이터 생성 과정에서 키 유도 함수는 암호화 해시 함수 (예를 들어, SM3 암호화 해시 알고리즘)을 호출해야 하며 일반적으로 암호화 해시 함수는
Figure pct00005
로 기록되며 암호화 해시 함수의 출력은 길이가 v비트인 해시 값이다.
하기 키 유도 함수 연산 단계를 다음과 같이 설명한다.
(1) 32 비트로 구성된 카운터
Figure pct00006
를 초기화하며;
(2) 1부터
Figure pct00007
까지의 i값을 각각 이용하여 순환적으로 하기 단계a 및 단계b를 수행하여 매번의 수행 결과를 각각
Figure pct00008
,
Figure pct00009
.....
Figure pct00010
,
Figure pct00011
로 기록하며, 여기서
Figure pct00012
는 마지막으로 생성된
Figure pct00013
의 값의 일부 또는 전부이며;
a,
Figure pct00014
를 계산하며;
Figure pct00015
는 케스케이드 연산이며,
b,
Figure pct00016
;
Figure pct00017
를 계산할 경우 만약 klen/v는 정수이면
Figure pct00018
로 하며, 만약 klen/v는 정수가 아니면
Figure pct00019
Figure pct00020
의 제일 왼쪽의
Figure pct00021
개의 비트로 하며;
(3) 마지막으로
Figure pct00022
로 하며; K는 획득된 키 데이터이다.
획득된 키 함수를 기반으로 하여 사용자A 와 사용자B는 동일한 키를 얻기 위해 키 협상을 해야 하며 구체적인 연산 단계는 다음과 같다.
Figure pct00023
로 기록된다.
사용자A:
A1: 난수 생성기를 사용하여 난수
Figure pct00024
를 생성하며;
A2: 타원 곡선 점
Figure pct00025
를 계산하며
Figure pct00026
는 점
Figure pct00027
의 좌표 값이며 G는 선택된 타원 곡선 파라미터이다.
A3:
Figure pct00028
를 사용자B에 송신한다.
사용자B:
B1: 난수 생성기를 사용하여 난수
Figure pct00029
를 생성하며;
B2: 타원 곡선 점
Figure pct00030
를 계산하며
Figure pct00031
는 점
Figure pct00032
의 좌표 값이며 G는 선택된 타원 곡선 매개변수이다.
B3:
Figure pct00033
에서 필드 요소 x2를 추출하며 만약 필드 요소x2가 이차 확대체 데이터이면 우선 그 데이터 유형을 정수로 전환하며, 만약 필드 요소x2가 소체 데이터이면 전환 필요 없이 후속 동작을 직접 진행할 수 있으며; 다음으로 사용자B측의 중간 매개변수
Figure pct00034
,
Figure pct00035
를 계산하며;
B4:
Figure pct00036
를 계산하며 여기서
Figure pct00037
는 사용자B측의 중간 매개변수이며
Figure pct00038
는 사용자B에 의해 로컬로 저장되는 개인 키이며
Figure pct00039
는 사용자B에 의해 로컬로 생성되는 난수이다.
B5:
Figure pct00040
가 타원 곡선 방정식을 만족하는지 여부를 검증하며(소체 모드 또는 이차 확대체 모드를 이용하여 양쪽이 같은 타원 곡선 방정식을 채용한다고 사용자A와 사전 약속할 수 있음), 만약 만족하지 않으면 이번 키 협상이 실패한 것으로 확정되며, 만약 만족하면
Figure pct00041
에서 필드 요소 x1을 추출하며 만약 필드 요소x1이 이차 확대체 데이터이면 우선 그 데이터 유형을 정수로 전환하며 만약 필드 요소x1이 소체 데이터이면 전환 필요 없이 후속 동작을 직접 진행할 수 있으며 사용자B측의 중간 매개변수
Figure pct00042
,
Figure pct00043
를 계산하며;
B6: 타원 곡선 점
Figure pct00044
를 계산하며 여기서 h는 선택된 타원 곡선 매개변수이며
Figure pct00045
는 사용자A의 공개 키이며, V가 무한 원점(예를 들어
Figure pct00046
)인지 여부를 판단하며, 만약 그러면 사용자 B의 키 협상이 실패한 것으로 확인되며 그렇지 않으면 필드 요소
Figure pct00047
,
Figure pct00048
의 데이터 유형을 비트 열로 전환하며;
B7:
Figure pct00049
를 계산하며;
Figure pct00050
는 사용자B에 의해 키 협상을 통해 획득된 키 데이터이며 이때 사용자B의 키 협상이 성공한다고 묵인한다.
선택적으로 B7을 수행한 후 사용자B은 또한 B8을 수행할 수도 있다.
B8:
Figure pct00051
의 좌표 x1, y1과
Figure pct00052
의 좌표 x2, y2의 데이터 유형을 모두 비트 열로 전환하며
Figure pct00053
를 계산하며Hash()를 암호화 해시 함수
Figure pct00054
로 할 수 있으며
Figure pct00055
를 연산에 의해 획득된 하나의 해시 값으로 할 수 있다.
B9:
Figure pct00056
를 사용자A에 송신하며 만약 B8을 수행하면
Figure pct00057
도 사용자A에 송신해야 하며;
사용자A:
A4:
Figure pct00058
에서 필드 요소 x1을 추출하며 만약 필드 요소x1이 이차 확대체 데이터이면 우선 그 데이터 유형을 정수로 전환하며, 만약 필드 요소x1이 소체 데이터이면 전환 필요 없이 후속 동작을 직접 진행할 수 있으며 중간 매개변수
Figure pct00059
,
Figure pct00060
를 계산하며;
A5:
Figure pct00061
를 계산하며 여기서
Figure pct00062
는 사용자A측의 중간 매개변수이며
Figure pct00063
는 사용자A에 의해 로컬로 저장되는 개인 키이며
Figure pct00064
는 사용자A에 의해 로컬로 생성되는 난수이다.
A6:
Figure pct00065
가 타원 곡선 방정식을 만족하는지 여부를 검증하며(사용자B와 약속함), 만약 만족하지 않으면 이번 키 협상이 실패한 것으로 확정되며, 그렇지 않으면
Figure pct00066
에서 필드 요소 x2를 추출하며 만약 필드 요소x2가 이차 확대체 데이터이면 우선 그 데이터 유형을 정수로 전환하며 만약 필드 요소x2가 소체 데이터이면 전환 필요 없이 후속 동작을 직접 진행할 수 있으며 중간 매개변수
Figure pct00067
,
Figure pct00068
를 계산하며;
A7: 타원 곡선 점
Figure pct00069
를 계산하며 만약U가 무한 원점(예를 들어
Figure pct00070
,
Figure pct00071
)이면 사용자 A의 키 협상이 실패한 것으로 확인되며 그렇지 않으면 필드 요소
Figure pct00072
,
Figure pct00073
의 데이터 유형을 비트 열로 전환하며;
A8:
Figure pct00074
를 계산하며
Figure pct00075
는 사용자 A에 의해 키 협상을 통해 획득된 키 데이터이며 이때 사용자A의 키 협상이 성공한다고 묵인하며;
선택적으로 A8을 수행한 후 만약 사용자B에 의해 송신된
Figure pct00076
를 수신하면 사용자A는 또한 A9와 A10을 수행할 수도 있다.
A9:
Figure pct00077
의 좌표 x1, y1과
Figure pct00078
의 좌표 x2, y2의 데이터 유형을 모두 비트 열로 전환하며
Figure pct00079
를 계산하며Hash()를 암호화 해시 함수
Figure pct00080
로 할 수 있으며
Figure pct00081
를 연산에 의해 획득된 하나의 해시 값으로 할 수 있으며
Figure pct00082
이 성립하는지 여부를 검사하며, 만약 성립하면 사용자 B부터 사용자 A에의 키 확인이 성공한 것으로 확정되며 만약 성립하지 않으면 사용자 B부터 사용자 A에의 키 확인이 실패한 것으로 확정되며;
A10:
Figure pct00083
를 계산하며
Figure pct00084
를 사용자B에 송신한다.
사용자B: (만약 사용자A에 의해 송신된
Figure pct00085
를 수신하면 사용자B는 단계 B10과B11을 계속 수행할 수 있음)
B10:
Figure pct00086
를 계산하며
Figure pct00087
이 성립하는지 여부를 검사하며, 만약 성립하면 사용자 A부터 사용자 B에의 키 확인이 성공한 것으로 확정되며 만약 성립하지 않으면 사용자 A부터 사용자 B에의 키 확인이 실패한 것으로 확정된다.
상기 과정은 SM2 키 교환 프로토콜에 기재된 키 협상 과정이다. 이를 통해 알 수 있다시피 상기 과정에서 W 매개변수 값의 연산 공식은
Figure pct00088
이며 여기서 n는 타원 곡선 매개변수이며 차수n라고 하며 차수 n이 일반적으로 160비트 이상의 큰 정수이다. 만약 차수 n에 따라 직접
Figure pct00089
의 로그 값을 구한 후 올림 연산을 수행하면 공학적인 실현에 비교적으로 복잡하고 더 많은 연산 시간을 소비하여 따라서 키 협상 프로세스의 실현 효율을 직접 저하시켜 키 협상 프로세스의 실현 복잡성을 향상시킨다.
본 발명에 따른 실시예는 SM2 키 교환 프로토콜 기반의 키 협상 방법 및 장치를 제공함으로써 키 협상 프로세스의 실현 복잡성을 낮추며 키 협상 프로세스의 실현 효율을 향상시킨다.
본 발명에 따른 실시예에 의한 구체적인 기술 방안은 다음과 같다.
SM2 키 교환 프로토콜 기반의 키 협상 방법으로서 상기 방법은,
이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정하는 단계;
상기 차수 n이 2x이하인 경우의 X의 최소의 양의 정수 값을 계산하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수 W의 값을 획득하는 단계; 및
상기 매개변수W의 값에 따라 협상 상대방과 키 협상을 수행하는 단계를 포함한다.
SM2 키 교환 프로토콜 기반의 키 협상 장치로서 상기 장치는,
이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정하며 상기 차수 n이 2x이하인 경우의 X의 최소의 양의 정수 값을 계산하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득하는 제1 제어 모듈; 및
상기 W의 값에 따라 협상 상대방과 키 협상을 수행하는 제2 제어 모듈을 포함한다.
매개변수 생성 장치로서, 상기 장치는,
이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정하는 확정 유닛; 및
상기 차수 n이 2x 이하인 경우의 X의 최소의 양의 정수 값을 계산하며 획득된 X의 최소의 양의 정수값 에 따라 매개변수 W의 값을 획득하는 계산 유닛을 포함한다.
본 발명에 따른 실시예에 있어서 협상 양쪽은 모두 부등식
Figure pct00090
를 성립시키는 X의 값 중의 최소의 양의 정수 값에 따라 매개변수W를 계산하며 상기 매개변수W에 따라 협상 상대방과 SM2 키 교환 프로토콜 기반의 키 협상을 수행한다. 먼저
Figure pct00091
의 로그 값을 계산한 후 올림 연산을 수행하는 방식을 채용하며 매개변수W를 계산하는 방법에 비해 계산량을 효과적으로 감소시키며 알고리즘의 실현 복잡성을 감소시켜 SM2 키 교환 프로토콜 기반의 키 협상 프로세스의 실현 효율을 크게 향상시켜 SM2 키 교환 프로토콜의 공학적인 실현을 최적화한다.
도1a는 본 발명에 따른 실시예에서 키 협상 장치의 기능 구조 예시도이다.
도1b는 본 발명에 따른 실시예에서 매개변수W 생성 장치의 기능 구조 예시도이다.
도2는 본 발명에 따른 실시예의 키 협상 수행 흐름도이다.
도3은 본 발명에 따른 실시예에서 매개변수W를 생성하는 제1 방법의 흐름도이다.
도4는 본 발명에 따른 실시예에서 매개변수W를 생성하는 제2 방법의 흐름도이다.
SM2 키 교환 프로토콜 기반의 키 협상 과정에서 키 협상 프로세스의 수행 복잡성을 낮추고 키 협상 프로세스의 실현 효율을 향상시키기 위해 본 발명에 따른 실시예에 있어서 키 협상을 수행하는 양쪽은
Figure pct00092
를 사용하여 매개변수W를 계산하지 않고
Figure pct00093
를 만족하는 X의 최소의 양의 정수 값을 구하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수 W의 값을 획득하며(예를 들어
Figure pct00094
의 연산 결과를 대신하여 X의 최소의 양의 정수 값을 공식
Figure pct00095
에 대입하여 W의 값을 계산함), 그 다음에 이러한 모드로 계산된 W 값에 따라 상대방과 키 협상을 수행한다.
하기 여전히 사용자A과 사용자B를 예로 들어 도면을 참조하며 본 발명에 따른 바람직한 실시 방식을 상세히 설명한다.
도1a를 참조하면 본 발명에 따른 실시예에서 SM2 키 교환 프로토콜 기반의 키 협상의 양쪽 중 어느 한쪽 (사용자 A 일 수 있고 사용자 B일 수도 있음)에 의해 사용되는 키 협상 장치는 제1 제어 모듈(10)과 제2 제어 모듈(11)을 포함하며, 여기서,
제1 제어 모듈(10)은 이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정하며 차수 n이 2x이하인 경우의 X의 최소의 양의 정수 값을 계산하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수 W의 값을 획득하며;
제2 제어 모듈(11)은 상기 매개변수W의 값에 따라 협상 상대방과 키 협상을 수행한다.
도1a에 도시된 바와 같이 제2 제어 모듈(11)의 내부는 복수의 소프트웨어로 실현되는 기능 유닛과 하드웨어로 실현되는 기능 유닛으로 세분화될 수 있으며 이러한 기능 유닛의 역할은 후속 실시 방식에서 상세히 설명되며 다른 한편으로 도 1a에 도시된 제2 제어 모듈(11)의 내부의 기능 유닛의 분할 방식은 단지 하나의 예뿐이며 실제적인 응용에서 구체적인 응용 환경에 따라 별도로 계획될 수 있으며 여기서 더 이상 설명하지 않는다.
다른 한편으로 실제적인 응용에서 제1 제어 모듈(10)은 키 협상 장치에 설치된 로직 모듈일 수 있으며 독립적인 동작 기능을 갖는 서브 장치일 수도 있다. 도1b에 도시된 바와 같이 본 발명에 따른 실시예에서 제1 제어 모듈(10)은 확정 유닛(100) 및 계산 유닛(101)을 포함하며, 여기서,
확정 유닛(100)은 이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정하며;
계산 유닛(101)은 차수 n이 2x 이하인 경우의 X의 최소의 양의 정수 값을 계산하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수 W의 값을 획득한다.
상기 기술 방안을 기반으로 하여 도2에 도시된 바와 같이 본 발명에 따른 실시예에서 SM2 키 협상 양쪽 중 어느 한쪽 (사용자A 일 수 있으며 사용자B일 수도 있음)에 의해 수행되는 구체적인 프로세스는 다음과 같다.
단계 200: 이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정한다.
일반적으로 차수 n의 값이 미리 설정되며 사용자A와 사용자B는 SM2 키 협상 과정의 시작 단계에 사용될 타원 곡선 방정식을 약속하고 상대방에 자신에 의해 사용된 공개 키(즉
Figure pct00096
Figure pct00097
)를 송신한다.
단계 210: 확정된 차수 n이 2x이하인 경우의 X의 최소의 양의 정수 값을 계산하며 즉 부등식
Figure pct00098
를 성립시키는 X의 최소의 양의 정수 값을 확정하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득한다.
본 실시예에서 부등식
Figure pct00099
를 성립시키는 X의 최소의 양의 정수 값을 확정할 경우 수행될 구체적인 동작은 다음과 같으며, 도3 및 도4에 도시된 바와 같이 키 협상 장치는 우선 차수 n의 유효 비트 수m, 즉 상위의 첫 번째 0이 아닌 비트에서 계산되는 차수 n에 포함되는 비트의 총 수를 확정해야 하며; 그 다음에 차수 n의 값과 2m- 1를 비교하여, 즉 n >
Figure pct00100
성립인지 여부를 판단하여 그렇다면 직접 m의 현재 값을 X의 최소의 양의 정수 값으로 하며, 그렇지 않으면 설정된 스텝 값 (예를 들어, 스텝 값이 1임)을 사용하여 m을 순차적으로 감소하며 상기 부등식이 성립될 때까지 감소할 때마다 n >
Figure pct00101
성립인지 여부를 판단하여 감소 후의 m의 마지막 값을 X의 최소 양의 정수 값으로 한다.
본 실시예에서 X의 최소의 양의 정수 값을 획득한 후 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 계산할 경우 하기 복수의 방식을 채용할 수 있다.
예를 들어 도3에 도시된 바와 같이 우선 마지막으로 획득된 m의 패리티 (즉 X의 최소의 양의 정수 값의 패리티)를 판단할 수 있으며 만약 m이 홀수이면 m을 제1 기정 매개변수로 나누어 얻은 값의 정수부분만을 보류하여 매개변수 W의 값으로 하며 예를 들어 공식
Figure pct00102
를 사용하여 매개변수 W의 값을 계산하며 여기서
Figure pct00103
는 내림 연산이며 m은 X의 최소의 양의 정수이며; 만약 m이 짝수이면 m을 제1 기정 매개변수로 나누어 얻은 값의 정수부분만을 보류한 후 제2 기정 매개변수를 뺀 결과를 매개변수 W 값으로 하며 예를 들어 공식
Figure pct00104
을 사용하여 매개변수 W의 값을 계산하며 여기서 2가 제1 기정 매개변수이며 1이 제2 기정 매개변수이다.
또한 예를 들어 도4에 도시된 바와 같이 우선 마지막으로 획득된 m의 패리티 (즉 X의 최소의 양의 정수 값의 패리티)를 판단할 수 있으며 만약 m이 홀수이면 m을 일정 자리씩 오른쪽으로 옮긴 결과를 매개변수W의 값으로 하며 예를 들어 공식
Figure pct00105
를 이용하여 매개변수 W의 값을 계산하며 여기서 >> 는 오른쪽 시프트 연산이며 1 은 오른쪽 시프트의 설정된 자릿수이며
Figure pct00106
이 m의 현재 값의 최저위(이차 확대체 형태)을 제거하고 최고위에 제로를 채우는 것을 표시하며; 만약 m이 짝수이면 m을 일정 자리씩 오른쪽으로 옮긴 후 제3 기정 매개변수를 뺀 결과를 매개변수W의 값으로 하며 예를 들어 공식
Figure pct00107
를 이용하여 매개변수W의 값을 계산하며 여기서 첫 번째 1이 오른쪽 시프트의 설정 자릿수이고 두 번째 1이 제3 기정 매개 변수이다.
단계 220: 획득된 매개변수W의 값에 따라 협상 상대방과 키 협상을 수행한다.
도2에 도시된 바와 같이 SM2 키 교환 프로토콜을 실현하는 키 협상 장치는 개시자(사용자 A)일 수 있으며 응답자(사용자 B)일 수도 있으며 여기서 제1 제어 모듈(10)은 매개변수W를 계산하는 연산 모듈이며 키 협상 장치가 제1 제어 모듈(10)을 통해 매개변수 W를 획득한 후 상대방과 키 협상을 수행하는 과정은 다음과 같다.
SM2 키 교환 프로토콜 프로세스가 개시된 후 개시자(사용자 A)와 응답자(사용자 B)는 각각 사용하는 키 협상 장치에 설치된 제1 제어 모듈(10)을 통해 각각 해당 매개변수W를 획득하며;
다음에 사용자 A는 키 협상 장치 내의 제2 제어 모듈(11)을 통해 난수와 타원 곡선 점을 계산하며 여기서 제2 제어 모듈(11)은 하드웨어로 실현될 수 있다. 도1에 도시된 바와 같이 사용자A는 제2 제어 모듈(11) 내의 난수 생성 유닛을 통해 난수
Figure pct00108
를 생성할 수 있으며 ECC 연산 유닛은 생성된 난수에 따라 타원 곡선 점
Figure pct00109
을 생성할 수 있으며 동시에 제2 제어 모듈(11)은 상기 키 협상 장치 내의 키 저장 서브 모듈에 저장된 이번 키 협상에 사용되는 개인 키
Figure pct00110
에 대응되는 공개 키
Figure pct00111
를 추출하며 로컬에 소프트웨어로 실현되는 통신 인터페이스를 통해 타원 곡선 점
Figure pct00112
와 공개 키
Figure pct00113
를 사용자 B에 송신하며;
사용자B에 의해 사용된 키 협상 장치 B가 사용자A로부터 수신한 정보는 주로 상대방의 공개 키
Figure pct00114
, 상대방의 타원 곡선 점
Figure pct00115
, 상대방의 사용자 정보
Figure pct00116
를 포함하며, 동시에 로컬 사용자 정보
Figure pct00117
, 타원 곡선 여인자 매개변수 h, 협상 키 예상 길이klen를 획득하며;
사용자B는 로컬 제2 제어 모듈(11)을 이용하여 난수와 타원 곡선 점을 계산하며 여기서 제2 제어 모듈(11)은 하드웨어로 실현될 수 있다. 예를 들어 사용자B는 제2 제어 모듈(11) 내의 난수 생성 유닛을 통해 난수
Figure pct00118
를 생성할 수 있으며 다음에 제2 제어 모듈(11) 내의 ECC 연산 유닛은 생성된 난수에 따라 타원 곡선 점
Figure pct00119
을 생성할 수 있으며 동시에 제2 제어 모듈(11)은 상기 키 협상 장치 내의 키 저장 유닛에 저장된 이번 키 협상에 사용되는 개인 키
Figure pct00120
에 대응되는 공개 키
Figure pct00121
를 추출하며 로컬에 소프트웨어로 실현되는 통신 인터페이스를 통해 타원 곡선 점
Figure pct00122
와 공개 키
Figure pct00123
를 사용자 A에 송신하며;
다음에 사용자B는 로컬 제2 제어 모듈(11) 내의 소프트웨어로 실현되는 데이터 유형 전환 유닛을 이용하여 획득된 필드 요소
Figure pct00124
Figure pct00125
의 데이터 유형을 정수 데이터 유형으로 전환한 후 제2 제어 장치(11) 내의 소프트웨어로 실현되는
Figure pct00126
매개변수 연산 유닛을 호출하여 획득된 매개변수W에 따라 공식
Figure pct00127
을 사용하여 각각 매개변수
Figure pct00128
Figure pct00129
를 계산하며 여기서
Figure pct00130
는 타원 곡선 점
Figure pct00131
의 가로 좌표이며
Figure pct00132
는 타원 곡선 점
Figure pct00133
의 가로 좌표이며 여기서 본 발명에 따른 실시 예에 의한 방안을 사용하여 생성된 매개변수 W를 사용한다.
다음에 사용자B는 키 협상 장치를 통해 상대방의 공개 키
Figure pct00134
, 상대방의 타원 곡선 점
Figure pct00135
, 로컬로 사용되는 타원 곡선 여인자 매개변수h, 매개 변수
Figure pct00136
, 매개 변수
Figure pct00137
를 제2 제어 모듈(11) 내의 하드웨어 실현 부분에 송신하며 그 중의 큰 정수 연산 유닛을 호출하여
Figure pct00138
연산을 완성하며 여기서 개인 키
Figure pct00139
는 제 2 제어 모듈(11) 내의 하드웨어로 실현되는 키 저장 장치에서 독출되며 관련 연산은 주로 먼저 큰 정수 모듈러 곱셈 연산을 이용하여
Figure pct00140
를 계산한 후 큰 정수 모듈러 덧셈 연산을 사용하여
Figure pct00141
를 계산하는 것을 포함하며; 사용자B는 상기 큰 정수 연산 유닛을 계속 호출하여
Figure pct00142
연산을 완성하며 관련 연산은 주로 큰 정수 곱셈 연산을 포함한다.
다음에 사용자B는 제2 제어 모듈(11) 내의 하드웨어로 실현되는 ECC 연산 유닛을 사용하여
Figure pct00143
가 타원 곡선 방정식을 만족하는지 여부를 검증하고
Figure pct00144
연산을 완성하며 관련 연산은 주로 ECC 점 곱셈 연산을 통해
Figure pct00145
를 계산하며 ECC 점 덧셈 연산을 통해
Figure pct00146
를 계산한 후 다시 ECC 점 곱셈 연산을 통해
Figure pct00147
를 계산하는 것을 포함한다.
사용자B는 키 협상 장치 내의 제 2 제어 모듈(11)을 통해
Figure pct00148
가 타원 곡선 방정식을 만족하는지 여부의 검증 결과 및 타원 곡선 점
Figure pct00149
를 소프트웨어 실현 부분에 송신한다. 만약
Figure pct00150
가 타원 곡선 방정식을 만족하지 않거나 또는
Figure pct00151
가 타원 곡선의 무한 원점이면 연산을 종료하며; 그렇지 않으면 사용자B는 제2 제어 모듈(11) 내의 소프트웨어로 실현되는 데이터 유형 전환 유닛을 통해 타원 곡선 점
Figure pct00152
의 가로 좌표
Figure pct00153
와 세로 좌표
Figure pct00154
의 데이터 유형을 비트 열 데이터 유형으로 전환하며 사용자B는 제2 제어 모듈(11) 내의 소프트웨어로 실현되는 키 파생 유닛을 통해 사용자B의 로컬 협상 키
Figure pct00155
를 계산하며 지금까지 사용자B는 키 협상이 성공한다고 묵인할 수 있다.
물론 선택적으로 사용자B는 또한 제2 제어 모듈(11) 내의 소프트웨어로 실현되는 데이터 유형 전환 유닛을 통해 타원 곡선 점
Figure pct00156
의 가로 좌표
Figure pct00157
와 세로 좌표
Figure pct00158
, 타원 곡선 점
Figure pct00159
의 가로 좌표
Figure pct00160
와 세로 좌표
Figure pct00161
의 데이터 유형을 비트 열 데이터 유형으로 전환한 후 제2 제어 모듈(11) 내의 소프트웨어로 실현되는 암호화 해시 계산 유닛을 통해 다음과 같은 검증 정보를 계산한다.
Figure pct00162
Figure pct00163
사용자B는 검증 정보
Figure pct00164
를 소프트웨어로 실현되는 전송 인터페이스를 통해 사용자A에 송신한다.
개시자A에 속하는 키 협상 장치는 사용자B에 의해 송신된 정보를 수신하며 사용자B의 공개 키
Figure pct00165
, 사용자B의 타원 곡선 점
Figure pct00166
, 사용자B의 사용자 정보
Figure pct00167
를 획득하며 로컬 사용자 정보
Figure pct00168
타원 곡선 여인자 매개변수h 및 협상 키 예상 길이klen을 획득한 후 사용자B와 동일한 프로세스를 사용하여
Figure pct00169
를 계산하며
지금까지 개시자는 키 협상이 성공한다고 묵인할 수도 있다.
진일보로 만약 사용자A가 사용자B에 의해 송신된 검증 정보
Figure pct00170
를 수신하면 동일한 프로세스를 사용하여 하기 검증 정보를 계산해야 한다.
Figure pct00171
Figure pct00172
그 다음에
Figure pct00173
Figure pct00174
와 같은지 여부를 검증하며 같으면 키 협상이 성공한 것으로 확인하며 같지 않으면 키 협상이 실패한 것으로 확인하며
Figure pct00175
를 사용자 B에 송신하며;
사용자는
Figure pct00176
Figure pct00177
와 같은지 여부를 검증하며 같으면 키 협상이 성공한 것으로 확인하며 같지 않으면 키 협상이 실패한 것으로 확인한다.
지금까지 SM2 키 교환 프로토콜에 제정된 SM2 키 협상 프로세스가 완전히 종료된다.
요약해서 말하면 본 발명에 따른 실시예에 있어서 협상 양쪽은 모두 부등식
Figure pct00178
를 성립시키는 X의 값 중의 최소의 양의 정수 값에 따라 매개변수W를 계산하며 상기 매개변수W에 따라 협상 상대방과 SM2 키 교환 프로토콜 기반의 키 협상을 수행한다. 여기서 매개변수W의 계산 과정은 실제 협상 프로세스를 시작하기 전에 수행될 수 있거나 또는 실제 협상 프로세스를 시작한 후에 수행될 수 있으며 모두 동일한 효과를 획득할 수 있다. 먼저
Figure pct00179
의 로그 값을 계산한 후 올림 연산을 수행하는 방식을 채용하며 매개변수W를 계산하는 방법에 비해 계산량을 효과적으로 감소시키며 알고리즘의 실현 복잡성을 감소시켜 SM2 키 교환 프로토콜 기반의 키 협상 프로세스의 실현 효율을 크게 향상시켜 SM2 키 교환 프로토콜의 공학적인 실현을 최적화한다.
해당 분야의 통상의 지식을 가진 자라면 본 발명에 따른 실시예는 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 점은 자명한 것이다. 따라서, 본 발명은 완전 하드웨어적인 실시예, 완전 소프트웨어적인 실시예 또는 소프트웨어 및 하드웨어 결합 실시예의 형식을 채용할 수 있다. 또한, 본 발명은 컴퓨터 사용 가능 프로그램 코드가 포함되는 컴퓨터 사용 가능 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등이 포함되지만 이에 제한되지 않음) 상에서 실행되는 하나 또는 복수의 컴퓨터 프로그램 제품의 형식을 채용할 수 있다.
본 발명은 본 발명에 따른 실시예에 의한 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명된다. 컴퓨터 프로그램 지령을 통해 흐름도 및/또는 블록도의 각 절차 및/블록과 흐름도 및/또는 블록도의 절차 및/또는 블록의 결합을 실현할 수 있음을 이해해야 한다. 이러한 컴퓨터 프로그램 지령을 범용 컴퓨터, 전용 컴퓨터, 삽입식 프로세서 또는 기타 프로그래밍 가능한 데이터 처리 장치의 프로세서에 제공하여 하나의 머신을 생성함으로써, 컴퓨터 또는 기타 프로그래밍 가능한 데이터 처리 장치의 프로세서에 의해 실행되는 지령을 통해, 흐름도의 하나 또는 복수의 절차 및/또는 블록도의 하나 또는 복수의 블록에서 지정되는 기능을 구현하기 위한 장치를 생성할 수 있다.
이러한 컴퓨터 프로그램 지령은 또한, 컴퓨터 또는 기타 프로그래밍 가능한 데이터 처리 장치를 특정된 방식으로 작동하도록 가이드하는 컴퓨터 독출 가능한 메모리에 저장됨으로써 해당 컴퓨터 독출 가능한 메모리 내에 저장된 지령을 통해 지령 장치를 포함하는 제조품을 생성할 수 있으며, 해당 지령 장치는 흐름도의 하나 또는 복수의 절차 및/또는 블록도의 하나 또는 복수의 블록에서 지정된 기능을 구현한다.
이러한 컴퓨터 프로그램 지령은 또한, 컴퓨터 또는 기타 프로그래밍 가능한 데이터 처리 장치에 장착함으로써 컴퓨터 또는 기타 프로그래밍 가능한 장치상에서 일련의 조작 단계를 실행하여 컴퓨터적으로 구현되는 처리를 생성할 수 있으며, 따라서 컴퓨터 또는 기타 프로그래밍 가능한 장치상에서 실행되는 지령은 흐름도의 하나 또는 복수의 절차 및/또는 블록도의 하나 또는 복수의 블록에서 지정된 기능을 구현하기 위한 단계를 제공한다.
비록 본 발명의 바람직한 실시예를 설명하였지만, 해당 분야의 통상의 기술자라면 기본적인 창조성 개념만 알게 된다면 이러한 실시예에 대해 다른 변경과 수정을 수행할 수 있다. 따라서, 첨부되는 청구범위는 바람직한 실시예 및 본 발명의 범위에 속하는 모든 변경과 변형을 포함하는 것으로 해석되어야 할 것이다.
보다시피, 해당 기술 분야의 통상의 지식을 가진 자라면, 본 발명에 따른 실시예의 사상과 범위를 벗어나지 않는 전제하에서 본 발명에 따른 실시예에 대한 여러 가지 변경과 변형을 수행할 수 있다. 따라서, 본 발명에 따른 실시예에 대한 이러한 변경과 변형도 본 발명의 특허청구범위 및 그와 균등한 기술의 범위 내에 속한다면 본 발명에도 이러한 변경과 변형이 포함되어야 할 것이다.

Claims (16)

  1. 이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정하는 단계;
    상기 차수 n이 2x 이하인 경우의 X의 최소의 양의 정수 값을 계산하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수 W의 값을 획득하는 단계; 및
    상기 매개변수W의 값에 따라 협상 상대방과 키 협상을 수행하는 단계를 포함하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 방법.
  2. 제1항에 있어서,
    상기 차수 n이 2x이하인 경우의X의 최소의 양의 정수 값을 계산하는 단계는,
    상기 차수 n의 유효 비트 수m를 획득하는 단계;
    차수 n의 값이 2m-1의 값보다 큰지 여부를 판단하여 크면 직접 m의 현재 값을 상기 X의 최소의 양의 정수 값으로 하며, 크지 않으면 설정된 스텝 값을 사용하여 m을 순차적으로 감소하며 차수 n의 값이 2m-1의 값보다 클 때까지 감소할 때마다 차수 n의 값과 2m-1의 값을 비교하여 m의 마지막 값을 상기 X의 최소 양의 정수 값으로 하는 단계를 포함하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 방법.
  3. 제2항에 있어서,
    획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득하는 단계는,
    X의 최소의 양의 정수 값이 홀수인지 또는 짝수인지를 판단하며 만약 홀수이면 X의 최소의 양의 정수 값을 제1 기정 매개변수로 나누어 얻은 값의 정수부분만을 보류하여 매개변수 W의 값으로 하며; 만약 짝수이면 X의 최소의 양의 정수 값을 제1 기정 매개변수로 나누어 얻은 값의 정수부분만을 보류한 후 제2 기정 매개변수를 뺀 결과를 매개변수 W 값으로 하는 단계를 포함하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 방법.
  4. 제2항에 있어서,
    획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득하는 단계는,
    X의 최소의 양의 정수 값이 홀수인지 또는 짝수인지를 판단하며 만약 홀수이면 X의 최소의 양의 정수 값을 일정 자리씩 오른쪽으로 옮긴 결과를 매개변수W의 값으로 하며; 만약 짝수이면 X의 최소의 양의 정수 값을 일정 자리씩 오른쪽으로 옮긴 후 제3 기정 매개변수를 뺀 결과를 매개변수W의 값으로 하는 단계를 포함하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 W의 값에 따라 협상 상대방과 키 협상을 수행하는 단계는,
    협상 상대방에 의해 송신된 상대방의 공개 키
    Figure pct00180
    , 상대방의 타원 곡선 점
    Figure pct00181
    , 상대방의 사용자 정보
    Figure pct00182
    를 수신하며 로컬 사용자 정보
    Figure pct00183
    , 로컬 개인 키
    Figure pct00184
    , 로컬에 생성된 난수
    Figure pct00185
    , 로컬에 생성된 타원 곡선 점
    Figure pct00186
    , 로컬 타원 곡선 여인자 매개변수 h 및 협상 키 예상 길이klen를 획득하는 단계;
    이미 획득된 매개변수W에 근거하여 타원 곡선 점
    Figure pct00187
    의 가로 좌표
    Figure pct00188
    및 타원 곡선 점
    Figure pct00189
    의 가로 좌표
    Figure pct00190
    각각에 따라 SM2 키 교환 프로토콜에 규정된 방식을 이용하여 해당 매개변수
    Figure pct00191
    Figure pct00192
    를 생성하는 단계;
    로컬 타원 곡선 여인자 매개변수 h, 로컬 개인 키
    Figure pct00193
    , 상기 매개변수
    Figure pct00194
    Figure pct00195
    , 상대방의 공개 키
    Figure pct00196
    , 상대방의 타원 곡선 점
    Figure pct00197
    , 로컬에 생성된 난수
    Figure pct00198
    에 따라SM2 키 교환 프로토콜에 규정된 방식을 이용하여 좌표 값이
    Figure pct00199
    인 타원 곡선 점V를 생성하는 단계;
    타원 곡선 점V의 가로 좌표
    Figure pct00200
    와 세로 좌표
    Figure pct00201
    , 상대방의 사용자 정보
    Figure pct00202
    로컬 사용자 정보
    Figure pct00203
    및 협상 키 예상 길이 klen에 따라 SM2 키 교환 프로토콜에 규정된 방식을 이용하여 로컬 협상 키
    Figure pct00204
    를 생성하는 단계를 포함하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 방법.
  6. 제5항에 있어서,
    로컬 협상 키
    Figure pct00205
    를 생성한 후,
    협상 상대방과의 키 협상이 성공한다고 묵인하는 단계를 포함하거나 또는
    상기 타원 곡선 점의 가로 좌표
    Figure pct00206
    와 세로 좌표
    Figure pct00207
    , 타원 곡선 점
    Figure pct00208
    의 가로 좌표
    Figure pct00209
    와 세로 좌표
    Figure pct00210
    , 타원 곡선 점
    Figure pct00211
    의 가로 좌표
    Figure pct00212
    와 세로 좌표
    Figure pct00213
    , 상대방의 사용자 정보
    Figure pct00214
    ,로컬 사용자 정보
    Figure pct00215
    에 따라 SM2 키 교환 프로토콜에 규정된 방식을 이용하여 검증 정보
    Figure pct00216
    및 검증 정보
    Figure pct00217
    를 계산하며 검증 정보
    Figure pct00218
    를 협상 상대방에 송신하며 협상 상대방으로 하여금 검증 정보
    Figure pct00219
    를 수신한 후 동일한 방식을 사용하여 검증 정보
    Figure pct00220
    및 검증 정보
    Figure pct00221
    를 생성하며
    Figure pct00222
    Figure pct00223
    가 같은 것으로 확정될 경우 로컬에서 협상 상대방에의 키 협상이 성공하는 것으로 확인하도록 하며, 협상 상대방에 의해 송신된 검증 정보
    Figure pct00224
    를 수신하며
    Figure pct00225
    Figure pct00226
    가 같은 것으로 확인될 경우 협상 상대방에서 로컬에의 키 협상이 성공하는 것으로 확인하는 단계를 포함하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 방법.
  7. 이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정하며 상기 차수 n이 2x이하인 경우의 X의 최소의 양의 정수 값을 계산하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득하는 제1 제어 모듈; 및
    상기 매개변수W의 값에 따라 협상 상대방과 키 협상을 수행하는 제2 제어 모듈을 포함하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 장치.
  8. 제7항에 있어서,
    상기 제1 제어 모듈은 상기 차수 n이 2x이하인 경우의X의 최소의 양의 정수 값을 계산할 경우 상기 차수 n의 유효 비트 수m를 획득하며 차수 n의 값이 2m-1의 값보다 큰지 여부를 판단하여 그렇다면 직접 m의 현재 값을 상기 X의 최소의 양의 정수 값으로 하며, 그렇지 않으면 설정된 스텝 값을 사용하여 m을 순차적으로 감소하며 차수 n의 값이 2m-1의 값보다 클 때까지 감소할 때마다 차수 n의 값과 2m-1의 값을 비교하여 m의 마지막 값을 상기 X의 최소 양의 정수 값으로 하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 장치.
  9. 제8항에 있어서,
    상기 제1 제어 모듈이 획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득할 경우 X의 최소의 양의 정수 값이 홀수인지 또는 짝수인지를 판단하며 만약 홀수이면 X의 최소의 양의 정수 값을 제1 기정 매개변수로 나누어 얻은 값의 정수부분만을 보류하여 매개변수 W의 값으로 하며; 만약 짝수이면 X의 최소의 양의 정수 값을 제1 기정 매개변수로 나누어 얻은 값의 정수부분만을 보류한 후 제2 기정 매개변수를 뺀 결과를 매개변수 W 값으로 하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 장치.
  10. 제8항에 있어서,
    상기 제1 제어 모듈이 획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득할 경우 X의 최소의 양의 정수 값이 홀수인지 또는 짝수인지를 판단하며 만약 홀수이면 X의 최소의 양의 정수 값을 일정 자리씩 오른쪽으로 옮긴 결과를 매개변수W의 값으로 하며; 만약 짝수이면 X의 최소의 양의 정수 값을 일정 자리씩 오른쪽으로 옮긴 후 제3 기정 매개변수를 뺀 결과를 매개변수W의 값으로 하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 장치.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 제2 제어 모듈이 상기 W의 값에 따라 협상 상대방과 키 협상을 수행할 경우 하기 동작을 수행하며,
    협상 상대방에 의해 송신된 상대방의 공개 키
    Figure pct00227
    , 상대방의 타원 곡선 점
    Figure pct00228
    , 상대방의 사용자 정보
    Figure pct00229
    를 수신하며 로컬 사용자 정보
    Figure pct00230
    , 로컬 개인 키
    Figure pct00231
    , 로컬에 생성된 난수
    Figure pct00232
    , 로컬에 생성된 타원 곡선 점
    Figure pct00233
    , 로컬 타원 곡선 여인자 매개변수 h 및 협상 키 예상 길이 klen를 획득하며;
    이미 획득된 매개변수W에 근거하여 타원 곡선 점
    Figure pct00234
    의 가로 좌표
    Figure pct00235
    및 타원 곡선 점
    Figure pct00236
    의 가로 좌표
    Figure pct00237
    각각에 따라 SM2 키 교환 프로토콜에 규정된 방식을 이용하여 해당 매개변수
    Figure pct00238
    Figure pct00239
    를 생성하며;
    로컬 타원 곡선 여인자 매개변수 h, 로컬 개인 키
    Figure pct00240
    , 상기 매개변수
    Figure pct00241
    Figure pct00242
    , 상대방의 공개 키
    Figure pct00243
    , 상대방의 타원 곡선 점
    Figure pct00244
    , 로컬에 생성된 난수
    Figure pct00245
    에 따라 SM2 키 교환 프로토콜에 규정된 방식을 이용하여 좌표 값이
    Figure pct00246
    인 타원 곡선 점V를 생성하며;
    타원 곡선 점V의 가로 좌표
    Figure pct00247
    와 세로 좌표
    Figure pct00248
    , 상대방의 사용자 정보
    Figure pct00249
    , 로컬 사용자 정보
    Figure pct00250
    및 협상 키 예상 길이 klen에 따라 SM2 키 교환 프로토콜에 규정된 방식을 이용하여 로컬 협상 키
    Figure pct00251
    를 생성하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 장치.
  12. 제 11항에 있어서,
    상기 제 제어 모듈은 로컬 협상 키
    Figure pct00252
    를 생성한 후, 협상 상대방과의 키 협상이 성공한다고 묵인하거나 또는 상기 타원 곡선 점의 가로 좌표
    Figure pct00253
    와 세로 좌표
    Figure pct00254
    , 타원 곡선 점
    Figure pct00255
    의 가로 좌표
    Figure pct00256
    와 세로 좌표
    Figure pct00257
    , 타원 곡선 점
    Figure pct00258
    의 가로 좌표
    Figure pct00259
    와 세로 좌표
    Figure pct00260
    , 상대방의 사용자 정보
    Figure pct00261
    , 로컬 사용자 정보
    Figure pct00262
    에 따라 SM2 키 교환 프로토콜에 규정된 방식을 이용하여 검증 정보
    Figure pct00263
    및 검증 정보
    Figure pct00264
    를 계산하며 검증 정보
    Figure pct00265
    를 협상 상대방에 송신하며 협상 상대방으로 하여금 검증 정보
    Figure pct00266
    를 수신한 후 동일한 방식을 사용하여 검증 정보
    Figure pct00267
    및 검증 정보
    Figure pct00268
    를 생성하며
    Figure pct00269
    Figure pct00270
    가 같은 것으로 확정될 경우 로컬에서 협상 상대방에의 키 협상이 성공하는 것으로 확인하도록 하며, 협상 상대방에 의해 송신된 검증 정보
    Figure pct00271
    를 수신하며
    Figure pct00272
    Figure pct00273
    가 같은 것으로 확인될 경우 협상 상대방에서 로컬에의 키 협상이 성공하는 것으로 확인하는
    것을 특징으로 하는 SM2 키 교환 프로토콜 기반의 키 협상 장치.
  13. 이번 키 협상에 사용되는 타원 곡선 매개변수 차수 n의 값을 확정하는 확정 유닛; 및
    상기 차수 n이 2x 이하인 경우의 X의 최소의 양의 정수 값을 계산하며 획득된 X의 최소의 양의 정수 값에 따라 매개변수 W의 값을 획득하는 계산 유닛을 포함하는
    것을 특징으로 하는 매개변수 생성 장치.
  14. 제 13항에 있어서,
    상기 계산 유닛은 상기 차수 n이 2x이하인 경우의 X의 최소의 양의 정수 값을 계산할 경우 상기 차수 n의 유효 비트 수m를 획득하며 차수 n의 값이 2m-1의 값보다 큰지 여부를 판단하여 그렇다면 직접 m의 현재 값을 상기 X의 최소의 양의 정수 값으로 하며, 그렇지 않으면 설정된 스텝 값을 사용하여 m을 순차적으로 감소하며 차수 n의 값이 2m-1의 값보다 클 때까지 감소할 때마다 차수 n의 값과 2m-1의 값을 비교하여 m의 마지막 값을 상기 X의 최소 양의 정수 값으로 하는
    것을 특징으로 하는 매개변수 생성 장치.
  15. 제13항에 있어서,
    상기 계산 유닛은 획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득할 경우 X의 최소의 양의 정수 값이 홀수인지 또는 짝수인지를 판단하며 만약 홀수이면 X의 최소의 양의 정수 값을 제1 기정 매개변수로 나누어 얻은 값의 정수부분만을 보류하여 매개변수 W의 값으로 하며; 만약 짝수이면 X의 최소의 양의 정수 값을 제1 기정 매개변수로 나누어 얻은 값의 정수부분만을 보류한 후 제2 기정 매개변수를 뺀 결과를 매개변수 W 값으로 하는
    것을 특징으로 하는 매개변수 생성 장치.
  16. 제 1항에 있어서,
    상기 계산 유닛은 획득된 X의 최소의 양의 정수 값에 따라 매개변수W의 값을 획득할 경우 X의 최소의 양의 정수 값이 홀수인지 또는 짝수인지를 판단하며 만약 홀수이면 X의 최소의 양의 정수 값을 일정 자리씩 오른쪽으로 옮긴 결과를 매개변수W의 값으로 하며; 만약 짝수이면 X의 최소의 양의 정수 값을 일정 자리씩 오른쪽으로 옮긴 후 제3 기정 매개변수를 뺀 결과를 매개변수W의 값으로 하는
    것을 특징으로 하는 매개변수 생성 장치.
KR1020147017887A 2011-11-30 2012-11-26 Sm2 키 교환 프로토콜 기반의 키 협상 방법 및 장치 KR101617561B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110390564.7A CN102412971B (zh) 2011-11-30 2011-11-30 基于sm2密钥交换协议的密钥协商方法及装置
CN201110390564.7 2011-11-30
PCT/CN2012/085233 WO2013078970A1 (zh) 2011-11-30 2012-11-26 基于sm2密钥交换协议的密钥协商方法及装置

Publications (2)

Publication Number Publication Date
KR20140105504A true KR20140105504A (ko) 2014-09-01
KR101617561B1 KR101617561B1 (ko) 2016-05-02

Family

ID=45914836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147017887A KR101617561B1 (ko) 2011-11-30 2012-11-26 Sm2 키 교환 프로토콜 기반의 키 협상 방법 및 장치

Country Status (6)

Country Link
US (1) US9313026B2 (ko)
EP (1) EP2787682B1 (ko)
JP (1) JP6014678B2 (ko)
KR (1) KR101617561B1 (ko)
CN (1) CN102412971B (ko)
WO (1) WO2013078970A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412971B (zh) * 2011-11-30 2015-04-29 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
WO2015062239A1 (zh) * 2013-11-04 2015-05-07 华为技术有限公司 密钥协商处理方法和装置
CN104702566B (zh) * 2013-12-06 2021-08-06 苏州海博智能系统有限公司 一种虚拟设备的授权使用方法及装置
US10503510B2 (en) 2013-12-27 2019-12-10 Intel Corporation SM3 hash function message expansion processors, methods, systems, and instructions
WO2015184991A1 (en) * 2014-06-04 2015-12-10 Jintai Ding Improvements on cryptographic systems using pairing with errors
US9317719B2 (en) 2014-09-04 2016-04-19 Intel Corporation SM3 hash algorithm acceleration processors, methods, systems, and instructions
US9658854B2 (en) 2014-09-26 2017-05-23 Intel Corporation Instructions and logic to provide SIMD SM3 cryptographic hashing functionality
EP3373505A1 (en) * 2017-03-06 2018-09-12 Koninklijke Philips N.V. Device and method for sharing a matrix for use in a cryptographic protocol
CN107579811A (zh) * 2017-07-28 2018-01-12 广州星海集成电路基地有限公司 一种基于sm3密码杂凑算法的硬件优化方法
CN107689867B (zh) * 2017-09-08 2019-12-10 晋商博创(北京)科技有限公司 一种在开放环境下的密钥保护方法和系统
CN107896147B (zh) * 2017-12-07 2020-07-28 福建联迪商用设备有限公司 一种基于国密算法协商临时会话密钥的方法及其系统
CN108566375A (zh) * 2018-03-12 2018-09-21 深圳壹账通智能科技有限公司 基于区块链的多端间消息通信的方法、终端及存储介质
CN109547209B (zh) * 2018-11-19 2020-09-08 北京大学 一种两方sm2数字签名生成方法
CN110730184B (zh) * 2019-10-22 2021-11-05 江苏先安科技有限公司 一种基于国密sm2算法的新型招投标加解密方法
CN111147250B (zh) * 2019-12-18 2022-08-02 北京江南天安科技有限公司 一种数字签名方法、装置、发送端、接收端及系统
CN111555879B (zh) * 2020-07-13 2021-01-05 南京凯瑞得信息科技有限公司 一种卫星通信网管信道报文加解密方法及系统
CN111953489A (zh) * 2020-08-31 2020-11-17 中国电力科学研究院有限公司 基于sm2算法的发电单元采集业务的密钥交换设备及方法
CN112529313B (zh) * 2020-12-17 2022-12-09 中国航空综合技术研究所 基于协商策略的智能人机工程设计优化方法
CN112688784B (zh) * 2020-12-23 2023-04-11 中科美络科技股份有限公司 一种数字签名、验证方法、装置及系统
CN113660087B (zh) * 2021-07-06 2023-09-26 浙江传媒学院 一种基于有限域的sm9标识密码算法硬件实现系统
CN113612799B (zh) * 2021-08-25 2022-11-18 中国银行股份有限公司 一种基于sm2算法的区块链哈希加密方法及装置
CN114070561A (zh) * 2022-01-17 2022-02-18 工业信息安全(四川)创新中心有限公司 一种基于sm2算法的零知识证明方法和系统
CN114338047A (zh) * 2022-03-08 2022-04-12 科大天工智能装备技术(天津)有限公司 基于国密的区块链工业数据加密方法、装置及存储介质
CN115174086B (zh) * 2022-07-11 2023-06-27 三未信安科技股份有限公司 基于sm2椭圆曲线的二分之一概率密钥协商方法
CN115499832B (zh) * 2022-11-14 2023-01-17 济南职业学院 一种工业无线通信安全方法
CN116032490B (zh) * 2023-01-09 2023-10-03 郑州轻工业大学 一种基于改进SM2算法的Fabric区块链构建方法
CN117436043A (zh) * 2023-12-20 2024-01-23 鼎铉商用密码测评技术(深圳)有限公司 待执行文件的来源验证方法、设备以及可读存储介质
CN117811730A (zh) * 2023-12-29 2024-04-02 北京天融信网络安全技术有限公司 国密密钥协商方法、装置、计算设备及可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2542556C (en) 2005-06-03 2014-09-16 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
CN100414492C (zh) 2005-11-04 2008-08-27 北京浦奥得数码技术有限公司 一种椭圆曲线密码系统及实现方法
CN101291214B (zh) * 2007-04-19 2011-08-10 华为技术有限公司 一种生成组密钥的方法、系统和设备
CN102318260B (zh) 2008-12-16 2016-04-20 塞尔蒂卡姆公司 密钥协商协议的加速
CN102111681B (zh) * 2009-12-24 2012-12-12 航天信息股份有限公司 一种用于数字电视广播条件接收系统的密钥系统
CN102111266B (zh) * 2009-12-28 2014-01-15 航天信息股份有限公司 基于椭圆曲线的组密钥产生方法
CN102412971B (zh) 2011-11-30 2015-04-29 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置

Also Published As

Publication number Publication date
EP2787682A4 (en) 2015-09-30
US20150124970A1 (en) 2015-05-07
CN102412971B (zh) 2015-04-29
EP2787682B1 (en) 2018-09-05
US9313026B2 (en) 2016-04-12
JP2015500582A (ja) 2015-01-05
JP6014678B2 (ja) 2016-10-25
KR101617561B1 (ko) 2016-05-02
EP2787682A1 (en) 2014-10-08
CN102412971A (zh) 2012-04-11
WO2013078970A1 (zh) 2013-06-06

Similar Documents

Publication Publication Date Title
KR101617561B1 (ko) Sm2 키 교환 프로토콜 기반의 키 협상 방법 및 장치
JP6720424B1 (ja) 鍵共有デバイス及び方法
CN103427997B (zh) 一种生成数字签名的方法及装置
JP2012212164A (ja) デジタル署名と公開鍵の促進された検証
KR101594553B1 (ko) 암호화 키를 생성하는 방법, 이를 위한 네트워크 및 컴퓨터 프로그램
US20230318815A1 (en) Method and system for key agreement utilizing semigroups
KR101768605B1 (ko) 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법
CN111010277A (zh) 密钥交换方法、装置和存储介质、计算装置
WO2024078347A1 (zh) 加速设备、计算系统及加速方法
US9054877B2 (en) Data expansion using an approximate method
JP6834771B2 (ja) 通信装置および通信方法
US7167559B2 (en) Information security device, exponentiation device, modular exponentiation device, and elliptic curve exponentiation device
CN109600225B (zh) 一种密钥交换方法、装置和存储介质
JP2000293507A (ja) 有限体演算における表現データ生成装置および方法
CN114650135A (zh) 一种软硬件协同的sm2椭圆曲线密码算法实现方法
JP5964759B2 (ja) 計算システム
TWI694349B (zh) 防止記憶體傾印的門檻式簽章系統及其方法
CN113595730B (zh) 一种用于工程中生成ecc曲线的处理方法和装置
TW202236822A (zh) 分層確定性錢包的門檻式簽章系統及其方法
CN117394995A (zh) 一种无证书的密钥协商方法、系统、设备及介质
JP2011061306A (ja) 情報共有システム、方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant