KR20150037913A - 공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램 - Google Patents

공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램 Download PDF

Info

Publication number
KR20150037913A
KR20150037913A KR1020157002300A KR20157002300A KR20150037913A KR 20150037913 A KR20150037913 A KR 20150037913A KR 1020157002300 A KR1020157002300 A KR 1020157002300A KR 20157002300 A KR20157002300 A KR 20157002300A KR 20150037913 A KR20150037913 A KR 20150037913A
Authority
KR
South Korea
Prior art keywords
matrix
secret key
mod
bit string
vector
Prior art date
Application number
KR1020157002300A
Other languages
English (en)
Other versions
KR102136904B1 (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 KR20150037913A publication Critical patent/KR20150037913A/ko
Application granted granted Critical
Publication of KR102136904B1 publication Critical patent/KR102136904B1/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/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/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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

공개 데이터 취득부(22)에 의해, 소수 p, 자연수 d, 행렬 Q, 및 행렬 S를 포함하는 공개 데이터를 취득하고, 비밀키 생성부(24)에 의해, 자연수 nA, kA를 포함하는 비밀키를 생성한다. 비가환행렬 생성부(26)에 의해, 행렬 MA(MA = S- kAQnASkA)를 계산하여, 통신 상대에게 송신하고, 통신 상대로부터 행렬 MB(MB = S- kBQnBSkB)를 취득한다. 공유 비밀키 산출부(28)에 의해, 행렬 MAB(MAB = S- kAMB nASkA)를 공유 비밀키로서 산출한다. 이에 따라, 암호 복호 장치는, 고속으로, 안전한 공유 비밀키를 생성할 수 있다.

Description

공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램{SHARED SECRET KEY GENERATION DEVICE, ENCRYPTION DEVICE, DECRYPTION DEVICE, SHARED SECRET KEY GENERATION METHOD, ENCRYPTION METHOD, DECRYPTION METHOD, AND PROGRAM}
본 발명은, 공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램에 관한 것이다.
종래부터, 메시지의 공개형 또한 비가환성의 부호화 방법 및 암호화 방법이 알려져 있다(일본 특개 2001-202010호 공보). 또한, 유한 비가환군을 이용한 공개키 암호 시스템이나, 비가환체인 환 R을 이용한 공개키 암호 시스템이 알려져 있다(일본 특표 2004-534971호 공보, 일본 특표 2000-516733호 공보).
또한, 공개키 암호 방식에 의한 네트워크 상에서의 상호 인증 및 공개키의 상호 교환 시스템이나, 제어 벡터에 근거하는 공개키 암호 시스템의 키 관리가 알려져 있다(일본 특개 2006-262425호 공보, 일본 특개평 5-216409호 공보).
본 발명은, 고속으로, 안전한 공유 비밀키를 생성할 수 있는 공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램을 제공하는 것을 목적으로 한다.
상기의 목적을 달성하기 위해서 제1 양태에 따른 공유 비밀키 생성 장치는, 소수 p, 자연수 d, 행렬식의 값이 1이 아닌 d×d의 행렬 Q(mod p), 및 역행렬이 존재하는 d×d의 행렬 S(mod p)를 포함하는 공개 데이터를 설정하는 공개 데이터 설정부와, 자연수 nA(mod p), kA(mod p)를 포함하는 비밀키를 생성하는 비밀키 생성부와, 상기 비밀키를 이용해, 이하의 (Ⅰ)식에 따라, d×d의 행렬 MA(mod p)를 계산하여, 통신 상대에게 송신하는 행렬 계산부와, 상기 통신 상대의 비밀키에 포함되는 자연수 nB(mod p), kB(mod p)를 이용해 이하의 (Ⅱ)식에 따라 계산되는, d×d의 행렬 MB(mod p)를 취득하는 행렬 취득부와, 상기 행렬 취득부에 의해 취득된 행렬 MB를 이용해, 이하의 (Ⅲ)식에 따라 d×d의 행렬 MAB(mod p)를 공유 비밀키로서 산출하는 공유 비밀키 산출부를 포함하여 구성되어 있다.
MA = S- kAQnASkA … (Ⅰ)
MB = S- kBQnBSkB … (Ⅱ)
MAB = S- kAMB nASkA … (Ⅲ)
제2 양태에 따른 프로그램은, 컴퓨터를, 소수 p, 자연수 d, 행렬식의 값이 1이 아닌 d×d의 행렬 Q(mod p), 및 역행렬이 존재하는 d×d의 행렬 S(mod p)를 포함하는 공개 데이터를 설정하는 공개 데이터 설정부, 자연수 nA(mod p), kA(mod p)를 포함하는 비밀키를 생성하는 비밀키 생성부, 상기 비밀키를 이용해, 이하의 (Ⅳ)식에 따라, d×d의 행렬 MA(mod p)를 계산하여, 통신 상대에게 송신하는 행렬 계산부, 상기 통신 상대의 비밀키에 포함되는 자연수 nB(mod p), kB(mod p)를 이용해 이하의 (Ⅴ)식에 따라 계산되는, d×d의 행렬 MB(mod p)를 취득하는 행렬 취득부, 및 상기 행렬 취득부에 의해 취득된 행렬 MB를 이용해, 이하의 (Ⅵ)식에 따라 d×d의 행렬 MAB(mod p)를 공유 비밀키로서 산출하는 공유 비밀키 산출부로서 기능시키기 위한 프로그램이다.
MA = S- kAQnASkA … (Ⅳ)
MB = S- kBQnBSkB … (Ⅴ)
MAB = S- kAMB nASkA … (Ⅵ)
이와 같이, 공개 데이터와 비밀키를 이용해 계산한 행렬을, 통신 상대와 교환하고, 통신 상대로부터 얻어진 행렬을 이용해, 공유 비밀키를 산출 함으로써, 고속으로, 안전한 공유 비밀키를 생성할 수 있다.
제3 양태에 따른 비밀키 생성부는, 상기 통신 상대와의 통신마다, 자연수 nA(mod p), kA(mod p)를 포함하는 비밀키를 생성해 갱신하도록 할 수 있다. 이에 따라, 보다 안전한 공유 비밀키를 생성할 수 있다.
또한, 제4 양태에 따른 암호화 장치는, 복호화 장치와 공통으로 설정된, 청구항 제1항 또는 제2항의 공유 비밀키 생성 장치에 의해 생성된 공유 비밀키 MAB, 및 2개의 소수 p1, p2에 근거해, 2개의 비가환행렬 A1, A2를 생성하는 행렬 생성부와, 상기 복호화 장치와 공통으로 설정된 d차원의 초기 벡터 v0 또는 전회 구해진 d차원의 벡터 vi -1 1에, 비가환행렬 A1를 작용시켜, 벡터 vi 1를 구함과 동시에, 상기 초기 벡터 v0, 또는 전회 구해진 d차원의 벡터 vi -1 2에, 비가환행렬 A2를 작용시켜, 벡터 vi 2를 구하는 행렬 작용부에 있어서, 상기 비가환행렬 A1, A2를 작용시킬 때의 화연산(OR 연산) 및 적연산(AND 연산) 중 적어도 하나를, 미리 정해진, 복수 종류의 연산자를 조합한 연산 방법으로 치환해, 비가환행렬 A1, A2를 작용시키는 행렬 작용부와, 상기 행렬 작용부에 의해 구해진 벡터 vi 1에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W1에 결합시켜 상기 비트열 W1를 구함과 동시에, 벡터 vi 2에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W2에 결합시켜 상기 비트열 W2를 구하는 비트열 변환부와, 상기 비트열 변환부에 의해 구해진 상기 비트열 W1 및 상기 비트열 W2의 각각의 비트 수가, 암호화 대상 데이터를 나타내는 비트열의 비트 수가 될 때까지, 상기 행렬 작용부에 의한 작용과 상기 비트열 변환부에 의한 변환 및 결합을 반복하는 비트수 판정부와, 상기 비트열 W1 및 상기 비트열 W2의 배타적 논리합을 계산하여, 의사 난수 비트열을 구하는 의사 난수열 발생부와, 상기 의사 난수열 발생부에 의해 구해진 의사 난수 비트열과, 상기 암호화 대상 데이터를 나타내는 비트열과의 배타적 논리합을 계산하는 것에 의해, 상기 암호화 대상 데이터를 암호화하는 암호화부를 포함하여 구성되어 있다.
이와 같이, 비가환행렬 A1, A2를 작용시킬 때의 화연산 및 적연산 중 적어도 하나를, 복수 종류의 연산자를 조합한 연산 방법으로 치환해, 벡터에, 비가환행렬 A1, A2를 반복해 작용시킴과 동시에 비선형 변환을 실시하고, 얻어지는 비트열 W1, W2의 배타적 논리합을 계산하여, 의사 난수 비트열을 구한다. 의사 난수 비트열을 이용해 암호화하는 것에 의해, 암호화 대상 데이터의 비트 수가 가변인 경우에 대해, 암호화 처리를 고속화하고, 또한 암호 해독 강도를 강하게 할 수 있다.
제5 양태의 암호화 장치에 따른 행렬 작용부는, 상기 초기 벡터 v0, 또는 전회 구해진 벡터 vi -1 1에, 비가환행렬 A1를 작용시켜, 상기 벡터 vi 1를 구할 때에, 벡터 vi 1의 요소마다, 이미 계산된 벡터 vi 1의 요소로 치환한 상기 초기 벡터 v0 또는 상기 벡터 vi -1 1에, 비가환행렬 A1를 작용시켜, 벡터 vi 1의 상기 요소를 계산하고, 상기 초기 벡터 v0, 또는 전회 구해진 벡터 vi -1 2에, 비가환행렬 A2를 작용시켜, 상기 벡터 vi 2를 구할 때에, 벡터 vi 2의 요소마다, 이미 계산된 벡터 vi 2의 요소로 치환한 상기 초기 벡터 v0 또는 상기 벡터 vi -1 2에, 비가환행렬 A2를 작용시켜, 벡터 vi 2의 상기 요소를 계산하도록 할 수 있다. 이에 따라, 암호 해독 강도를 보다 강하게 할 수 있다.
제6 양태의 암호화 장치에 따른 비트열 변환부는, 상기 비선형 변환으로서, 상기 행렬 작용부에 의해 구해진 벡터 vi 1를 비트열로 변환하고, 변환된 비트열에 대해, 미리 정해진 조건을 만족하는 선두 비트열을 컷 하는 컷 오프(cut off) 처리를 실시해, 상기 선두 비트열이 컷 된 상기 비트열을 전회 구해진 비트열 W1에 결합시킴과 동시에, 벡터 vi 2를 비트열로 변환하고, 변환된 비트열에 대해, 상기 컷 오프 처리를 실시해, 상기 선두 비트열이 컷 된 상기 비트열을 전회 구해진 비트열 W2에 결합시키도록 할 수 있다. 이에 따라, 암호 해독 강도를 보다 강하게 할 수 있다.
또한, 제7 양태에 따른 암호화 장치의 비트열 변환부는, 상기 컷 오프 처리로서, 상기 변환된 비트열에 대해, 상기 미리 정해진 조건을 만족하는 선두 비트열로서, 선두로부터 연속하는 0과, 선두로부터 최초로 출현하는 1로 이루어지는 선두 비트열을 컷 함과 동시에, 상기 선두 비트열이 컷 된 상기 비트열로부터, 미리 정해진 비트 수의 선두 비트열을 컷 하는 처리를 실시하도록 할 수 있다. 이에 따라, 암호 해독 강도를 보다 강하게 할 수 있다.
제8 양태에 따른 복호화 장치는, 암호화 장치와 공통으로 설정된, 청구항 제1항 또는 제2항의 공유 비밀키 생성 장치에 의해 생성된 공유 비밀키 MAB, 및 2개의 소수 p1, p2에 근거해, 2개의 비가환행렬 A1, A2를 생성하는 행렬 생성부와, 상기 암호화 장치와 공통으로 설정된 d차원의 초기 벡터 v0 또는 전회 구해진 d차원의 벡터 vi -1 1에, 비가환행렬 A1를 작용시켜, 벡터 vi 1를 구함과 동시에, 상기 초기 벡터 v0, 또는 전회 구해진 d차원의 벡터 vi -1 2에, 비가환행렬 A2를 작용시켜, 벡터 vi 2를 구하는 행렬 작용부에 있어서, 상기 비가환행렬 A1, A2를 작용시킬 때의 화연산 및 적연산 중 적어도 하나를, 미리 정해진, 복수 종류의 연산자를 조합한 연산 방법으로 치환해, 비가환행렬 A1, A2를 작용시키는 행렬 작용부와, 상기 행렬 작용부에 의해 구해진 벡터 vi 1에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W1에 결합시켜 상기 비트열 W1를 구함과 동시에, 벡터 vi 2에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W2에 결합시켜 상기 비트열 W2를 구하는 비트열 변환부와, 상기 비트열 변환부에 의해 구해진 상기 비트열 W1 및 상기 비트열 W2의 각각의 비트 수가, 복호화 대상 데이터를 나타내는 비트열의 비트 수가 될 때까지, 상기 행렬 작용부에 의한 작용과 상기 비트열 변환부에 의한 변환 및 결합을 반복하는 비트수 판정부와, 상기 비트열 W1 및 상기 비트열 W2의 배타적 논리합을 계산하여, 의사 난수 비트열을 구하는 의사 난수열 발생부와, 상기 의사 난수열 발생부에 의해 구해진 의사 난수 비트열과, 상기 복호화 대상 데이터를 나타내는 비트열과의 배타적 논리합을 계산하는 것에 의해, 상기 복호화 대상 데이터를 복호화하는 복호화부를 포함하여 구성되어 있다.
본 발명의 일 양태인 공유 비밀키 생성 장치, 방법, 및 프로그램에 의하면, 공개 데이터와 비밀키를 이용해 계산한 행렬을, 통신 상대와 교환하고, 통신 상대로부터 얻어진 행렬을 이용해, 공유 비밀키를 산출 함으로써, 고속으로, 안전한 공유 비밀키를 생성할 수 있다.
본 발명의 일 양태인 암호화 장치, 암호화 방법, 복호화 장치, 및 복호화 방법에 의하면, 비가환행렬 A1, A2를 작용시킬 때의 화연산 및 적연산 중 적어도 하나를, 복수 종류의 연산자를 조합한 연산 방법으로 치환하여, 벡터에, 비가환행렬 A1, A2를 반복해 작용시킴과 동시에 비선형 변환을 실시하고, 얻어지는 비트열 W1, W2의 배타적 논리합을 계산하여, 의사 난수 비트열을 구한다. 의사 난수 비트열을 이용해 암호화 또는 복호화하는 것에 의해, 암호화 대상 데이터 또는 복호화 대상 데이터의 비트 수가 가변인 경우에 대해, 암호화 처리 또는 복호화 처리를 고속화하고, 또한 암호 해독 강도를 강하게 할 수 있다.
도 1은 본 발명의 실시 형태에 따른 암호화 처리 시스템의 구성을 도시한 개략도이다.
도 2는 본 발명의 실시 형태에 따른 암호 복호 장치의 구성을 도시한 개략도이다.
도 3은 공유 비밀키를 산출하는 방법을 설명하기 위한 도면이다.
도 4a는 암호화 방법을 설명하기 위한 도면이다.
도 4B는 복호화 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 형태에 따른 암호 복호 장치에서의 공유 비밀키 산출 처리 루틴의 내용을 도시한 플로우차트이다.
도 6은 본 발명의 실시 형태에 따른 암호 복호 장치에서의 의사 난수열 발생 처리 루틴의 내용을 도시한 플로우차트이다.
도 7은 컴퓨터 상에서의 실험 결과를 도시한 그래프이다.
도 8은 모바일 단말 상에서의 실험 결과를 도시한 그래프이다.
이하, 도면을 참조해 본 발명의 실시 형태를 상세하게 설명한다.
<시스템 구성>
도 1에 도시한 바와 같이, 본 발명의 실시 형태에 따른 암호화 처리 시스템(10)은, 암호 복호 장치(12A, 12B)와, 복수의 유저 단말(14A)과, 복수의 유저 단말(14B)과, 인터넷 액세스망(16)을 갖추고 있다. 또한, 암호 복호 장치(12A, 12B)는, 암호화 장치, 복호화 장치의 일례이다.
복수의 유저 단말(14A)은, 암호 복호 장치(12A)와 접속되고 있고, 암호 복호 장치(12A)는, 인터넷 액세스망(16)에 접속되고 있다. 또한, 복수의 유저 단말(14B)은, 암호 복호 장치(12B)와 접속되고 있고, 암호 복호 장치(12B)는, 인터넷 액세스망(16)에 접속되고 있다. 암호 복호 장치(12A, 12B)는, 인터넷 액세스망(16)을 통해 서로 접속되고 있다.
유저 단말(14A)은, 인터넷 액세스망(16)을 통한 데이터 송신을 실시하는 경우에, 암호 복호 장치(12A)를 통해, 송신 데이터가 인터넷 액세스망(16)으로 출력된다. 한편, 유저 단말(14A)이 인터넷 액세스망(16)을 통한 데이터 수신을 실시하는 경우에, 암호 복호 장치(12A)를 통해, 수신 데이터가 인터넷 액세스망(16)으로부터 입력된다.
또한, 유저 단말(14B)은, 인터넷 액세스망(16)을 통한 데이터 송신을 실시하는 경우에, 암호 복호 장치(12B)를 통해, 송신 데이터가 인터넷 액세스망(16)으로 출력된다. 한편, 유저 단말(14B)이 인터넷 액세스망(16)을 통한 데이터 수신을 실시하는 경우에, 암호 복호 장치(12B)를 통해, 수신 데이터가 인터넷 액세스망(16)으로부터 입력된다.
암호 복호 장치(12A, 12B)는, CPU(Central Processing Unit)와, RAM(Random Access Memory)과, 후술하는 공유 비밀키 생성 처리 루틴 및 의사 난수열 발생 처리 루틴을 실행하기 위한 프로그램을 기억시킨 ROM(Read Only Memory)을 갖춘 컴퓨터로 구성되고, 기능적으로는 다음에 도시한 바와 같이 구성되어 있다. 도 2에 도시한 바와 같이, 암호 복호 장치(12A, 12B)는, 통신부(20), 공개 데이터 취득부(22), 비밀키 생성부(24), 비가환행렬 생성부(26), 공유 비밀키 산출부(28), 데이터 입출력부(32), 공통 데이터 설정부(34), 의사 난수열 발생부(36), 암호화부(38), 및 복호화부(40)를 갖추고 있다. 또한, 비가환행렬 생성부(26)는, 행렬 계산부의 일례이며, 공유 비밀키 산출부(28)는, 행렬 취득부 및 공유 비밀키 산출부의 일례이다. 또한, 의사 난수열 발생부(36)는, 행렬 생성부, 행렬 작용부, 비트열 변환부, 비트수 판정부, 및 의사 난수 발생렬부의 일례이다.
통신부(20)는, 인터넷 액세스망(16)을 통해 데이터의 송수신을 실시한다.
데이터 입출력부(32)는, 유저 단말(14A, 14B)로부터 출력된 데이터가 입력됨과 동시에, 유저 단말(14A, 14B)에 대해 데이터를 출력한다.
암호 복호 장치(12A, 12B)의 공개 데이터 취득부(22)는, 통신부(20)를 통해, 통신 상대와의 통신에서 이용하는 공개 데이터로서, 소수 p, 자연수 d, d×d의 행렬 Q(mod p), 및 역행렬이 존재하는 d×d의 행렬 S(mod p)를 취득한다. 다만, det Q≠1이며, (mod p)는, 변수 혹은 행렬의 요소의 값이, 소수 p의 법(法)인 것을 나타낸다.
암호 복호 장치(12A)의 비밀키 생성부(24)는, 자연수 nA(mod p), kA(mod p)로 이루어지는 비밀키를 생성한다.
암호 복호 장치(12B)의 비밀키 생성부(24)는, 자연수 nB(mod p), kB(mod p)로 이루어지는 비밀키를 생성한다.
비밀키 생성부(24)는, 통신을 실시할 때마다 새로운 비밀키를 생성하여, 비밀키를 갱신한다.
암호 복호 장치(12A)의 비가환행렬 생성부(26)는, 비밀키 nA, kA를 이용해, 이하의 (1)식에 따라, d×d의 행렬 MA(mod p)를 계산하여, 통신부(20)를 통해, 통신 상대인 암호 복호 장치(12B)로, 행렬 MA를 송신한다.
MA = S- kAQnASkA … (1)
암호 복호 장치(12B)의 비가환행렬 생성부(26)는, 비밀키 nB, kB를 이용해, 이하의 (2)식에 따라, d×d의 행렬 MB(mod p)를 계산하여, 통신부(20)를 통해, 통신 상대인 암호 복호 장치(12A)로, 행렬 MB를 송신한다.
MB = S- kBQnBSkB … (2)
암호 복호 장치(12A)의 공유 비밀키 산출부(28)는, 통신부(20)에 의해 수신한 행렬 MB를 취득하고, 취득된 행렬 MB를 이용해, 이하의 (3)식에 따라 d×d의 행렬 MAB(mod p)를 산출한다.
MAB = S- kAMB nASkA … (3)
암호 복호 장치(12B)의 공유 비밀키 산출부(28)는, 통신부(20)에 의해 수신한 행렬 MA를 취득하고, 취득된 행렬 MA를 이용해, 이하의 (4)식에 따라 d×d의 행렬 MBA(mod p)를 산출한다.
MBA = S- kBMA nBSkB … (4)
여기서, 도 3에 도시한 바와 같이, 상기 (3)식은, 이하와 같이, (5)식으로 변환된다.
MAB = S- KAMB nASKA
MAB = S- KA(S- KBQnBSKB)nASKA
MAB = S- KAS- KB(QnB)nASKBSKA
MAB = S-( KA KB )QnBnAS( KA KB ) … (5)
또한, 상기 (4)식은, 이하와 같이, (6)식으로 변환된다.
S- KBMA nBSKB = MBA
S- KB(S- KAQnASKA)nBSKB = MBA
S- KBS- KA(QnA)nBSKASKB = MBA
S-( KA KB )QnAnBS( KA KB ) = MBA … (6)
상기 (5)식, (6)식에 의해 이하의 (7)식을 얻을 수 있어, MAB와 MBA가 동일한 것이 증명된다.
MAB = S-( KA KB )QnAnBS( KA KB ) = S-( KB KA )QnAnBS( KB KA ) = MBA … (7)
그래서, 암호 복호 장치(12A, 12B)의 공유 비밀키 산출부(28)는, 산출한 행렬 MAB, MBA를 공유 비밀키로서 공통 데이터 설정부(34)로 출력한다.
공통 데이터 설정부(34)는, 암호 복호 장치(12A, 12B)에서 공통의 데이터를 설정한다. 구체적으로는, 공유 비밀키인 행렬 MAB(MBA), 프라이빗 데이터인 소수 p1, p2, 및 초기 벡터 v0가 공통의 데이터로서 설정된다.
의사 난수열 발생부(36)는, 후술하는 수법에 의해, 공유 비밀키인 행렬 MAB(MBA), 프라이빗 데이터인 소수 p1, p2, 및 초기 벡터 v0을 이용해, 의사 난수 비트열을 발생시킨다.
암호화부(38)는, 의사 난수열 발생부(36)에 의해 발생한 의사 난수 비트열을, 원 타임 패드 암호의 키로서 이용 함으로써, 데이터 입출력부(32)에 의해 입력된 암호화 대상 데이터에 대해, 스트림 암호화를 실시한다. 예를 들면, 암호화부(38)는, 도 4a에 도시한 바와 같이, 비트열로 나타낸 평문(plain text)과, 암호화 키로서의 의사 난수 비트열과의 XOR을 연산 함으로써, 앞에서 1 비트마다(혹은 1바이트마다) 암호화한다. 암호화부(38)에 의해 암호화된 데이터는, 통신부(20)에 의해 데이터 송신된다.
복호화부(40)는, 의사 난수열 발생부(36)에 의해 발생한 의사 난수 비트열을, 원 타임 패드 암호의 키로서 이용 함으로써, 통신부(20)에 의해 수신된 복호화 대상 데이터에 대해, 복호화를 실시한다. 예를 들면, 복호화부(40)는, 도 4B에 도시한 바와 같이, 비트열로 나타낸 암호화문(cypher text)과 암호화 키로서의 의사 난수 비트열과의 XOR을 연산 함으로써, 앞에서 1 비트마다(혹은 1바이트마다) 복호화한다. 복호화부(40)에 의해 복호화된 데이터는, 데이터 입출력부(32)에 의해, 데이터 단말(14A, 14B)로 출력된다.
다음으로, 본 실시 형태에서의 의사 난수 비트열을 발생시키는 원리에 대해 설명한다.
우선, 의사 난수열 발생부(36)는, 공통 비밀키로서 생성된 d×d의 행렬 MAB(또는 MBA) 및 공통의 프라이빗 데이터로서 설정된 소수 p1, p2를 이용해, 이하와 같이, 2개의 비가환행렬 A1, A2를 생성한다. 또한, 이하에서는, 행렬 MAB가, 2×2의 행렬인 경우를 예로 설명한다.
의사 난수열 발생부(36)는, 이하의 (8)식에 도시한 바와 같이, 행렬 MAB와 소수 p1를 이용해, 행렬 A1'를 계산한다.
Figure pct00001
그리고, 의사 난수열 발생부(36)는, <g>={1,…, p1-1}이 되는 제너레이터 g를 구한다. 예를 들면, p1 = 7의 제너레이터는, 이하와 같이, <3>={1,…, 6}이다.
31 = 3, 32 = 9 mod 7 = 2, 33 = 27 mod 7 = 6, 34 = 81 mod 7 = 4, 35 = 243 mod 7 = 5, …
그리고, A1"를, 이하의 (9)식으로 나타낸다고 하면, 의사 난수열 발생부(36)는, det A1"=g가 되도록 d'를 변경하고, d'를 변경한 A"1을, 비가환행렬 A1로 한다.
Figure pct00002
또한, 의사 난수열 발생부(36)는, 이하의 (10)식에 도시한 바와 같이, 행렬 MAB와 소수 p2를 이용해, 행렬 A2'를 계산하여, 상기와 같이, 비가환행렬 A2를 생성한다.
Figure pct00003
여기서, 비가환행렬 A1, A2를 이용해 생성되는 의사 난수열의 주기의 길이 O(A)는, 비가환행렬 A1, A2의 생성에 이용하는, 임의의 소수 p를 이용해, 이하의 (11)식과 같이 쓸 수 있다.
O(A) = p   … (11)
예를 들어, p를 100000 비트의 소수라고 한 경우, A의 주기는 그 이상으로 길어진다.
또한, 의사 난수열 발생부(36)는, 공통으로 설정된 초기 벡터 v0에 대해, 생성된 비가환행렬 A1을 이용해 변환을 실시하여, 벡터 v1을 얻는다. 또한, 벡터 v1에 대해, 비가환행렬 A1을 이용한 변환을 반복하여, 벡터열 V={v0, v1,…, vt}를 얻는다. 여기서 vi = A1 iv0이다.
그리고, 의사 난수열 발생부(36)는, 얻어진 벡터열 V로부터 비선형 변환에 의해, 비트열 W1를 얻는다. 벡터열 V로부터 비트열 W를 얻는 비선형 변환으로서, V의 요소를 vi=(vi ,0, vi ,1,…, vi ,n)라고 하면, vi ,0을 바이너리 변환한 비트열로부터, 선두 비트로부터 계속되는 0과 다음으로 나타난 1로 이루어지는 비트열을 포함한 선두 비트열을 없애는 컷 오프 처리를 실시한다. 여기서, 컷 오프 한 뒤, 남은 비트열은 높은 난수성을 가지는 것으로 알려져 있다.
본 실시 형태에서는, 컷 오프 처리에 대해, Random cut 및 Fixed cut 의 2 종류의 컷 오프를 사용하고 있다.
Random cut에서는, 상술한 것처럼, 최초로 나타나는 연속한 0과, 다음으로 출현하는 1로 이루어지는 선두 비트열을 컷 한다. 또한, Fixed cut에서는, 미리 결정해 둔 비트 수만큼 컷 한다. 예를 들면, Fixed cut으로 컷 하는 비트 수가 3인 경우, Random cut의 결과로서 얻어지는 비트열의 선두 3 비트를 컷 한다.
vi의 요소 전부에 이 컷 오프 처리를 실시하여, 컷 오프 처리 후의 요소를 모두 늘어놓은 비트열을 W로 한다.
공격자는, 모든 컷 오프의 가능성을 검증하지 않으면, 비가환행렬 A1과 A2를 복원할 수 없기 때문에, 공격에 대한 강함을 향상시킬 수 있다.
또한, 본 실시 형태에서는, 벡터 vi에, 비가환행렬 A1, A2를 작용시켜, 새로운 벡터 vi +1을 얻을 때에, 수끼리의 화연산 및 적연산을, 이하와 같이 복수의 연산자를 조합한 연산으로 치환한다.
예를 들면, a, b를 32bit의 수라고 하고, 기호 a << k를, a를 k비트 쉬프트(shift)하는 기호라고 하면, (화연산)a+b를, a+b mod 232로 치환한다. 또한, (적연산)a×b 를, a << (b/227) xor b로 치환한다. 여기서, a << (b/227)은, a를, b를 227로 나눈 상만큼 쉬프트하는 것을 나타내고, xor은 비트마다의 배타적 논리합을 나타낸다.
또한, 벡터 vi에, 비가환행렬 A1, A2를 작용시켜, 새로운 벡터 vi +1을 얻을 때에, 게다가, 행렬의 작용 방법을 이하와 같이 치환해도 무방하다.
예를 들면, vi = (vi 1, vi 2,…, vi d)를, 행렬 A를 초기 벡터 v0에 i회 작용시킨 것으로 하면(d는 A의 차원), vi +1 = (vi +1 1, vi +1 2,…, vi +1 d)를 얻는 방법을 이하와 같이 한다.
우선, vi +1 1 = (Avi)1 라고 한다. 이는 벡터 Avi의 1번째의 요소뿐이다. 또한, 필요한 계산은 1번째의 요소의 계산뿐이다. 2x2 행렬로 쓰면,
Figure pct00004
가 되지만, 화연산과 적연산은, 상술한 것처럼, 다른 연산으로 치환되고 있다.
그리고, vi +1 2 = (A(vi +1 1, vi 2,…, vi d))2 라고 한다. 이는 비가환행렬 A를, vi의 1번째의 요소를 vi +1 1로 치환한 것에 작용시켜, 2번째의 요소를 취출(取出)한 것이다. 또한, 여기서 필요한 계산은, 2번째의 요소의 계산뿐이다.
그리고, vi +1 3 = (A(vi +1 1, vi +1 2,…, vi d))2 라고 한다. 이는 상기와 같이, vi의 1번째, 2번째의 요소를 치환하고, 비가환행렬 A를 작용시켜, 3번째의 요소를 발출(拔出)한 것이다.
이후, d번째의 요소까지 마찬가지로 실시하여, vi +1을 얻는다.
또한, 암호화하는 평문의 비트 수를 n으로 하면, 비트열 W1의 비트 수가 n에 도달한 순간, 비트열 W1에 대한 처리는 중단되어 비트열 W1가 남은 부분은 버려진다.
의사 난수열 발생부(36)는, 비가환행렬 A2에 대해서도 마찬가지로, 벡터에의 작용 및 컷 오프 처리를 반복 실시하여, 비트열 W2를 생성한다. 또한, 비트열 W2의 비트 수가 n에 도달한 순간, 비트열 W2에 대한 처리는 중단되어 비트열 W2가 남은 부분은 버려진다.
그리고, 의사 난수열 발생부(36)는, 최종적으로 얻어진 비트열 W1과 비트열 W2와의 XOR을 계산하여, 얻어진 비트열을, 의사 난수 비트열로 한다. 또한, 비트열 W1과 비트열 W2와의 XOR에 의해 얻어진 비트열에 대해, 비선형 변환을 더 실시하여, 그 결과를, 의사 난수 비트열로 해도 무방하다.
의사 난수열 발생부(36)는, 상기와 같이, 암호화 대상 데이터의 비트 수 또는 복호화 대상 데이터의 비트 수와 같은 비트 수의 의사 난수 비트열을 발생시킨다.
<암호화 처리 시스템의 동작>
다음으로, 본 실시 형태에 따른 암호화 처리 시스템(10)의 동작에 대해 설명한다.
우선, 유저 단말(14A)에서, 데이터를 유저 단말(14B)로 송신하는 경우에, 유저 단말(14A)이, 송신 데이터를, 암호 복호 장치(12A)에 출력한다.
다음으로, 암호 복호 장치(12A)는, 통신 상대의 암호 복호 장치(12B)에 대해, 통신 개시 요구를 송신하고, 암호 복호 장치(12B)로부터 응답 신호를 수신하면, 암호 복호 장치(12A)에서, 도 5에 도시한 공유 비밀키 산출 처리 루틴이 실행된다. 또한, 암호 복호 장치(12B)에서도 마찬가지로, 도 5에 도시한 공유 비밀키 산출 처리 루틴이 실행된다. 또한, 이하에서는, 암호 복호 장치(12A)에서, 공유 비밀키 산출 처리 루틴을 실행하는 경우에 대해 설명한다.
우선, 스텝(100)에서, 암호 복호 장치(12A)는, 암호 복호 장치(12A, 12B) 간 통신에서 이용하는 공개 데이터(p, d, Q, S)를 취득한다. 예를 들면, Web 상에 공개된 공개 데이터에 액세스하여 취득한다.
그리고, 스텝(102)에서, 암호 복호 장치(12A)는, 비밀키 nA, kA를 생성한다. 다음의 스텝(104)에서는, 암호 복호 장치(12A)는, 상기 스텝(100)에서 취득한 공개 데이터와, 상기 스텝(102)에서 생성한 비밀키에 근거해, 상기 (1)식에 따라, 비가환행렬 MA를 산출한다.
스텝(106)에서는, 암호 복호 장치(12A)는, 상기 스텝(104)에서 산출한 비가환행렬 MA를, 통신 상대의 암호 복호 장치(12B)로 송신한다. 다음의 스텝(108)에서는, 암호 복호 장치(12A)는, 암호 복호 장치(12B)로부터, 비가환행렬 MB를 수신했는지 아닌지를 판정한다. 암호 복호 장치(12A)는, 암호 복호 장치(12B)에 의해 마찬가지로 산출된 비가환행렬 MB를 수신하면, 스텝(110)으로 진행한다.
스텝(110)에서는, 암호 복호 장치(12A)는, 상기 스텝(100)에서 취득한 공개 데이터와, 상기 스텝(102)에서 생성한 비밀키와, 상기 스텝(108)에서 수신한 비가환행렬 MB에 근거해, 상기 (3)식에 따라, 행렬 MAB를 산출하여, 암호 복호 장치(12B)와의 통신에서의 공유 비밀키로서 설정하고, 공유 비밀키 산출 처리 루틴을 종료한다.
상기 공유 비밀키 산출 처리 루틴은, 통신이 개시될 때마다 실행되고, 그 때마다, 새로운 비밀키가 생성되어 새로운 공유 비밀키가 설정된다.
또한, 암호 복호 장치(12A)에서, 도 6에 도시한 의사 난수열 발생 처리 루틴이 실행된다.
우선, 스텝(120)에서, 암호 복호 장치(12A)는, 암호 복호 장치(12B)와 공통으로 설정된 공유 비밀키 MAB, 소수 p1, p2를 이용해, 비가환행렬 A1, A2를 생성한다. 스텝(122)에서는, 암호 복호 장치(12A)는, 벡터를 식별하는 변수 i를 초기치인 0으로 설정한다. 또한, 암호 복호 장치(12A)는, 초기 벡터 v0을 설정한다.
다음의 스텝(124)에서는, 암호 복호 장치(12A)는, 벡터 vi에, 비가환행렬 A1, A2를 각각 작용시켜, 벡터 vi +1 1, vi +1 2를 계산한다. 스텝(126)에서는, 암호 복호 장치(12A)는, 상기 스텝(124)에서 계산된 벡터 vi +1 1, vi +1 2의 각각을, 비트열로 변환함과 동시에, 각각의 비트열에 대해, 컷 오프 처리를 실시하여, 선두 비트열을 컷 오프 한다. 그리고, 스텝(128)에서, 암호 복호 장치(12A)는, 상기 스텝(126)에서 얻어진 비트열의 각각을, 비트열 W1, W2에 대해 더 늘어놓도록 추가한다.
스텝(130)에서는, 암호 복호 장치(12A)는, 비트열 W1, W2 각각의 비트 수가, 송신 데이터(암호화 대상 데이터)의 비트열의 비트 수에 도달했는지 아닌지를 판정한다. 비트열 W1, W2의 각각의 비트 수가, 유저 단말(14A)로부터 입력된 송신 데이터(암호화 대상 데이터)의 비트열의 비트 수에 도달하지 않는 경우에는, 스텝(132)에서, 암호 복호 장치(12A)는, 변수 i를 1 인크리먼트 하고, 상기 스텝(124)으로 되돌아가서, 스텝(124) 이후의 처리를 반복한다. 여기서, 비트열 W1에 한해서만, 비트 수가, 송신 데이터의 비트열의 비트 수에 도달한 경우에는, 상기 스텝(124) 이후의 처리에서, 비가환행렬 A1를 이용한 처리는 실시하지 않는다. 또한, 비트열 W2에 한해서만, 비트 수가, 송신 데이터의 비트열의 비트 수에 도달한 경우에는, 상기 스텝(124) 이후의 처리에서, 비가환행렬 A2를 이용한 처리는 실시하지 않는다.
또한, 상기 스텝(130)에서, 비트열 W1, W2 양쪽의 비트 수가, 송신 데이터의 비트열의 비트 수에 도달했다고 판정된 경우에는, 스텝(134)으로 진행한다.
스텝(134)에서는, 암호 복호 장치(12A)는, 비트열 W1, W2의 XOR을 연산하여, 의사 난수 비트열 S를 생성하고, 의사 난수열 발생 처리 루틴을 종료한다.
그리고, 암호 복호 장치(12A)는, 상기의 의사 난수열 발생 처리 루틴에 의해 생성된 의사 난수 비트열 S와, 유저 단말(14)로부터 입력된 송신 데이터의 비트열과의 XOR을 연산 함으로써, 암호화된 송신 데이터를 생성한다. 또한, 암호 복호 장치(12A)는, 암호화된 송신 데이터를, 인터넷 액세스망(16)을 통해 유저 단말(14B)로 송신한다.
암호화된 송신 데이터는, 암호 복호 장치(12B)에 의해 수신되고, 암호 복호 장치(12B)에서, 상기 도 6의 의사 난수열 발생 처리 루틴이 마찬가지로 실행되어, 암호화된 송신 데이터와 같은 비트 수의 의사 난수 비트열 S가 생성된다.
그리고, 암호 복호 장치(12B)는, 생성된 의사 난수 비트열 S와, 암호화된 송신 데이터의 비트열과의 XOR을 연산 함으로써, 암호화된 송신 데이터의 평문을 생성한다. 또한, 암호 복호 장치(12B)는, 송신 데이터의 평문을, 송신지로서 지정된 유저 단말(B)로 출력한다.
다음으로, 상기의 실시 형태에서 설명한 공유 비밀키의 산출 알고리즘을 이용한 실험을 실시한 결과에 대해 설명한다.
양자 사이에서의 키 공유 속도를 검증하였다. 비밀키를 생성하여, 교환이 종료될 때까지의 계산 시간을 계측하였다.
또한, 이하의 환경에서 테스트를 실시하였다. Windows7(등록 상표) 상의 퍼포먼스는, 이하의 표 1에 나타낸다.
Figure pct00005
(RSA 공개키 암호(도 7의 RSA 참조)), Diffie?ellman형 암호(도 7의 DH 참조), Elliptic Curve(타원) 암호(도 7의 ECC 참조)를 비교 대상으로 하여 속도 비교를 실시하고, 키 생성, 공개 정보 생성, 키 공유 속도를 플롯(plot)하였다. 도 7에 도시한 그래프로부터, 본 실시 형태에서 제안한 수법(도 7의 QP-kex 참조)은 다른 방식보다 압도적으로 빠르고, 특히, RSA와 비교해 약 10배의 속도임을 알 수 있다.
또한, 이하의 표 2에 도시한 모바일 단말 상에서, 실장 실험을 실시하였다.
Figure pct00006
이 단말은 Nokia(R) N70 platform이다. 비교로 하는 대상은, Diffie?ellman형 암호(도 8의 DH 참조), Elliptic Curve(타원) 암호(도 8의 ECC 참조)이다. RSA 공개키 암호는 매우 실행 시간이 걸리기 때문에 생략하였다. 가로축에 방식명과 키 길이를 잡고, 세로축을 실행 시간으로 하였다. 도 8에 도시한 그래프로부터, 본 실시 형태에서 제안한 수법(도 8의 QP 참조)은 소형 디바이스에서도 다른 방식과 비교해 압도적으로 실행 시간이 빠르고, 키 길이를 길게 잡아도 실행 시간은 커지지 않는다는 것을 알 수 있다.
이상 설명한 것처럼, 본 발명의 실시 형태에 따른 암호 복호 장치는, 공개 데이터와 비밀키를 이용해 계산한 비가환행렬을, 통신 상대와 교환하고, 통신 상대로부터 얻어진 비가환행렬을 이용해, 공유 비밀키를 산출 함으로써, 고속으로, 안전한 공유 비밀키를 생성할 수 있다.
또한, 암호 복호 장치는, 고속의 처리로, 긴 키를 공유할 수 있다.
또한, 공통 비밀키로의 공격에 대한 강함에 대해서는, 공격자는 공개되어 있는 정보(p, d, Q, S)와 공개키 MA, MB로부터, 다음의 문제를 풀어, 비밀키 nA, kA(혹은 nB, kB)를 얻을 필요가 있다.
[문제] 다음을 만족하는 nA, kA를 구하라.
MA = S- KAQnASKA
이는, DH형(이산 대수 문제)보다 훨씬 어려운 문제가 된다. 만일 nA를 얻을 수 있어도, 그로부터 kA를 얻으려면, 비선형 문제를 풀지 않으면 안 된다. 이때, 부정 방정식이 출현하여, 수학적으로는 해를 얻을 확률은 0이 된다. 따라서, 생성되는 공유 비밀키는, D-H 보다 수학적으로 엄밀하게 안전하다.
또한, 암호 복호 장치는, 비가환행렬 A1, A2를 작용시킬 때의 화연산 및 적연산을, 복수 종류의 연산자를 조합한 연산 방법으로 치환하여, 초기 벡터에, 비가환행렬 A1, A2를 반복해 작용시킴과 동시에 비선형 변환을 실시하고, 얻어지는 비트열 W1, W2의 XOR을 계산하여, 의사 난수 비트열을 구한다. 암호 복호 장치는, 의사 난수 비트열을 이용해 암호화 또는 복호화 함으로써, 암호화 대상 데이터 또는 복호화 대상 데이터의 비트 수가 가변인 경우에서, 암호화 처리 또는 복호화 처리를 고속화하고, 또한 암호 해독 강도를 강하게 할 수 있다. 또한, 암호 복호 장치는, 공유 비밀키의 생성 방법과 난수를 이용한 암호화·복호화 방법을 조합 함으로써, 고속으로 안전하게 스트림 암호를 개시할 수 있다.
또한, 다른 스트림 암호보다 고속으로, 계산 능력이 낮은 소형 디바이스 상에도 실장이 가능하다.
또한, 의사 난수열 발생 알고리즘에서, 몇 개의 비선형 변환을 이용하는 것에 의해 의사 난수열의 통계적 랜덤성과 긴 주기를 보증할 수 있어, 생성된 의사 난수열을 이용 함으로써, 안전한 일회용 암호키(One-Time-Pad 키)를 생성할 수 있다.
또한, 스트리밍 암호를 실현할 수 있기 때문에, 음성·동영상 등의 멀티미디어·파일을 안전하게 고속으로 전송할 수 있다.
또한, 본 발명은, 상술한 실시 형태로 한정되는 것이 아니라, 이 발명의 요지를 일탈하지 않는 범위 내에서 다양한 변형이나 응용이 가능하다.
예를 들면, 서버와 모바일 사이의 통신을 실시하도록 해도 무방하다. 상기의 공유 비밀키의 생성 방법은, 모바일 환경에서도 고속으로 동작하고, 키 교환을 실시하는 양자 사이에서 계산량을 치우치게 할 수 있기 때문에, 서버와 모바일 간 통신에 적합하다.
또한, 스트리밍 암호 이외에, 본 발명을 적용해도 무방하고, 자동차의 키리스 엔트리(keyless entry) 등에 응용해도 무방하다. 또한, HDD(hard disk drive)의 암호화에 응용해도 무방하다. 예를 들면, 본 실시 형태에서 설명한 암호화 방법에 의해, HDD에 보존되는 모든 데이터가 암호화되어, 정당한 유저 밖에 독출할 수 없도록 해도 무방하다. 또한, Cloud 서비스의 시큐리티에, 본 발명을 응용해도 무방하다.
또한, 본원 명세서 중에서, 프로그램이 미리 인스톨 되어 있는 실시 형태로서 설명했으나, 해당 프로그램을, 컴퓨터가 판독 가능한 기록 매체에 격납해 제공하는 것도 가능하다.
본 발명의 일 양태의 컴퓨터 가독 매체는, 컴퓨터를, 소수 p, 자연수 d, 행렬식의 값이 1이 아닌 d×d의 행렬 Q(mod p), 및 역행렬이 존재하는 d×d의 행렬 S(mod p)를 포함하는 공개 데이터를 설정하는 공개 데이터 설정부, 자연수 nA(mod p), kA(mod p)를 포함하는 비밀키를 생성하는 비밀키 생성부, 상기 비밀키를 이용해, 이하의 (Ⅳ)식에 따라, d×d의 행렬 MA(mod p)를 계산하여, 통신 상대에게 송신하는 행렬 계산부, 상기 통신 상대의 비밀키에 포함되는 자연수 nB(mod p), kB(mod p)를 이용해 이하의 (Ⅴ)식에 따라 계산되는, d×d의 행렬 MB(mod p)를 취득하는 행렬 취득부, 및 상기 행렬 취득부에 의해 취득된 행렬 MB를 이용해, 이하의 (Ⅵ)식에 따라 d×d의 행렬 MAB(mod p)를 공유 비밀키로서 산출하는 공유 비밀키 산출부로서 기능시키기 위한 프로그램을 기억시킨 컴퓨터 가독 매체이다.
MA = S- kAQnASkA … (Ⅳ)
MB = S- kBQnBSkB … (Ⅴ)
MAB = S- kAMB nASkA … (Ⅵ)
일본 출원 2012-151835의 개시는 그 전체가 참조에 의해 본 명세서에 취입(取入)된다.
본 명세서에 기재된 모든 문헌, 특허 출원, 및 기술 규격은, 개별 문헌, 특허 출원, 및 기술 규격이 참조에 의해 취입되는 것이 구체적이고 또한 개별적으로 기재된 경우와 동일한 정도로, 본 명세서 중에 참조에 의해 취입된다.

Claims (8)

  1. 소수 p, 자연수 d, 행렬식의 값이 1이 아닌 d×d의 행렬 Q(mod p), 및 역행렬이 존재하는 d×d의 행렬 S(mod p)를 포함하는 공개 데이터를 설정하는 공개 데이터 설정부와,
    자연수 nA(mod p), kA(mod p)를 포함하는 비밀키를 생성하는 비밀키 생성부와,
    상기 비밀키를 이용해, 이하의 (Ⅰ)식에 따라, d×d의 행렬 MA(mod p)를 계산하여, 통신 상대에게 송신하는 행렬 계산부와,
    상기 통신 상대의 비밀키에 포함되는 자연수 nB(mod p), kB(mod p)를 이용해 이하의 (Ⅱ)식에 따라 계산되는, d×d의 행렬 MB(mod p)를 취득하는 행렬 취득부와,
    상기 행렬 취득부에 의해 취득된 행렬 MB를 이용해, 이하의 (Ⅲ)식에 따라 d×d의 행렬 MAB(mod p)를 공유 비밀키로서 산출하는 공유 비밀키 산출부
    를 포함하는 공유 비밀키 생성 장치.
    MA = S- kAQnASkA … (Ⅰ)
    MB = S- kBQnBSkB … (Ⅱ)
    MAB = S- kAMB nASkA … (Ⅲ)
  2. 제1항에 있어서,
    상기 비밀키 생성부는, 상기 통신 상대와의 통신마다, 자연수 nA(mod p), kA(mod p)를 포함하는 비밀키를 생성해 갱신하는 공유 비밀키 생성 장치.
  3. 복호화 장치와 공통으로 설정된, 제1항 또는 제2항의 공유 비밀키 생성 장치에 의해 생성된 공유 비밀키 MAB, 및 2개의 소수 p1, p2에 근거해, 2개의 비가환행렬 A1, A2를 생성하는 행렬 생성부와,
    상기 복호화 장치와 공통으로 설정된 d차원의 초기 벡터 v0 또는 전회(前回) 구해진 d차원의 벡터 vi -1 1에, 비가환행렬 A1를 작용시켜, 벡터 vi 1를 구함과 동시에, 상기 초기 벡터 v0, 또는 전회 구해진 d차원의 벡터 vi -1 2에, 비가환행렬 A2를 작용시켜, 벡터 vi 2를 구하는 행렬 작용부에 있어서, 상기 비가환행렬 A1, A2를 작용시킬 때의 화연산 및 적연산 중 적어도 하나를, 미리 정해진, 복수 종류의 연산자를 조합한 연산 방법으로 치환해, 비가환행렬 A1, A2를 작용시키는 행렬 작용부와,
    상기 행렬 작용부에 의해 구해진 벡터 vi 1에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W1에 결합시켜 상기 비트열 W1를 구함과 동시에, 벡터 vi 2에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W2에 결합시켜 상기 비트열 W2를 구하는 비트열 변환부와,
    상기 비트열 변환부에 의해 구해진 상기 비트열 W1 및 상기 비트열 W2의 각각의 비트 수가, 암호화 대상 데이터를 나타내는 비트열의 비트 수가 될 때까지, 상기 행렬 작용부에 의한 작용과 상기 비트열 변환부에 의한 변환 및 결합을 반복하는 비트수 판정부와,
    상기 비트열 W1 및 상기 비트열 W2의 배타적 논리합을 계산하여, 의사 난수 비트열을 구하는 의사 난수열 발생부와,
    상기 의사 난수열 발생부에 의해 구해진 의사 난수 비트열과, 상기 암호화 대상 데이터를 나타내는 비트열과의 배타적 논리합을 계산하는 것에 의해, 상기 암호화 대상 데이터를 암호화하는 암호화부
    를 포함하는 암호화 장치.
  4. 암호화 장치와 공통으로 설정된, 제1항 또는 제2항의 공유 비밀키 생성 장치에 의해 생성된 공유 비밀키 MAB, 및 2개의 소수 p1, p2에 근거해, 2개의 비가환행렬 A1, A2를 생성하는 행렬 생성부와,
    상기 암호화 장치와 공통으로 설정된 d차원의 초기 벡터 v0 또는 전회 구해진 d차원의 벡터 vi -1 1에, 비가환행렬 A1를 작용시켜, 벡터 vi 1를 구함과 동시에, 상기 초기 벡터 v0, 또는 전회 구해진 d차원의 벡터 vi -1 2에, 비가환행렬 A2를 작용시켜, 벡터 vi 2를 구하는 행렬 작용부에 있어서, 상기 비가환행렬 A1, A2를 작용시킬 때의 화연산 및 적연산 중 적어도 하나를, 미리 정해진, 복수 종류의 연산자를 조합한 연산 방법으로 치환해, 비가환행렬 A1, A2를 작용시키는 행렬 작용부와,
    상기 행렬 작용부에 의해 구해진 벡터 vi 1에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W1에 결합시켜 상기 비트열 W1를 구함과 동시에, 벡터 vi 2에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W2에 결합시켜 상기 비트열 W2를 구하는 비트열 변환부와,
    상기 비트열 변환부에 의해 구해진 상기 비트열 W1 및 상기 비트열 W2의 각각의 비트 수가, 복호화 대상 데이터를 나타내는 비트열의 비트 수가 될 때까지, 상기 행렬 작용부에 의한 작용과 상기 비트열 변환부에 의한 변환 및 결합을 반복하는 비트수 판정부와,
    상기 비트열 W1 및 상기 비트열 W2의 배타적 논리합을 계산하여, 의사 난수 비트열을 구하는 의사 난수열 발생부와,
    상기 의사 난수열 발생부에 의해 구해진 의사 난수 비트열과, 상기 복호화 대상 데이터를 나타내는 비트열과의 배타적 논리합을 계산하는 것에 의해, 상기 복호화 대상 데이터를 복호화하는 복호화부
    를 포함하는 복호화 장치.
  5. 컴퓨터를,
    소수 p, 자연수 d, 행렬식의 값이 1이 아닌 d×d의 행렬 Q(mod p), 및 역행렬이 존재하는 d×d의 행렬 S(mod p)를 포함하는 공개 데이터를 설정하는 공개 데이터 설정부,
    자연수 nA(mod p), kA(mod p)를 포함하는 비밀키를 생성하는 비밀키 생성부,
    상기 비밀키를 이용해, 이하의 (Ⅳ)식에 따라, d×d의 행렬 MA(mod p)를 계산하여, 통신 상대에게 송신하는 행렬 계산부,
    상기 통신 상대의 비밀키에 포함되는 자연수 nB(mod p), kB(mod p)를 이용해 이하의 (Ⅴ)식에 따라 계산되는, d×d의 행렬 MB(mod p)를 취득하는 행렬 취득부, 및
    상기 행렬 취득부에 의해 취득된 행렬 MB를 이용해, 이하의 (Ⅵ)식에 따라 d×d의 행렬 MAB(mod p)를 공유 비밀키로서 산출하는 공유 비밀키 산출부
    로서 기능시키기 위한 프로그램.
    MA = S- kAQnASkA … (Ⅳ)
    MB = S- kBQnBSkB … (Ⅴ)
    MAB = S- kAMB nASkA … (Ⅵ)
  6. 공개 데이터 설정부에 의해, 소수 p, 자연수 d, 행렬식의 값이 1이 아닌 d×d의 행렬 Q(mod p), 및 역행렬이 존재하는 d×d의 행렬 S(mod p)를 포함하는 공개 데이터를 설정하는 스텝과,
    비밀키 생성부에 의해, 자연수 nA(mod p), kA(mod p)를 포함하는 비밀키를 생성하는 스텝과,
    행렬 계산부에 의해, 상기 비밀키를 이용해, 이하의 (Ⅶ)식에 따라, d×d의 행렬 MA(mod p)를 계산하여, 통신 상대에게 송신하는 스텝과,
    행렬 취득부에 의해, 상기 통신 상대의 비밀키에 포함되는 자연수 nB(mod p), kB(mod p)를 이용해 이하의 (Ⅷ)식에 따라 계산되는, d×d의 행렬 MB(mod p)를 취득하는 스텝과,
    공유 비밀키 산출부에 의해, 상기 행렬 취득부에 의해 취득된 행렬 MB를 이용해, 이하의 (Ⅸ)식에 따라 d×d의 행렬 MAB(mod p)를 공유 비밀키로서 산출하는 스텝
    을 포함하는 공유 비밀키 생성 방법.
    MA = S- kAQnASkA … (Ⅶ)
    MB = S- kBQnBSkB … (Ⅷ)
    MAB = S- kAMB nASkA … (Ⅸ)
  7. 행렬 생성부에 의해, 복호화 장치와 공통으로 설정된, 제6항의 공유 비밀키 생성 방법에 따라 생성된 공유 비밀키 MAB, 및 2개의 소수 p1, p2에 근거해, 2개의 비가환행렬 A1, A2를 생성하는 스텝과,
    행렬 작용부에 의해, 상기 복호화 장치와 공통으로 설정된 d차원의 초기 벡터 v0 또는 전회 구해진 d차원의 벡터 vi -1 1에, 비가환행렬 A1를 작용시켜, 벡터 vi 1를 구함과 동시에, 상기 초기 벡터 v0, 또는 전회 구해진 d차원의 벡터 vi -1 2에, 비가환행렬 A2를 작용시켜, 벡터 vi 2를 구하는 행렬 작용부에 있어서, 상기 비가환행렬 A1, A2를 작용시킬 때의 화연산 및 적연산 중 적어도 하나를, 미리 정해진, 복수 종류의 연산자를 조합한 연산 방법으로 치환해, 비가환행렬 A1, A2를 작용시키는 스텝과,
    비트열 변환부에 의해, 상기 행렬 작용부에 의해 구해진 벡터 vi 1에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W1에 결합시켜 상기 비트열 W1를 구함과 동시에, 벡터 vi 2에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W2에 결합시켜 상기 비트열 W2를 구하는 스텝과,
    비트수 판정부에 의해, 상기 비트열 변환부에 의해 구해진 상기 비트열 W1 및 상기 비트열 W2의 각각의 비트 수가, 암호화 대상 데이터를 나타내는 비트열의 비트 수가 될 때까지, 상기 행렬 작용부에 의한 작용과 상기 비트열 변환부에 의한 변환 및 결합을 반복하는 스텝과,
    의사 난수열 발생부에 의해, 상기 비트열 W1 및 상기 비트열 W2의 배타적 논리합을 계산하여, 의사 난수 비트열을 구하는 스텝과,
    암호화부에 의해, 상기 의사 난수열 발생부에 의해 구해진 의사 난수 비트열과, 상기 암호화 대상 데이터를 나타내는 비트열과의 배타적 논리합을 계산하는 것에 의해, 상기 암호화 대상 데이터를 암호화하는 스텝
    을 포함하는 암호화 방법.
  8. 행렬 생성부에 의해, 암호화 장치와 공통으로 설정된, 제1항 또는 제2항의 공유 비밀키 생성 방법에 따라 생성된 공유 비밀키 MAB, 및 2개의 소수 p1, p2에 근거해, 2개의 비가환행렬 A1, A2를 생성하는 스텝과,
    행렬 작용부에 의해, 상기 암호화 장치와 공통으로 설정된 d차원의 초기 벡터 v0 또는 전회 구해진 d차원의 벡터 vi -1 1에, 비가환행렬 A1를 작용시켜, 벡터 vi 1를 구함과 동시에, 상기 초기 벡터 v0, 또는 전회 구해진 d차원의 벡터 vi -1 2에, 비가환행렬 A2를 작용시켜, 벡터 vi 2를 구하는 행렬 작용부에 있어서, 상기 비가환행렬 A1, A2를 작용시킬 때의 화연산 및 적연산 중 적어도 하나를, 미리 정해진, 복수 종류의 연산자를 조합한 연산 방법으로 치환해, 비가환행렬 A1, A2를 작용시키는 스텝과,
    비트열 변환부에 의해, 상기 행렬 작용부에 의해 구해진 벡터 vi 1에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W1에 결합시켜 상기 비트열 W1를 구함과 동시에, 벡터 vi 2에 대해 비선형 변환을 실시해 비트열로 변환하고, 상기 변환한 비트열을 전회 구해진 비트열 W2에 결합시켜 상기 비트열 W2를 구하는 스텝과,
    비트수 판정부에 의해, 상기 비트열 변환부에 의해 구해진 상기 비트열 W1 및 상기 비트열 W2의 각각의 비트 수가, 복호화 대상 데이터를 나타내는 비트열의 비트 수가 될 때까지, 상기 행렬 작용부에 의한 작용과 상기 비트열 변환부에 의한 변환 및 결합을 반복하는 스텝과,
    의사 난수열 발생부에 의해, 상기 비트열 W1 및 상기 비트열 W2의 배타적 논리합을 계산하여, 의사 난수 비트열을 구하는 스텝과,
    복호화부에 의해, 상기 의사 난수열 발생부에 의해 구해진 의사 난수 비트열과, 상기 복호화 대상 데이터를 나타내는 비트열과의 배타적 논리합을 계산하는 것에 의해, 상기 복호화 대상 데이터를 복호화하는 스텝
    을 포함하는 복호화 방법.
KR1020157002300A 2012-07-05 2013-07-04 공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램 KR102136904B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2012-151835 2012-07-05
JP2012151835A JP6019453B2 (ja) 2012-07-05 2012-07-05 暗号化装置、復号化装置、及びプログラム
PCT/JP2013/068419 WO2014007347A1 (ja) 2012-07-05 2013-07-04 共有秘密鍵生成装置、暗号化装置、復号化装置、共有秘密鍵生成方法、暗号化方法、復号化方法、及びプログラム

Publications (2)

Publication Number Publication Date
KR20150037913A true KR20150037913A (ko) 2015-04-08
KR102136904B1 KR102136904B1 (ko) 2020-07-23

Family

ID=49882098

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157002300A KR102136904B1 (ko) 2012-07-05 2013-07-04 공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램

Country Status (6)

Country Link
US (1) US9608812B2 (ko)
EP (1) EP2882132B1 (ko)
JP (1) JP6019453B2 (ko)
KR (1) KR102136904B1 (ko)
CN (1) CN104488218B (ko)
WO (1) WO2014007347A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200002985A (ko) * 2017-11-02 2020-01-08 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 데이터 공유 방법, 클라이언트, 서버, 컴퓨팅 장치 및 저장 매체

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104640110B (zh) * 2015-01-15 2018-05-29 南京邮电大学 一种终端直通通信中基于信道特性的对称密钥生成方法
CN104993927B (zh) * 2015-07-07 2018-03-20 安徽师范大学 一种对称密钥生成方法
CN109792383B (zh) * 2016-08-02 2022-11-18 阿尔几何有限责任公司 用于使用几何代数的增强的以数据为中心的加密系统的方法和系统
CN106788980B (zh) * 2017-01-16 2019-07-30 中国人民解放军国防科学技术大学 一种面向云计算的矩阵乘法外包过程中安全加密方法
CN107104796B (zh) * 2017-05-02 2018-06-29 北京邮电大学 一种基于非交换群上的对称乘法同态加密方法及装置
CN107578363B (zh) * 2017-07-25 2020-10-30 湖北民族学院 基于多混沌链式算法和位平面的数字图像加解密方法
GB201713499D0 (en) 2017-08-23 2017-10-04 Nchain Holdings Ltd Computer-implemented system and method
US10586057B2 (en) * 2017-11-16 2020-03-10 Intuit Inc. Processing data queries in a logically sharded data store
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
CN108667598B (zh) * 2018-04-28 2021-10-15 克洛斯比尔有限公司 用于实现安全密钥交换的设备和方法及安全密钥交换方法
CN108833423B (zh) * 2018-06-25 2020-07-31 厦门大学 一种基于强化学习的多途径保密信息通信方法
TWI672932B (zh) * 2018-09-27 2019-09-21 國立交通大學 基於質數陣列的後量子非對稱密鑰產生方法及系統、加密方法、解密方法及加密通訊系統
CN109787754B (zh) * 2018-12-14 2023-04-18 平安科技(深圳)有限公司 一种数据加解密方法、计算机可读存储介质及服务器
CN111107062B (zh) * 2019-11-29 2022-04-05 珠海金山网络游戏科技有限公司 一种基于贪婪算法的游戏资源打包方法及系统
US11943348B1 (en) * 2019-12-11 2024-03-26 Q-Net Security, Inc. Method and system for secure cryptographic exchanges using a five-pass protocol
WO2021130935A1 (ja) * 2019-12-25 2021-07-01 日本電信電話株式会社 電子透かし埋め込み装置、電子透かし抽出装置、電子透かし埋め込み方法、電子透かし抽出方法及びプログラム
CN111431698B (zh) * 2020-04-23 2023-08-15 兰州交通大学 运用Haar变换和高斯分布的矢量空间数据加密方法
CN112887079B (zh) * 2021-03-11 2022-10-04 中国石油大学(华东) 基于一段随机比特序列生成的变换加密算法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5200999A (en) 1991-09-27 1993-04-06 International Business Machines Corporation Public key cryptosystem key management based on control vectors
US5491749A (en) 1993-12-30 1996-02-13 International Business Machines Corporation Method and apparatus for entity authentication and key distribution secure against off-line adversarial attacks
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
JP3773226B2 (ja) * 1997-10-06 2006-05-10 カシオ計算機株式会社 暗号化装置
JP2001016196A (ja) * 1999-04-28 2001-01-19 Fuji Soft Abc Inc 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置
ATE397337T1 (de) 1999-12-21 2008-06-15 Contentguard Holdings Inc Verfahren zur übertragung der befugnis, nachrichten zu entschlüsseln
US6782101B1 (en) * 2000-04-20 2004-08-24 The United States Of America As Represented By The Secretary Of The Navy Encryption using fractal key
KR100395158B1 (ko) 2001-07-12 2003-08-19 한국전자통신연구원 유한 비가환군을 이용한 공개키 암호 시스템
US6898288B2 (en) * 2001-10-22 2005-05-24 Telesecura Corporation Method and system for secure key exchange
US7184551B2 (en) * 2002-09-30 2007-02-27 Micron Technology, Inc. Public key cryptography using matrices
US8666065B2 (en) * 2003-02-07 2014-03-04 Britesmart Llc Real-time data encryption
JP2006262425A (ja) 2005-03-16 2006-09-28 Shin Sato 公開鍵暗号方式によるネットワーク上での相互認証および公開鍵の相互交換システム
JP2007264147A (ja) * 2006-03-27 2007-10-11 Fukuoka Institute Of Technology 疑似乱数列生成装置、暗号化復号化装置、疑似乱数列生成方法、暗号化復号化方法、疑似乱数列生成プログラムおよび暗号化復号化プログラム
JP2007288254A (ja) * 2006-04-12 2007-11-01 Sony Corp 通信システム、通信装置および方法、並びにプログラム
US8781117B2 (en) * 2007-08-29 2014-07-15 Red Hat, Inc. Generating pseudo random bits from polynomials
JP2012151835A (ja) 2010-12-28 2012-08-09 Panasonic Corp 映像変換装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Conjugation as public key agreement protocol in mobile cryptography", Proceedings of the 2010 International Conference, July 2010, IDS *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200002985A (ko) * 2017-11-02 2020-01-08 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 데이터 공유 방법, 클라이언트, 서버, 컴퓨팅 장치 및 저장 매체

Also Published As

Publication number Publication date
WO2014007347A1 (ja) 2014-01-09
KR102136904B1 (ko) 2020-07-23
CN104488218B (zh) 2017-07-04
EP2882132A1 (en) 2015-06-10
EP2882132B1 (en) 2019-12-18
JP2014017556A (ja) 2014-01-30
US9608812B2 (en) 2017-03-28
CN104488218A (zh) 2015-04-01
US20150156018A1 (en) 2015-06-04
EP2882132A4 (en) 2016-03-09
JP6019453B2 (ja) 2016-11-02

Similar Documents

Publication Publication Date Title
KR20150037913A (ko) 공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
US9379891B2 (en) Method and system for ID-based encryption and decryption
US9172529B2 (en) Hybrid encryption schemes
CN110011995B (zh) 多播通信中的加密和解密方法及装置
JP2016513825A (ja) 安全通信方法および装置
JPWO2008013008A1 (ja) 秘密通信方法及びその秘密通信装置
JP2014017556A5 (ko)
US20120323981A1 (en) Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
RU2459276C1 (ru) Способ шифрования сообщения м, представленного в виде многоразрядного двоичного числа
CN113726517A (zh) 一种信息共享方法及装置
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
US20190294417A1 (en) Method and system for deriving deterministic prime number
KR101575681B1 (ko) 속성 기반 암호화 방법
JP7125857B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
EP2571192A1 (en) Hybrid encryption schemes
CN114257402B (zh) 加密算法确定方法、装置、计算机设备和存储介质
KR100388059B1 (ko) 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
Lizama-Perez Non-invertible key exchange protocol
JPWO2005098796A1 (ja) 暗号方式の安全性を保証するパディング適用方法
CN112954388A (zh) 一种数据文件的获取方法、装置、终端设备和存储介质
Kuppuswamy et al. Enrichment of security through cryptographic public key algorithm based on block cipher
CN114070549A (zh) 一种密钥生成方法、装置、设备和存储介质
KR102626974B1 (ko) 화이트박스 암호의 비밀키 보호를 위한 방법 및 시스템

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant