KR20130024931A - 암호화 장치, 복호 장치, 암호화 방법, 복호 방법, 프로그램, 및 기록 매체 - Google Patents
암호화 장치, 복호 장치, 암호화 방법, 복호 방법, 프로그램, 및 기록 매체 Download PDFInfo
- Publication number
- KR20130024931A KR20130024931A KR1020127034442A KR20127034442A KR20130024931A KR 20130024931 A KR20130024931 A KR 20130024931A KR 1020127034442 A KR1020127034442 A KR 1020127034442A KR 20127034442 A KR20127034442 A KR 20127034442A KR 20130024931 A KR20130024931 A KR 20130024931A
- Authority
- KR
- South Korea
- Prior art keywords
- function
- max
- value
- ciphertext
- coef
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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)
- H04L9/083—Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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/0847—Key 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 identity based encryption [IBE] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
- H04L9/3073—Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
암호화시에 난수 r을 생성하고, 암호문 C2=M(+)R(r), 함수값 HS(r, C2), 공통 키 K, 공통 키 K에 의한 난수 r의 암호문 C(Ψ+1), 함수값 HS(r, C2)에 대응하는 공통 키 K의 암호문 C(0), C(λ)를 생성한다. 복호화시에 입력된 암호문 C'(0), C'(λ)로부터 공통 키 K'를 복호하고, 공통 키 K'를 사용하여 입력된 암호문 C'(Ψ+1)를 복호하여 복호값 r'를 생성하고, 함수값 HS(r',C2')를 생성하고, 입력된 암호문 C'(0), C'(λ)와 함수값 HS(r',C2')에 대응하는 공통 키 K'의 암호문 C''(0), C''(λ)가 일치하지 않는 경우에 복호를 거절하고, 일치하는 경우에 입력된 암호문 C2'를 복호한다.
Description
본 발명은 시큐리티 기술에 관한 것으로, 특히 암호 기술에 관한 것이다.
암호 연구 분야의 하나로 선택 암호문 공격에 대하여 안전한(CCA-Secure : Chosen Ciphertext Attacks-Secure) 암호 방식(CCA 안전한 암호 방식)이 있다. 특히 최근 일반적으로 선택 평문 공격(CPA : Chosen Plaintext Attack)에 대한 안전성밖에 가지지 않는 ID 베이스 암호(IBE : Identity-based Encryption) 방식(예를 들면, 비특허문헌 1 참조)에 기초하여 CCA 안전한 암호 방식을 구성하고자 하는 연구가 활발하다. 예를 들면, 비특허문헌 2에서는, CHK 변환 방식이 제안되어 있다. CHK 변환 방식에서는 CPA 안전한 임의의 ID 베이스 암호 방식에 기초하여 CCA 안전한 암호 방식을 구축하기 위해서 One-Time 서명이 사용된다. 예를 들면, 비특허문헌 3에서는, BK 변환 방식이 제안되어 있다. BK 변환 방식에서는 CPA 안전한 임의의 ID 베이스 암호 방식에 기초하여 CCA 안전한 암호 방식을 구축하기 위해서, 메시지 인증자(MAC : Message Authentication Code)와 비트 커미트먼트 방식이 사용된다.
D.Boneh, M. Franklin, "Identity based encryption from the Weil pairing," Crypto 2001, Lecture Notes in Computer Science, Vol. 2139, Springer-Verlag, pp. 213-229, 2001.
R. Canetti, S. Halevi, J. Katz, "Chosen-Ciphertext Security from Identity-Based Encryption," Proc. of EUROCRYPT'04, LNCS 3027, pp. 207-222, 2004.
D. Boneh, J. Katz, "Improved Efficiency for CCA-Secure Cryptosystems Built Using Identity-Based Encryption," Proc. of CT-RSA'05, LNCS 3376, pp. 87-103, 2005.
상기 서술한 CHK 변환 방식에 기초하여 생성된 암호문은 암호화된 평문과 당해 암호화된 평문의 One-Time 서명과 당해 One-Time 서명을 검증하기 위한 서명 키를 포함한다. 그 때문에, CHK 변환 방식에 기초하여 생성되는 암호문의 암호문 공간은 암호화된 평문을 위한 공간 뿐만아니라 One-Time 서명이나 서명 키를 위한 공간을 포함한다. 상기 서술한 BK 변환 방식에 기초하여 생성된 암호문은 암호화된 평문와 메시지 인증자와 비트 커미트먼트열을 포함한다. 그 때문에, BK 변환 방식에 기초하여 생성되는 암호문의 암호문 공간은 암호화된 평문을 위한 공간 뿐만아니라 메시지 인증자나 비트 커미트먼트열을 위한 공간을 포함한다. 즉, CHK 변환 방식이나 BK 변환 방식에 기초하여 생성되는 암호문 공간은 CCA 안전성을 향상시키기 위해서만 할당된 2차원의 공간을 포함한다. 그러나 암호문 공간의 사이즈가 커질수록 연산량이나 데이터량이 증가하기 때문에, 암호문 공간의 사이즈는 가능한 한 작은 편이 바람직하다.
또, ID 베이스 암호 방식에서는 암호화를 행하는 자가 암호화를 행하기 전에 복호를 행하는 자의 ID를 취득해 두어야 한다. 이것에 대하여, 암호화를 행하는 자가 복호를 행하는 자를 특정하지 않고 암호문을 생성할 수 있고, 원하는 조건에 합치한 자가 당해 암호문을 복호할 수 있는 방식을 구성할 수 있으면 편리하다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 편리성이 높고, CCA 안전성의 향상을 위한 부가적인 암호문 공간 없이 CCA 안전성을 향상할 수 있는 암호 방식을 제공한다.
본 발명의 암호화에서는 난수 r이 생성되고, 난수 r에 따른 바이너리 계열과 바이너리 계열의 평문 M의 배타적 논리합값인 암호문 C2가 생성된다. 난수 r과 암호문 C2의 세트가 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력되어 Smax(Smax≥1)개의 함수값 HS(r, C2)(S=1,...,Smax)가 생성된다. 순회군 GT의 원소인 공통 키 K가 생성되고, 공통 키 K를 사용하여 공통 키 암호 방식에 의해 난수 r을 암호화하여 암호문 C(Ψ+1)가 생성된다. C(0)=υ·b1(0)+Σι=2 Iυι(0)·bι(0), C(λ)=υ·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)·bι(λ), 및 암호문 C(Ψ+1)를 포함하는 암호문 C1이 생성된다.
여기서, Ψ가 1 이상의 정수이며, ψ가 0 이상 Ψ 이하의 정수이며, n(ψ)이 1 이상의 정수이며, ζ(ψ)가 0 이상의 정수이며, λ가 1 이상 Ψ 이하의 정수이며, I가 2 이상 n(0)+ζ(0) 이하의 상수이며, eψ의 각각이 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))와 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))를 입력으로 하여 순회군 GT의 1개의 원소를 출력하는 비퇴화한 쌍선형 사상이며, i가 1 이상 n(ψ)+ζ(ψ) 이하의 정수이며, bi(ψ)가 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, bi *(ψ)가 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, δ(i, j)가 크로네커의 델타 함수이며, 순회군 GT의 생성원 gT 및 상수 τ, τ'에 대하여 eψ(bi(ψ), bj *(ψ))=gT τ·τ'·δ(i, j)가 만족되고, w(λ)→=(w1(λ) ,...,wn (λ)(λ))가 w1(λ) ,...,wn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이다. υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 함수값 HS(r, C2)(S=1,...,Smax)의 어느 하나에 대응한다.
본 발명의 복호에서는 SE=Σμ∈ SETconst(μ)·share(μ)(μ∈SET)을 만족하는 계수 const(μ)가 존재하는 경우에, 제1 키 정보 D*(0), 제2 키 정보 D*(λ), 및 입력된 암호문 C'(0), C'(λ)를 사용하여, 이하와 같이 공통 키 K'가 생성된다.
[수 1]
공통 키 K'를 사용하고, 입력된 암호문 C'(Ψ+1)가 복호되어 복호값 r'가 생성된다. 복호값 r'와 입력된 암호문 C2'의 세트가 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력되어 Smax(Smax≥1)개의 함수값 HS(r',C2')(S=1,...,Smax)가 생성된다. 암호문 C'(0), C'(λ)와 암호문 C''(0)=υ''·b1(0)+Σι=2 Iυι''(0)·bι(0), C''(λ)=υ''·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)·bι(λ)와 각각이 일치하지 않는 경우에 복호가 거절된다.
단, v(λ)→=(v1(λ) ,...,vn (λ)(λ))가 v1(λ) ,...,vn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이며, w(λ)→=(w1(λ) ,...,wn (λ)(λ))가 w1(λ) ,...,wn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이며, 라벨 LAB(λ)(λ=1,...,Ψ)이 n(λ)차원 벡터 v(λ)→ 또는 n(λ)차원 벡터 v(λ)→의 부정 ¬v(λ)→를 나타내는 정보이며, 「LAB(λ)=v(λ)→」는 LAB(λ)이 n(λ)차원 벡터 v(λ)→를 나타내는 것을 의미하고, 「LAB(λ)=¬v(λ)→」는 n(λ)차원 벡터 v(λ)→의 부정 ¬v(λ)→를 나타내는 것을 의미하고, share(λ)(λ=1,...,Ψ)이 비밀 정보 SE를 비밀 분산하여 얻어진 쉐어 정보를 나타내고, 제1 키 정보가 D*(0)=-SE·b1 *(0)+Σι=2 Icoefι(0)·bι *(0)이며, LAB(λ)=v(λ)→가 되는 λ에 대한 제2 키 정보가 D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)이며, LAB(λ)=¬v(λ)→가 되는 λ에 대한 제2 키 정보가 D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)이며, SET가 {LAB(λ)=v(λ)→}∧{v(λ)→·w(λ)→=0} 또는 {LAB(λ)=¬v(λ)→}∧{v(λ)→·w(λ)→≠0}을 만족하는 λ의 집합을 나타낸다. υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 함수값 HS(r',C2')(S=1,...,Smax)의 어느 하나에 대응한다.
본 발명에서는 암호문 C'(0), C'(λ)와 암호문 C''(0), C''(λ)가 각각 일치하지 않는 경우에 복호를 거절하는 것으로 했기 때문에 CCA 안전성이 향상된다. 본 발명에서는 CCA 안전성을 향상시키기 위한 부가적인 암호문 공간이 불필요하다. 본 발명은 암호화를 행하는 자가 복호를 행하는 자를 특정하지 않고 암호문을 생성할 수 있고, 원하는 조건에 합치한 자가 당해 암호문을 복호할 수 있다.
이와 같이 본 발명에서는 편리성이 높고, CCA 안전성의 향상을 위한 부가적인 암호문 공간 없이 CCA 안전성을 향상시킬 수 있다.
도 1은 표준형 논리식을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 2는 표준형 논리식을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 3은 본 형태의 암호 시스템을 예시하기 위한 블록도이다.
도 4는 본 형태의 암호화 장치를 예시하기 위한 블록도이다.
도 5는 본 형태의 복호 장치를 예시하기 위한 블록도이다.
도 6은 본 형태의 키 생성 장치를 예시하기 위한 블록도이다.
도 7은 본 형태의 키 생성 처리를 예시하기 위한 도면이다.
도 8은 본 형태의 암호화 처리를 예시하기 위한 도면이다.
도 9는 본 형태의 복호 처리를 예시하기 위한 도면이다.
도 10은 도 9의 스텝 43의 처리를 예시하기 위한 도면이다.
도 2는 표준형 논리식을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 3은 본 형태의 암호 시스템을 예시하기 위한 블록도이다.
도 4는 본 형태의 암호화 장치를 예시하기 위한 블록도이다.
도 5는 본 형태의 복호 장치를 예시하기 위한 블록도이다.
도 6은 본 형태의 키 생성 장치를 예시하기 위한 블록도이다.
도 7은 본 형태의 키 생성 처리를 예시하기 위한 도면이다.
도 8은 본 형태의 암호화 처리를 예시하기 위한 도면이다.
도 9는 본 형태의 복호 처리를 예시하기 위한 도면이다.
도 10은 도 9의 스텝 43의 처리를 예시하기 위한 도면이다.
본 발명을 실시하기 위한 형태를 설명한다.
〔정의〕
행렬 : 「행렬」은 연산이 정의된 집합의 원소를 직사각형으로 늘어놓은 것을 나타낸다. 환의 원소를 요소로 하는 것 뿐만아니라, 군의 원소를 요소로 하는 것도 「행렬」이다.
(·)T : (·)T는 ·의 전치행렬을 나타낸다.
(·)-1 : (·)-1은 ·의 역행렬을 나타낸다.
∧ : ∧는 논리곱(AND)을 나타내는 논리 기호이다.
∨ : ∨는 논리합(OR)을 나타내는 논리 기호이다.
¬ : ¬는 부정(NOT)을 나타내는 논리 기호이다.
명제변수 : 명제변수는 명제의 「참」, 「거짓」("false", "true")을 요소로 하는 집합{참, 거짓} 상의 변수이다. 즉, 명제변수의 정의역은 「참」, 「거짓」을 요소로 하는 집합이다. 명제변수 및 명제변수의 부정을 총칭하여 리터럴(literal)이라고 한다.
논리식 : 논리식은 수리 논리학에 있어서의 명제를 나타내는 식을 의미한다. 구체적으로는 「참」 및 「거짓」은 논리식이며, 명제변수는 논리식이며, 논리식의 부정은 논리식이며, 논리식과 논리식의 논리곱은 논리식이며, 논리식과 논리식의 논리합은 논리식이다.
Z : Z는 정수 집합을 나타낸다.
sec : sec는 시큐리티 파라미터(sec∈Z, sec>0)를 나타낸다.
0* : 0*는 *개의 0로 이루어지는 열을 나타낸다.
1* : 1*는 *개의 1로 이루어지는 열을 나타낸다.
{0,1}* : {0,1}*는 임의 비트 길이의 바이너리 계열을 나타낸다. {0,1}*의 일례는 정수 0 및 1로 이루어지는 계열이다. 그러나, {0,1}*는 정수 0 및 1로 이루어지는 계열에 한정되지 않는다. {0,1}*는 위수 2의 유한체 또는 그 확대체와 동의이다.
{0,1}ζ : {0,1}ζ는 비트 길이 ζ(ζ∈Z, ζ>0)의 바이너리 계열을 나타낸다. {0,1}ζ의 일례는 ζ개의 정수 0 및 1로 이루어지는 계열이다. 그러나, {0,1}ζ는 정수 0 및 1로 이루어지는 계열에 한정되지 않는다. {0,1}ζ는 위수 2의 유한체(ζ=1인 경우) 또는 그것을 ζ차 확대한 확대체(ζ> 1인 경우)와 동의이다.
(+) : (+)는 바이너리 계열간의 배타적 논리합 연산자를 나타낸다. 예를 들면, 10110011(+)11100001=01010010을 만족한다.
Fq : Fq는 위수 q의 유한체를 나타낸다. 위수 q는 1 이상의 정수이며, 예를 들면, 소수나 소수 멱승값을 위수 q로 한다. 즉, 유한체 Fq의 예는 소체나 그것을 기초체로 한 확대체이다. 유한체 Fq가 소체인 경우의 연산은, 예를 들면, 위수 q를 법으로 하는 잉여연산에 의해 용이하게 구성할 수 있다. 유한체 Fq가 확대체인 경우의 연산은, 예를 들면, 기약다항식을 법으로 하는 잉여연산에 의해 용이하게 구성할 수 있다. 유한체 Fq의 구체적인 구성 방법은, 예를 들면, 참고 문헌 1 「ISO/IEC 18033-2 : Information technology-Security techniques-Encryption algorithms-Part 2 : Asymmetric ciphers」에 개시되어 있다.
0F : 0F는 유한체 Fq의 가법단위원(영원)을 나타낸다.
1F : 1F는 유한체 Fq의 승법단위원을 나타낸다.
δ(i, j) : δ(i, j)은 크로네커의 델타 함수를 나타낸다. i=j인 경우에 δ(i, j)=1F를 만족하고, i≠j인 경우에 δ(i, j)=0F를 만족한다.
E : E는 유한체 Fq 상에서 정의된 타원곡선을 나타낸다. 타원곡선 E는 이하에 나타내는 아핀(affine) 좌표상의 Weierstrass 방정식을 만족하는 x, y∈Fq로 이루어지는 점(x, y)의 집합과 무한원점이라고 불리는 특별한 점 O를 포함하는 집합이다.
y2+a1·x·y+a3·y=x3+a2·x2+a4·x+a6
단, a1, a2, a3, a4, a6∈Fq를 만족한다.
타원곡선 E 상의 임의의 2점에 대하여 타원가산이라고 불리는 이항연산 +가 정의되고, 타원곡선 E 상의 임의의 1점에 대하여 역원연산이라고 불리는 단항연산 -가 정의된다. 타원곡선 E 상의 유리점으로 이루어지는 유한집합이 타원가산에 관하여 군을 이루는 것, 타원가산을 사용하여 타원 스칼라 배산이라고 불리는 연산을 정의할 수 있는 것, 및 컴퓨터 상에서의 타원가산 등의 타원연산의 구체적인 연산 방법은 잘 알려져 있다(예를 들면, 참고 문헌 1, 참고 문헌 2 「RFC 5091: Identity-Based Cryptography Standard(IBCS)#1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems」, 참고 문헌 3 「이언·F·블라케, 가디엘·셀로시, 나이젤·P·스마트=저, 「타원 곡선 암호」, 출판=피어슨·에듀케이션, ISBN4-89471-431-0」등 참조).
타원곡선 E 상의 유리점으로 이루어지는 유한집합은 위수 p(p≥1)의 부분군을 가진다. 예를 들면, 타원곡선 E 상의 유리점으로 이루어지는 유한집합의 요소수가 #E이며, p가 #E를 정제(整除)하는 큰 소수인 것으로 하면, 타원곡선 E의 p등분점으로 이루어지는 유한집합 E[p]는 타원곡선 E 상의 유리점으로 이루어지는 유한집합의 부분군을 구성한다. 타원곡선 E의 p등분점은 타원곡선 E 상의 점 A 중, 타원곡선 E 상에서의 타원 스칼라 배산값 p·A가 p·A=O를 만족하는 점을 의미한다.
G1, G2, GT : G1, G2, GT는 각각 위수 q의 순회군을 나타낸다. 순회군 G1, G2의 구체예는 타원곡선 E의 p등분점으로 이루어지는 유한집합 E[p]나 그 부분군이다. G1=G2여도 되고 G1≠G2여도 된다. 순회군 GT의 구체예는 유한체 Fq를 기초체로 하는 확대체를 구성하는 유한집합이다. 그 일례는 유한체 Fq의 대수폐포에 있어서의 1의 p승근으로 이루어지는 유한집합이다. 순회군 G1, G2, GT의 위수와 유한체 Fq의 위수가 동일한 경우에는 보다 안전성이 높다.
본 형태에서는 순회군 G1, G2 상에서 정의된 연산을 가법적으로 표현하고, 순회군 GT 상에서 정의된 연산을 승법적으로 표현한다. 예를 들면, χ∈Fq 및 Ω∈G1에 대한 χ·Ω∈G1은 Ω∈G1에 대하여 순회군 G1으로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω1,Ω2∈G1에 대한 Ω1+Ω2∈G1은 Ω1∈G1과 Ω2∈G1을 피연산자로 하여 순회군 G1으로 정의된 연산을 행하는 것을 의미한다. 마찬가지로, 예를 들면, χ∈Fq 및 Ω∈G2에 대한 χ·Ω∈G2는 Ω∈G2에 대하여 순회군 G2로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω1,Ω2∈G2에 대한 Ω1+Ω2∈G2는 Ω1∈G2와 Ω2∈G2를 피연산자로 하여 순회군 G2로 정의된 연산을 행하는 것을 의미한다. 한편, χ∈Fq 및 Ω∈GT에 대한 Ωχ∈GT는 예를 들면 Ω∈GT에 대하여 순회군 GT로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω1,Ω2∈GT에 대한 Ω1·Ω2∈GT는 Ω1∈GT와 Ω2∈GT를 피연산자로 하여 순회군 GT로 정의된 연산을 행하는 것을 의미한다.
Ψ : Ψ는 1 이상의 정수를 나타낸다.
ψ : ψ는 0 이상 Ψ 이하의 정수 ψ=0,...,Ψ를 나타낸다.
λ : λ는 1 이상 Ψ 이하의 정수 λ=1,...,Ψ를 나타낸다.
n(ψ) : n(ψ)은 미리 정해진 1 이상의 정수를 나타낸다.
ζ(ψ) : ζ(ψ)는 미리 정해진 0 이상의 정수를 나타낸다.
G1 n (ψ)+ζ(ψ) : G1 n (ψ)+ζ(ψ)은 n(ψ)+ζ(ψ)개의 순회군 G1의 직적을 나타낸다.
G2 n (ψ)+ζ(ψ) : G2 n (ψ)+ζ(ψ)은 n(ψ)+ζ(ψ)개의 순회군 G2의 직적을 나타낸다.
g1, g2, gT : g1, g2, gT는 각각 순회군 G, G1, G2, GT의 생성원을 나타낸다.
V(ψ) : V(ψ)는 n(ψ)+ζ(ψ)개의 순회군 G1의 직적으로 이루어지는 n(ψ)+ζ(ψ)차원의 벡터 공간을 나타낸다.
V*(ψ) : V*(ψ)는 n(ψ)+ζ(ψ)개의 순회군 G2의 직적으로 이루어지는 n(ψ)+ζ(ψ)차원의 벡터 공간을 나타낸다.
eψ : eψ는 직적 G1 n (ψ)+ζ(ψ)과 직적 G2 n (ψ)+ζ(ψ)의 직적 G1 n (ψ)+ζ(ψ)×G2 n (ψ)+ζ(ψ)을 순회군 GT에 그리는 비퇴화한 쌍선형 사상(bilinear map)을 나타낸다. 쌍선형 사상 eψ는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))와 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))를 입력으로 하고, 순회군 GT의 1개의 원소를 출력한다.
eψ : G1 n (ψ)+ζ(ψ)×G2 n (ψ)+ζ(ψ)→GT…(1)
쌍선형 사상 eψ는 이하의 성질을 만족한다.
[쌍선형성] 쌍선형 사상 eψ는 모든 Γ1∈G1 n (ψ)+ζ(ψ), Γ2∈G2 n (ψ)+ζ(ψ) 및 ν, κ∈Fq에 대하여 이하의 관계를 만족한다.
eψ(ν·Γ1,κ·Γ2)=eψ(Γ1,Γ2)ν·κ…(2)
[비퇴화성] 쌍선형 사상 eψ는 모든 Γ1∈G1 n (ψ)+ζ(ψ), Γ2∈G2 n (ψ)+ζ(ψ)를 순회군 GT의 단위원에 그리는 사상이 아니다.
[계산 가능성] 모든
Γ1∈G1 n (ψ)+ζ(ψ),Γ2∈G2 n (ψ)+ζ(ψ)…(3)
에 대하여 eψ(Γ1,Γ2)를 효율적으로 계산하는 알고리즘이 존재한다.
본 형태에서는, 이하와 같은 순회군 G1과 순회군 G2의 직적 G1×G2를 순회군 GT에 그리는 비퇴화한 쌍선형 사상을 사용하여 쌍선형 사상 eψ를 구성한다.
Pair:G1×G2→GT…(4)
본 형태의 쌍선형 사상 eψ는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))로 이루어지는 n(ψ)+ζ(ψ)차원 벡터(γ1,...,γn(ψ)+ζ(ψ))와, 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))로 이루어지는 n(ψ)+ζ(ψ)차원 벡터(γ1 *, ...,γn(ψ)+ζ(ψ) *)의 입력에 대하여, 순회군 GT의 1개의 원소를 출력한다.
eψ:Πβ=1 n(ψ)+ζ(ψ)Pair(γβ, γβ *)…(5)
쌍선형 사상 Pair는 순회군 G1의 1개의 원소와 순회군 G2의 1개의 원소의 세트를 입력으로 하고, 순회군 GT의 1개의 원소를 출력한다. 쌍선형 사상 Pair는 이하의 성질을 만족한다.
[쌍선형성] 쌍선형 사상 Pair는 모든 Ω1∈G1, Ω2∈G2 및 ν, κ∈Fq에 대해서 이하의 관계를 만족한다.
Pair(ν·Ω1,κ·Ω2)=Pair(Ω1,Ω2)ν·κ…(6)
[비퇴화성] 쌍선형 사상 Pair는 모든
Ω1∈G1,Ω2∈G2…(7)
을 순회군 GT의 단위원에 그리는 사상이 아니다.
[계산 가능성] 모든 Ω1∈G1, Ω2∈G2에 대해서 Pair(Ω1,Ω2)를 효율적으로 계산하는 알고리즘이 존재한다.
쌍선형 사상 Pair의 구체예는 Weil 페어링이나 Tate 페어링 등의 페어링 연산을 행하기 위한 함수이다(예를 들면, 참고 문헌 4 「Alfred. J. Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6, pp. 61-81」 등 참조). 타원곡선 E의 종류에 따라, Tate 페어링 등의 페어링 연산을 행하기 위한 함수와 소정의 함수 phi를 조합한 변경 페어링 함수 e(Ω1,phi(Ω2))(Ω1∈G1,Ω2∈G2)를 쌍선형 사상 Pair로서 사용해도 된다(예를 들면, 참고 문헌 2 등 참조). 페어링 연산을 컴퓨터 상에서 행하기 위한 알고리즘으로서는 주지의 Miller의 알고리즘(참고 문헌 5 「V. S. Miller, "Short Programs for functions on Curves," 1986, 인터넷 <http://crypto.stanford.edu/miller/miller.pdf>」 등이 존재한다. 페어링 연산을 효율적으로 행하기 위한 타원곡선이나 순회군의 구성 방법은 잘 알려져 있다(예를 들면, 참고 문헌 2, 참고 문헌 6 「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」, 참고 문헌 7 「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003」, 참고 문헌 8 「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」 등 참조).
ai(ψ)(i=1,...,n(ψ)+ζ(ψ)) : ai(ψ)는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. 기저 벡터 ai(ψ)의 일례는 κ1·g1∈G1을 i차원째의 요소로 하고, 나머지 n(ψ)+ζ(ψ)-1개의 요소를 순회군 G1의 단위원(가법적으로 「0」이라고 표현)으로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이다. 이 경우, n(ψ)+ζ(ψ)차원의 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))의 각 요소를 각각 열거하여 표현하면, 이하와 같아진다.
a1(ψ)=(κ1·g1,0,0,...,0)
a2(ψ)=(0,κ1·g1,0,...,0)…(8)
...
an (ψ)+ζ(ψ)(ψ)=(0,0,0,...,κ1·g1)
여기서, κ1은 가법단위원 0F 이외의 유한체 Fq의 원소로 이루어지는 상수이며, κ1∈Fq의 구체예는 κ1=1F이다. 기저 벡터 ai(ψ)는 직교기저이며, 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 표시된다. 즉, n(ψ)+ζ(ψ)차원의 기저 벡터 ai(ψ)는 상기 서술한 벡터 공간 V(ψ)를 펼친다.
ai *(ψ)(i=1,...,n(ψ)+ζ(ψ)) : ai *(ψ)는 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. 기저 벡터 ai *(ψ)의 일례는 κ2·g2∈G2를 i차원째의 요소로 하고, 나머지 n(ψ)+ζ(ψ)-1개의 요소를 순회군 G2의 단위원(가법적으로 「0」이라고 표현)으로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이다. 이 경우, 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))의 각 요소를 각각 열거하여 표현하면 이하와 같아진다.
a1 *(ψ)=(κ2·g2,0,0,...,0)
a2 *(ψ)=(0,κ2·g2,0,...,0)…(9)
...
an (ψ)+ζ(ψ) *(ψ)=(0,0,0,...,κ2·g2)
여기서, κ2는 가법단위원 0F 이외의 유한체 Fq의 원소로 이루어지는 상수이며, κ2∈Fq의 구체예는 κ2=1F이다. 기저 벡터 ai *(ψ)는 직교기저이며, 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 나타난다. 즉 n(ψ)+ζ(ψ)차원의 기저 벡터 ai *(ψ)는 상기 서술한 벡터 공간 V*(ψ)를 펼친다.
또한, 기저 벡터 ai(ψ)와 기저 벡터 ai *(ψ)는 0F를 제외한 유한체 Fq의 원소 τ=κ1·κ2에 대해서
eψ(ai(ψ), aj *(ψ))=gT τ·δ(i,j)…(10)
을 만족한다. 즉, i=j인 경우에는, 식(5)(6)의 관계로부터 이하의 관계가 만족된다.
eψ(ai(ψ), aj *(ψ))
= Pair(κ1·g1,κ2·g2)·Pair(0, 0)·...·Pair(0, 0)
= Pair(g1, g2)κ1·κ2·Pair(g1, g2)0·0·...·Pair(g1, g2)0·0
= Pair(g1, g2)κ1·κ2=gT τ
윗첨자 κ1,κ2는 각각 κ1,κ2를 나타낸다. 한편, i≠j인 경우에는 eψ(ai(ψ), aj *(ψ))=Πi=1 n(ψ)+ζ(ψ) Pair(ai(ψ), aj *(ψ))의 우변은 Pair(κ1·g1,κ2·g2)를 포함하지 않고, Pair(κ1·g1,0)와 Pair(0,κ2·g2)와 Pair(0,0)의 곱이 된다. 또한, 식(6)의 관계로부터 Pair(g1,0)=Pair(0, g2)=Pair(g1, g2)0를 만족한다. 그 때문에, i≠j인 경우에는 이하의 관계가 만족된다.
eψ(ai(ψ), aj *(ψ))=eψ(g1, g2)0=gT 0
특히, τ=κ1·κ2=1F인 경우(예를 들면, κ1=κ2=1F인 경우), 이하의 관계가 만족된다.
e(ai(ψ), aj*(ψ))=gT δ(i,j)…(11)
gT 0=1은 순회군 GT의 단위원이며, gT 1=gT는 순회군 GT의 생성원이다. 기저 벡터 ai(ψ)와 기저 벡터 ai *(ψ)는 쌍대 정규직교기저이며, 벡터 공간 V(ψ)와 벡터 공간 V*(ψ)는 쌍선형 사상을 구성 가능한 쌍대 벡터 공간〔쌍대 페어링 벡터 공간(DPVS:Dual Paring Vector space)〕이다.
A(ψ) : A(ψ)는 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))가 식(8)에 의해 표현되는 경우, 행렬 A(ψ)는 이하와 같아진다.
[수 2]
A*(ψ) : A*(ψ)는 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))가 식(9)에 의해 표현되는 경우, 행렬 A*(ψ)는 이하와 같아진다.
[수 3]
X(ψ) : X(ψ)는 유한체 Fq의 원소를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. 행렬 X(ψ)는 기저 벡터 ai(ψ)의 좌표변환에 사용된다. 행렬 X(ψ)의 i행j열(i=1,...,n(ψ)+ζ(ψ), j=1,...,n(ψ)+ζ(ψ))의 요소를 χi, j(ψ)∈Fq로 하면, 행렬 X(ψ)는 이하와 같아진다.
[수 4]
또한, 행렬 X(ψ)의 각 요소 χi, j(ψ)를 변환 계수라고 한다.
X*(ψ) : 행렬 X*(ψ)와 행렬 X(ψ)는 X*(ψ)=τ'·(X(ψ)-1)T의 관계를 만족한다. 단, τ'∈Fq는 유한체 Fq에 속하는 임의의 상수이며, 예를 들면, τ'=1F이다. X*(ψ)는 기저 벡터 ai *(ψ)의 좌표변환에 사용된다. 행렬 X*(ψ)의 i행j열의 요소를 χi, j *(ψ)∈Fq로 하면, 행렬 X*(ψ)는 이하와 같아진다.
[수 5]
또한, 행렬 X*(ψ)의 각 요소 χi, j *(ψ)를 변환 계수라고 한다.
이 경우, n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 단위행렬을 I(ψ)로 하면 X(ψ)·( X*(ψ))T=τ'·I(ψ)를 만족한다. 즉, 단위행렬을 이하와 같이 정의한다.
[수 6]
이것에 대해서 이하가 만족된다.
[수 7]
여기서, 이하와 같은 n(ψ)+ζ(ψ)차원 벡터를 정의한다.
χi →(ψ)=(χi,1(ψ),...,χi,n(ψ)+ζ(ψ)(ψ))…(18)
χj →*(ψ)=(χj,1 *(ψ),...,χj,n(ψ)+ζ(ψ) *(ψ))…(19)
그러면, 식(17)의 관계로부터, n(ψ)+ζ(ψ)차원 벡터 χi →(ψ)와 χj →*(ψ)의 내적은 이하와 같아진다.
χi →(ψ)·χj →*(ψ)=τ'·δ(i,j)…(20)
bi(ψ) : bi(ψ)는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. bi(ψ)는 행렬 X(ψ)를 사용하여 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))를 좌표변환함으로써 얻어진다. 구체적으로는 기저 벡터 bi(ψ)는 이하의 연산에 의해 얻어진다.
bi(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j(ψ)·aj(ψ)…(21)
예를 들면, 기저 벡터 aj(ψ)(j=1,...,n(ψ)+ζ(ψ))가 식(8)에 의해 표현되는 경우, 기저 벡터 bi(ψ)의 각 요소를 각각 열거하여 표현하면, 이하와 같아진다.
bi(ψ)=(χi,1(ψ)·κ1·g1,χi,2(ψ)·κ1·g1,
...,χi,n(ψ)+ζ(ψ)(ψ)·κ1·g1)…(22)
순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 bi(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 표시된다. 즉, n(ψ)+ζ(ψ)차원의 기저 벡터 bi(ψ)는 상기 서술한 벡터 공간 V(ψ)를 펼친다.
bi *(ψ) : bi *(ψ)는 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. bi *(ψ)는 행렬 X*(ψ)를 사용하여 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))를 좌표변환함으로써 얻어진다. 구체적으로는 기저 벡터 bi *(ψ)는 이하의 연산에 의해 얻어진다.
bi *(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j *(ψ)·aj *(ψ)…(23)
예를 들면, 기저 벡터 aj *(ψ)(j=1,...,n(ψ)+ζ(ψ))가 식(9)에 의해 표현되는 경우, 기저 벡터 bi *(ψ)의 각 요소를 각각 열거하여 표현하면 이하와 같아진다.
bi *(ψ)=(χi,1 *(ψ)·κ2·g2 ,χi,2 *(ψ)·κ2·g2,
...,χi,n(ψ)+ζ(ψ) *(ψ)·κ2·g2)…(24)
순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 표시된다. 즉, n(ψ)+ζ(ψ)차원의 기저 벡터 bi *(ψ)는 상기 서술한 벡터 공간 V*(ψ)를 펼친다.
또한, 기저 벡터 bi(ψ)와 기저 벡터 bi *(ψ)는 0F를 제외한 유한체 Fq의 원소 τ=κ1·κ2에 대해서 이하의 관계를 만족한다.
eψ(bi(ψ), bj *(ψ))=gT τ·τ'·δ(i,j)…(25)
즉, 식(5)(20)(22)(24)의 관계로부터 이하의 관계가 만족된다.
[수 8]
특히 τ=κ1·κ2=1F(예를 들면, κ1=κ2=1F) 및 τ'=1F인 경우, 이하의 관계가 만족된다.
eψ(bi(ψ), bj *(ψ))=gT δ(i,j)…(26)
기저 벡터 bi(ψ)와 기저 벡터 bi *(ψ)는 쌍대 페어링 벡터 공간(벡터 공간 V(ψ)와 벡터 공간 V*(ψ))의 쌍대 정규직교기저이다.
또한, 식(25)의 관계를 만족하는 것이면, 식(8)(9)에서 예시한 것 이외의 기저 벡터 ai(ψ) 및 ai *(ψ)나, 식(21)(23)에서 예시한 것 이외의 기저 벡터 bi(ψ) 및 bi *(ψ)를 사용해도 된다.
B(ψ) : B(ψ)는 기저 벡터 bi(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬이다. B(ψ)=X(ψ)·A(ψ)를 만족한다. 예를 들면, 기저 벡터 bi(ψ)가 식(22)에 의해 표현되는 경우, 행렬 B(ψ)는 이하와 같아진다.
[수 9]
B*(ψ) : B*(ψ)는 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. B*(ψ)=X*(ψ)·A*(ψ)를 만족한다. 예를 들면, 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))가 식(24)에 의해 표현되는 경우, 행렬 B*(ψ)는 이하와 같아진다.
[수 10]
v(λ)→ : v(λ)→는 유한체 Fq의 원소를 요소로 하는 n(λ)차원 벡터를 나타낸다.
v(λ)→=(v1(λ),...,vn (λ)(λ))∈Fq n (λ)…(29)
vμ(λ) : vμ(λ)는 n(λ)차원 벡터 v(λ)→의 μ(μ=1,...,n(λ))번째의 요소를 나타낸다.
w(λ)→ : w(λ)→는 유한체 Fq의 원소를 요소로 하는 n(λ)차원 벡터를 나타낸다.
w(λ)→=(w1(λ),...,wn (λ)(λ))∈Fq n (λ)…(30)
wμ(λ) : wμ(λ)는 n(λ)차원 벡터 w(λ)→의 μ(μ=1,...,n(λ))번째의 요소를 나타낸다.
Enc : Enc는 공통 키 암호 방식의 암호화 처리를 나타내는 공통 키 암호 함수를 나타낸다.
EncK(M) : EncK(M)는 공통 키 K를 사용하여, 공통 키 암호 함수 Enc에 따라서 평문 M을 암호화하여 얻어진 암호문을 나타낸다.
Dec : Dec는 공통 키 암호 방식의 복호 처리를 나타내는 공통 키 복호 함수를 나타낸다.
DecK(C) : DecK(C)는 공통 키 K를 사용하여, 공통 키 복호 함수 Dec에 따라서 암호문 C를 복호하여 얻어진 복호 결과를 나타낸다.
충돌 곤란한 함수 : 「충돌 곤란한 함수」는 충분히 큰 시큐리티 파라미터 sec에 대하여 이하의 조건을 만족하는 함수 h, 또는 함수 h로 간주할 수 있는 함수를 나타낸다.
Pr[A(h)=(x,y)|h(x)=h(y)∧x≠y]<ε(sec)
단, Pr[·]은 사상 [·]의 확률이며, A(h)는 함수 h에 대하여 h(x)=h(y)를 만족하는 값 x, y(x≠y)를 산출하는 확률적 다항식 시간 알고리즘이며, ε(sec)는 시큐리티 파라미터 sec에 대한 다항식이다. 충돌 곤란한 함수의 예는 참고 문헌 1에 개시된 「cryptographic hash function」 등의 해시 함수이다.
랜덤 함수 : 「랜덤 함수」는 집합 Φζ의 부분 집합 φζ에 속하는 함수, 또는, 당해 부분 집합 φζ에 속하는 함수로 간주할 수 있는 함수를 나타낸다. 단, 집합 Φζ는 집합 {0,1}ζ의 원소를 집합 {0,1}ζ의 원소에 그리는 모든 함수의 집합이다. 임의의 확률적 다항식 시간 알고리즘은 집합 Φζ와 부분 집합 φζ를 구별할 수 없다. 랜덤 함수의 예는 상기 서술한 바와 같은 해시 함수이다.
단사함수 : 「단사함수」는 그 정의역에 속하는 서로 상이한 원소의 상을 그 치역에 속하는 동일한 원소에 사상하지 않는 함수, 또는 그 정의역에 속하는 서로 상이한 원소의 상을 그 치역에 속하는 동일한 원소에 사상하지 않는 함수로 간주할 수 있는 함수를 나타낸다. 즉 「단사함수」는 그 정의역에 속하는 원소를 그 치역에 속하는 어느 하나의 원소에 일대일로 사상하는 함수, 또는 그 정의역에 속하는 원소를 그 치역에 속하는 어느 하나의 원소에 일대일로 사상하는 함수로 간주할 수 있는 함수이다. 단사함수의 예는 참고 문헌 1에 개시된 「KDF(Key Derivation Function)」 등의 해시 함수이다.
HS(S=1,...,Smax) : HS는 2개의 값을 입력으로 하여 1개의 유한체 Fq의 원소를 출력하는 충돌 곤란한 함수를 나타낸다. Smax는 정의 정수 상수이다. 함수 HS의 예는 1개의 순회군 GT의 원소와 1개의 바이너리 계열을 입력으로 하여 1개의 유한체 Fq의 원소를 출력하는 충돌 곤란한 함수나, 2개의 바이너리 계열을 입력으로 하여 1개의 유한체 Fq의 원소를 출력하는 충돌 곤란한 함수 등이다. 함수 HS의 구체예는 입력된 2개의 값을 1개의 바이너리 계열에 그리는 단사함수와, 참고 문헌 1에 개시된 「cryptographic hash function」 등의 해시 함수와, 「바이너리 계열을 유한체의 원소에 그리는 변환 함수(예를 들면 참고 문헌 1의 「Octet string and integer/finite field conversion」 참조)를 포함하는 함수이다. 입력된 2개의 값을 1개의 바이너리 계열에 그리는 단사함수의 구체예는 입력된 1개의 순회군 GT의 원소를 바이너리 계열에 사상하여 그 바이너리 계열과 입력된 1개의 바이너리 계열의 배타적 논리합을 출력하는 함수, 또는 입력된 2개의 바이너리 계열의 배타적 논리합을 출력하는 함수 등이다. 안전성의 관점에서 함수 HS는 일방향성 함수인 것이 바람직하고, 랜덤 함수인 것이 보다 바람직하다. 함수 HS의 일부만이 일방향성 함수나 랜덤 함수여도 되지만, 안전성의 관점에서 모든 함수 HS는 일방향성 함수인 것이 바람직하고, 랜덤 함수인 것이 보다 바람직하다. 안전성의 관점에서 함수 HS(S=1,...,Smax)는 서로 상이한 함수인 것이 바람직하다.
R : R은 1개의 값을 입력으로 하여 1개의 바이너리 계열을 출력하는 단사함수를 나타낸다. 단사함수 R의 예는 1개의 순회군 GT의 원소를 입력으로 하여 1개의 바이너리 계열을 출력하는 함수나, 1개의 바이너리 계열을 입력으로 하여 1개의 바이너리 계열을 출력하는 함수 등이다. 단사함수 R의 구체예는 입력된 1개의 값을 1개의 바이너리 계열에 그리는 단사함수와 참고 문헌 1에 개시된 「cryptographic hash function」 등의 해시 함수를 포함하는 함수, 또는 참고 문헌 1에 개시된 「cryptographic hash function」 등의 해시 함수이다. 단사함수 R은 일방향성 함수인 것이 바람직하고, 랜덤 함수인 것이 보다 바람직하다. 안전성의 관점에서 단사함수 R은 일방향성 함수인 것이 바람직하고, 랜덤 함수인 것이 보다 바람직하다.
〔함수 암호 방식〕
다음에 함수 암호 방식의 기본적인 구성에 대해서 설명한다.
함수 암호 방식은 제1 정보와 제2 정보의 조합에 의해 정해지는 논리식의 진리값이 「참」이 되는 경우에 암호문이 복호되는 방식이다. 「제1 정보」와 「제2 정보」의 일방이 암호문에 메워넣어지고, 타방이 키 정보에 메워넣어진다. 예를 들면, 「"Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products," with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology」(참고 문헌 9)에 개시된 술어 암호 방식은 함수 암호 방식의 일종이다.
이 이외에도 다양한 공지의 함수 암호 방식이 존재하지만, 이하에서는 미공개의 새로운 함수 암호 방식을 설명한다. 이하에 설명하는 새로운 함수 암호 방식에서는 비밀 정보에 따른 값이 소정의 논리식에 따른 태양에서 계층적으로 비밀 분산된다. 소정의 논리식은 제1 정보와 제2 정보의 조합에 의해 진리값이 정해지는 명제변수를 포함하고, 필요에 따라서 추가로 논리기호 ∧,∨,¬의 어느 하나 또는 모두를 포함한다. 각 명제변수의 진리값이 특정됨으로써 정해지는 당해 소정의 논리식의 진리값이 「참」이 되는 경우에 비밀 정보에 따른 값이 복원되고, 그것에 기초하여 암호문이 복호된다.
<논리식과 계층적인 비밀 분산의 관계>
상기 서술한 소정의 논리식과 계층적인 비밀 분산의 관계를 설명한다.
비밀 분산은 역치 Kt(Kt≥1)개 이상의 쉐어 정보가 얻어진 경우에만 비밀 정보가 복원되도록, 비밀 정보를 N(N≥2)개의 쉐어 정보에 분산하는 것이다. Kt=N을 만족하는 비밀 분산의 방식(SSS:Secret Sharing Scheme)을 N-out-of-N 분산 방식(또는 「N-out-of-N 역치 분산 방식」)이라고 하고, Kt<N을 만족하는 비밀 분산의 방식을 Kt-out-of-N 분산 방식(또는 「Kt-out-of-N 역치 분산 방식」)이라고 한다(예를 들면, 참고 문헌 10 「쿠로사와 카오루, 오가타 와카하, "현대 암호의 기초수리(전자정보통신 렉처 시리즈)", 코로나사, 2004년 3월, p.116-119」, 참고 문헌 11 「A. Shamir, "How to Share a Secret", Communications of the ACM, November 1979, Volume 22, Number 11, pp. 612-613.」 등 참조).
N-out-of-N 분산 방식에서는 모든 쉐어 정보 share(1) ,...,share(N)이 주어지면 비밀 정보 SE를 복원할 수 있는데, 임의의 N-1개의 쉐어 정보 share(φ1) ,...,share(φn-1)이 주어져도 비밀 정보 SE의 정보는 전혀 얻어지지 않는다. 이하에, N-out-of-N 분산 방식의 일례를 나타낸다.
·SH1,...,SHN -1을 랜덤으로 선택한다.
·SHN=SE-(SH1+...+SHN -1)의 계산을 행한다.
·SH1,...,SHN을 각 쉐어 정보 share(1) ,...,share(N)로 한다.
·모든 쉐어 정보 share(1) ,...,share(N)이 주어지면, 이하의 복원 처리에 의해 비밀 정보 SE의 복원이 가능하다.
SE=share(1)+...+share(N)…(31)
Kt-out-of-N 분산 방식은 임의의 상이한 Kt개의 쉐어 정보 share(φ1),...,share(φKt)가 주어지면 비밀 정보 SE를 복원할 수 있는데, 임의의 Kt-1개의 쉐어 정보 share(φ1),...,share(φKt -1)가 주어져도 비밀 정보 SE의 정보는 전혀 얻어지지 않는다. 첨자인 Kt는 Kt를 나타낸다. 이하에 Kt-out-of-N 분산 방식의 일례를 나타낸다.
·f(0)=SE를 만족하는 Kt-1차의 다항식 f(x)=ξ0+ξ1·x+ξ2·x2+...+ξKt -1·xKt-1를 랜덤으로 선택한다. 즉, ξ0=SE로 하고, ξ1,..., ξKt -1을 랜덤으로 선택한다. 쉐어 정보를 share(ρ)=(ρ, f(ρ))(ρ=1,...,N)로 한다. (ρ, f(ρ))로부터 ρ 및 f(ρ)의 추출이 가능하며, (ρ, f(ρ))의 예는 ρ와 f(ρ)의 비트 결합값이다.
·임의의 상이한 Kt개의 쉐어 정보 share(φ1),...,share(φKt)((φ1,...,φKt)⊂(1,...,N))가 얻어진 경우, 예를 들면, 라그랑지(Lagrange)의 보간 공식을 사용하고, 이하와 같은 복원 처리에 의해 비밀 정보 SE의 복원이 가능하다.
SE=f(0)=LA1·f(φ1)+...+ LAKt·f(φKt)…(32)
[수 11]
은 선두부터 ρ번째의 피연산자〔분모의 요소(φρ-φρ), 분자의 요소(x-φρ)〕가 존재하지 않는 것을 의미한다. 즉, 식(33)의 분모는 이하와 같이 표시된다.
(φρ-φ1)·...·(φρ-φρ-1)·(φρ-φρ+1)·...·(φρ-φKt)
식(33)의 분자는 이하와 같이 표시된다.
(x-φ1)·...·(x-φρ-1)·(x-φρ+1)·...·(x-φKt)
상기 서술한 각 비밀 분산은 체상에서도 실행 가능하다. 또, 이들을 확장하여 비밀 정보 SE에 따른 값을 쉐어 정보 share에 따른 값으로 비밀 분산할 수도 있다. 비밀 정보 SE에 따른 값은 비밀 정보 SE 그 자체나 비밀 정보 SE의 함수값이며, 쉐어 정보 share에 따른 값은 쉐어 정보 share 그 자체나 쉐어 정보의 함수값이다. 예를 들면, 유한체 Fq의 원소인 비밀 정보 SE∈Fq에 따른 순회군 GT의 원소 gT SE∈GT를 비밀 정보 SE의 각 쉐어 정보 share(1), share(2)에 따른 순회군 GT의 원소 gT share (1),gT share (2)∈GT에 비밀 분산할 수도 있다. 상기 서술한 비밀 정보 SE는 쉐어 정보 share의 선형 결합이 된다(식(31)(32)). 비밀 정보 SE가 쉐어 정보 share의 선형 결합이 되는 비밀 분산 방식을 선형 비밀 분산 방식이라고 한다.
상기 서술한 소정의 논리식은 비밀 정보를 계층적으로 비밀 분산하여 얻어지는 나무구조 데이터에 의해 표현할 수 있다. 즉, 드·모르간 법칙에 의해, 상기 서술한 소정의 논리식은 리터럴로 이루어지는 논리식, 또는 논리기호 ∧, ∨의 적어도 일부와 리터럴로 이루어지는 논리식(이들을 「표준형 논리식」이라고 부르기로 함)에 의해 표현할 수 있고, 이 표준형 논리식은 비밀 정보를 계층적으로 비밀 분산하여 얻어지는 나무구조 데이터에 의해 표현할 수 있다.
표준형 논리식을 표현하는 나무구조 데이터는 복수의 노드를 포함하고, 적어도 일부의 노드는 1개 이상의 자노드의 친노드로 되어 있고, 친노드의 1개는 루트노드로 되어 있고, 자노드의 적어도 일부는 잎노드로 되어 있다. 루트노드의 친노드나, 잎노드의 자노드는 존재하지 않는다. 루트노드에는 비밀 정보에 따른 값이 대응하고, 각 친노드의 자노드에는 당해 친노드에 대응하는 값을 비밀 분산하여 얻어진 쉐어 정보에 따른 값이 대응한다. 각 노드에서의 비밀 분산 형태(비밀 분산 방식이나 역치)는 표준형 논리식에 따라 정해진다. 또, 각 잎노드에는 표준형 논리식을 구성하는 각 리터럴이 대응하고, 당해 각 리터럴의 진리값은 제1 정보와 제2 정보의 조합에 의해 정해진다.
여기서, 진리값이 참이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지만, 진리값이 거짓이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지 않는 것으로 한다. 또, 상기 서술한 비밀 분산의 성질에 의해, 친노드에 대응하는 쉐어 정보에 따른 값(그 친노드가 루트노드이면 비밀 정보에 따른 값)은 그 자노드에 대응하는 쉐어 정보에 따른 값이 당해 친노드에 대응하는 역치 이상의 개수만큼 얻어진 경우에만 복원된다. 그 때문에, 어느 잎노드에 대응하는 리터럴의 진리값이 참이 되었는지와 나무구조 데이터의 구성(각 노드에서의 비밀 분산의 형태를 포함함)에 따라, 최종적으로 루트노드에 대응하는 비밀 정보에 따른 값을 복원할 수 있는지 여부가 정해진다. 각 잎노드에 대응하는 각 리터럴의 진리값이 표준형 논리식의 진리값을 참으로 하는 경우에만 최종적으로 루트노드에 대응하는 비밀 정보에 따른 값을 복원할 수 있도록 나무구조 데이터가 구성되어 있는 경우, 이러한 나무구조 데이터는 표준형 논리식을 표현한다. 이러한 표준형 논리식을 표현하는 나무구조 데이터는 용이하게 설정할 수 있다. 이하에 구체예를 나타낸다.
도 1은 명제변수 PRO(1), PRO(2)와 명제변수 PRO(3)의 부정 ¬PRO(3)와 논리기호 ∧, ∨를 포함하는 표준형 논리식 PRO(1)∧PRO(2)∨¬PRO(3)를 표현하는 나무구조 데이터를 예시하는 도면이다. 도 1에 예시하는 나무구조 데이터는 복수의 노드 N1,...,N5를 포함한다. 노드 N1은 노드 N2, N5의 친노드가 되고, 노드 N2는 노드 N3, N4의 친노드가 되고, 친노드의 1개 노드 N1이 루트노드가 되고, 자노드의 일부인 노드 N3, N4, N5가 잎노드가 된다. 노드 N1에는 비밀 정보 SE에 따른 값이 대응하고, 노드 N1의 자노드 N2, N5에는 비밀 정보 SE에 따른 값이 1-out-of-2 분산 방식으로 비밀 분산된 각 쉐어 정보 SE, SE에 따른 값이 각각 대응한다. 노드 N2의 자노드 N3, N4에는 쉐어 정보 SE에 따른 값이 2-out-of-2 분산 방식으로 비밀 분산된 각 쉐어 정보 SE-SH1, SH1에 따른 값이 각각 대응한다. 즉, 잎노드 N3에는 쉐어 정보 share(1)=SE-SH1에 따른 값이 대응하고, 잎노드 N4에는 쉐어 정보 Share(2)=SH1에 따른 값이 대응하고, 잎노드 N5에는 쉐어 정보 share(3)=SE에 따른 값이 대응한다. 잎노드 N3, N4, N5에는 표준형 논리식 PRO(1)∧PRO(2)∨¬PRO(3)을 구성하는 각 리터럴 PRO(1), PRO(2), ¬PRO(3)가 각각 대응하고, 당해 각 리터럴 PRO(1), PRO(2), ¬PRO(3)의 진리값은 제1 정보와 제2 정보의 조합에 의해 정해진다. 여기서, 진리값이 참이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지만, 진리값이 거짓이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지 않는다. 이 경우, 제1 정보와 제2 정보의 조합이 표준형 논리식 PRO(1)∧PRO(2)∨¬PRO(3)의 진리값을 참으로 하는 경우에만 비밀 정보 SE에 따른 값이 복원된다.
도 2는 명제변수 PRO(1), PRO(2), PRO(3), PRO(6), PRO(7)와 명제변수 PRO(4), PRO(5)의 부정 ¬PRO(4), ¬PRO(5)와 논리기호 ∧, ∨를 포함하는 표준형 논리식 (PRO(1)∧PRO(2))∨(PRO(2)∧PRO(3))∨(PRO(1)∧PRO(3))∨¬PRO(4)∨(¬PRO(5)∨PRO(6))∧PRO(7)을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 2에 예시하는 나무구조 데이터는 복수의 노드 N1,...,N11을 포함한다. 노드 N1은 노드 N2, N6, N7의 친노드가 되고, 노드 N2는 노드 N3, N4, N5의 친노드가 되고, 노드 N7은 노드 N8, N11의 친노드가 되고, 노드 N8은 노드 N9, N10의 친노드가 되고, 친노드의 1개인 노드 N1이 루트노드가 되고, 노드 N3, N4, N5, N6, N9, N10, N11이 잎노드가 된다. 노드 N1에는 비밀 정보 SE에 따른 값이 대응하고, 노드 N1의 자노드 N2, N6, N7에는 비밀 정보 SE에 따른 값이 1-out-of-3 분산 방식으로 비밀 분산된 각 쉐어 정보 SE, SE, SE에 따른 값이 각각 대응한다. 노드 N2의 자노드 N3, N4, N5에는 쉐어 정보 SE에 따른 값이 2-out-of-3 분산 방식으로 비밀 분산된 각 쉐어 정보(1,f(1)),(2,f(2)),(3,f(3))에 따른 값이 각각 대응한다. 노드 N7의 자노드 N8, N11에는 쉐어 정보 SE에 따른 값이 2-out-of-2 분산 방식으로 비밀 분산되어 얻어진 각 쉐어 정보 SH4, SE-SH4에 따른 값이 각각 대응한다. 노드 N8의 자노드 N9, N10에는 쉐어 정보 SH4에 따른 값이 1-out-of-2 분산 방식으로 비밀 분산하여 얻어진 각 쉐어 정보 SH4, SH4에 따른 값이 각각 대응한다. 즉, 잎노드 N3에는 쉐어 정보 share(1)=(1,f(1))에 따른 값이 대응하고, 잎노드 N4에는 쉐어 정보 share(2)=(2,f(2))에 따른 값이 대응하고, 잎노드 N5에는 쉐어 정보 share(3)=(3,f(3))에 따른 값이 대응하고, 잎노드 N6에는 쉐어 정보 share(4)=SE에 따른 값이 대응하고, 잎노드 N9에는 쉐어 정보 share(5)=SH4에 따른 값이 대응하고, 잎노드 N10에는 쉐어 정보 share(6)=SH4에 따른 값이 대응하고, 잎노드 N11에는 쉐어 정보 share(7)=SE-SH4에 따른 값이 대응한다. 또, 잎노드인 노드 N3, N4, N5, N6, N9, N10, N11에는 표준형 논리식 (PRO(1)∧PRO(2))∨(PRO(2)∧PRO(3))∨(PRO(1)∧PRO(3))∨¬PRO(4)∨(¬PRO(5)∨PRO(6))∧PRO(7)을 구성하는 각 리터럴 PRO(1), PRO(2), PRO(2), PRO(3), PRO(1), PRO(3), ¬PRO(4), ¬PRO(5), PRO(6), PRO(7)이 각각 대응하고, 각 리터럴 PRO(1), PRO(2), PRO(2), PRO(3), PRO(1), PRO(3), ¬PRO(4), ¬PRO(5), PRO(6), PRO(7)의 진리값은 제1 정보와 제2 정보의 조합에 의해 정해진다. 여기서, 진리값이 참이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지만, 진리값이 거짓이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지 않는다. 이 경우, 제1 정보와 제2 정보의 조합이 표준형 논리식 (PRO(1)∧PRO(2))∨(PRO(2)∧PRO(3))∨(PRO(1)∧PRO(3))∨¬PRO(4)∨(¬PRO(5)∨PRO(6))∧PRO(7)의 진리값을 참으로 하는 경우에만 비밀 정보 SE에 따른 값이 복원된다.
<액세스 구조>
상기 서술한 바와 같이 비밀 정보를 계층적으로 비밀 분산하여 얻어지는 나무구조 데이터에 의해 소정의 논리식을 표현한 경우, 제1 정보와 제2 정보의 조합에 대하여 얻어지는 잎노드에서의 쉐어 정보에 따른 값으로부터 비밀 정보에 따른 값을 복원할 수 있는지 여부에 의해, 제1 정보와 제2 정보의 조합에 의해 정해지는 논리식의 진리값이 「참」이 되는지 「거짓」이 되는지를 판정할 수 있다. 이하, 제1 정보와 제2 정보의 조합에 의해 정해지는 논리식의 진리값이 「참」이 되는 경우에 제1 정보와 제2 정보의 조합을 받아들이고, 「거짓」이 되는 경우에 제1 정보와 제2 정보의 조합을 거절하는 구조를 액세스 구조라고 한다.
상기 서술한 바와 같이 소정의 논리식을 표현한 나무구조 데이터의 잎노드의 총수를 Ψ로 하고, 각 잎노드에 대응하는 식별자를 λ=1,...,Ψ로 한다. 각 잎노드에 대응하는 n(λ)차원 벡터 v(λ)→의 집합 {v(λ)→}λ=1,...,Ψ를 제1 정보로 하고, n(λ)차원 벡터 w(λ)→의 집합 {w(λ)→}λ=1,...,Ψ를 제2 정보로 한다. 또, 상기 서술한 나무구조 데이터를 라벨이 붙은 행렬 LMT(MT, LAB)로서 실장한다.
라벨이 붙은 행렬 LMT(MT, LAB)는 이하의 Ψ행COL열(COL≥1)의 행렬 MT와, 행렬 MT의 각 행 λ=1,...,Ψ에 대응지어진 라벨 LAB(λ)을 포함한다.
[수 12]
행렬 MT의 각 요소 mtλ,col(col=1,...,COL)는 다음의 2개의 요건을 만족한다. 첫번째로, 상기 서술한 바와 같이 소정의 논리식을 표현한 나무구조 데이터의 루트노드에 비밀 정보 SE∈Fq에 따른 값이 대응하는 경우, 미리 정해진 유한체 Fq의 원소를 요소로 하는 COL차원 벡터 GV→와 비밀 정보 SE에 따른 유한체 Fq의 원소를 요소로 하는 COL차원 벡터 CV→ 사이에 이하의 관계가 성립한다.
GV→=(gv1,...,gvCOL)∈Fq COL…(35)
CV→=(cv1,...,cvCOL)∈Fq COL…(36)
SE=GV→·(CV→)T…(37)
이하에 COL차원 벡터 GV→의 구체예를 나타낸다.
GV→=(1F,...,1F)∈Fq COL…(38)
단, GV→=(1F,0F,...,0F)∈Fq COL 등의 그 밖의 COL차원 벡터가 GV→여도 된다.
두번째로, 식별자 λ에 대응하는 잎노드에 쉐어 정보 share(λ)∈Fq에 따른 값이 대응하는 경우, 이하와 관계가 성립한다.
(share(1),...,share(Ψ))T=MT·(CV→)T…(39)
상기 서술한 바와 같이 소정의 논리식을 표현한 나무구조 데이터가 정해지면, 이들 2개의 요건을 만족하는 행렬 MT를 선택하는 것은 용이하다. 또, 비밀 정보 SE나 쉐어 정보 share(λ)가 변수였다고 해도, 이들 2개의 요건을 만족하는 행렬 MT를 선택하는 것은 용이하다. 즉, 행렬 MT를 정한 후에 비밀 정보 SE나 쉐어 정보 share(λ)의 값이 정해져도 된다.
또, 행렬 MT의 각 행 λ=1,...,Ψ에 대응지어진 라벨 LAB(λ)은 식별자 λ에 대응하는 잎노드에 대응하는 리터럴 (PRO(λ) 또는 ¬PRO(λ))에 대응한다. 여기서, 명제변수 PRO(λ)의 진리값이 「참」인 것과 제1 정보 VSET1={λ,v(λ)→|λ=1,...,Ψ}가 포함하는 v(λ)→와 제2 정보 VSET2={λ,w(λ)→|λ=1,...,Ψ}가 포함하는 w(λ)→의 내적 v(λ)→·w(λ)→이 0이 되는 것이 등가라고 취급하고, 명제변수 PRO(λ)의 진리값이 「거짓」인 것과 내적 v(λ)→·w(λ)→이 0이 되지 않는 것이 등가라고 취급한다. PRO(λ)에 대응하는 라벨 LAB(λ)이 v(λ)→를 나타내고, ¬PRO(λ)에 대응하는 라벨 LAB(λ)이 ¬v(λ)→를 나타내는 것으로 한다. 또한, ¬v(λ)→는 v(λ)→의 부정을 나타내는 논리식이며, ¬v(λ)→로부터 v(λ)→의 특정이 가능하다. LAB(λ)이 v(λ)→를 나타내는 것을 「LAB(λ)=v(λ)→」로 표기하고, LAB(λ)이 ¬v(λ)→를 나타내는 것을 「LAB(λ)=¬v(λ)→」로 표기한다. LAB(λ)(λ=1,...,Ψ)의 집합 {LAB(λ)}λ=1,...,Ψ을 LAB으로 표기한다.
Ψ차원 벡터 TFV→가 이하와 같이 정의된다.
TFV→=(tfv(1),...,tfv(Ψ))…(40)
요소 tfv(λ)는 내적 v(λ)→·w(λ)→이 0일 때에 tfv(λ)=1이 되고, 0 이외일 때에 tfv(λ)=0이 된다.
tfv(λ)=1 (PRO(λ)가 참) if v(λ)→·w(λ)→=0…(41)
tfv(λ)=0 (PRO(λ)가 거짓) if v(λ)→·w(λ)→≠0…(42)
또한, 이하의 논리식의 진리값이 「참」이 될 때 LIT(λ)=1로 표기하고 「거짓」이 될 때 LIT(λ)=0로 표기한다.
{(LAB(λ)=v(λ)→)∧(tfv(λ)=1)}∨{(LAB(λ)=¬v(λ)→)∧(tfv(λ)=0)}…(43)
즉, 식별자 λ에 대응하는 잎노드에 대응하는 리터럴의 진리값이 「참」이 될 때 LIT(λ)=1로 표기하고 「거짓」이 될 때 LIT(λ)=0로 표기한다. 그러면, 행렬 MT가 포함하는 행 벡터 중 LIT(λ)=1이 되는 행 벡터 mtλ →=(mtλ,1,...,mtλ, COL)만으로 이루어지는 부분 행렬 MTTFV는 이하와 같이 표기할 수 있다.
MTTFV=(MT)LIT (λ)=1…(44)
상기 서술한 비밀 분산 방식이 선형 비밀 분산 방식인 경우, 식별자 λ에 대응하는 쉐어 정보 share(λ)에 따른 값으로부터 비밀 정보 SE에 따른 값을 복원할 수 있는 것과, 식별자 λ에 대응하는 행 벡터 mtλ →로 펼쳐지는 벡터 공간에 COL차원 벡터 GV→가 속하는 것은 등가이다. 즉, 식별자 λ에 대응하는 행 벡터 mtλ →로 펼쳐지는 벡터 공간에 COL차원 벡터 GV→가 속하는지 여부를 판정함으로써, 식별자 λ에 대응하는 쉐어 정보 share(λ)에 따른 값으로부터 비밀 정보 SE에 따른 값을 복원할 수 있는지 여부를 판정할 수 있다. 행 벡터 mtλ →로 펼쳐지는 벡터 공간은 행 벡터 mtλ →의 선형 결합으로 나타낼 수 있는 벡터 공간을 의미한다.
여기서, 상기 서술한 부분 행렬 MTTFV의 각 행 벡터 mtλ →로 펼쳐지는 벡터 공간 span<MTTFV>에 COL차원 벡터 GV→가 속하는 경우에 제1 정보와 제2 정보의 조합이 받아들여지고, 그렇지 않은 경우에 제1 정보와 제2 정보의 조합이 거절되는 것으로 한다. 이것에 의해, 상기 서술한 액세스 구조가 구체화된다. 또한, 상기 서술한 바와 같이 라벨이 붙은 행렬 LMT(MT, LAB)이 제1 정보에 대응하는 경우, 액세스 구조가 제1 정보와 제2 정보의 조합을 받아들이는 것을 「액세스 구조가 제2 정보를 받아들인다」고 하고, 액세스 구조가 제1 정보와 제2 정보의 조합을 받아들이지 않는 것을 「액세스 구조가 제2 정보를 거절한다」고 한다.
받아들임 if GV→∈span<MTTFV>
거절 if ¬(GV→∈span<MTTFV>)
GV→∈span<MTTFV>의 경우, 이하를 만족하는 계수 const(μ)가 존재하고, 이러한 계수 const(μ)는 행렬 MT의 사이즈의 오더의 다항식 시간으로 구할 수 있다.
SE=Σμ∈ SETconst(μ)·share(μ)…(45)
{const(μ)∈Fq|μ∈SET},SET⊆{1,...,λ|LIT(λ)=1}
<액세스 구조를 사용한 함수 암호 방식의 기본 방식>
이하에서는, 액세스 구조를 사용한 함수 암호 방식에 의해 키 캡슐화 메커니즘 KEM(Key Encapsulation Mechanisms)을 구성하는 경우의 기본 방식을 예시한다. 이 기본 방식은 Setup(1sec,(Ψ;n(1),...,n(Ψ))), GenKey(PK,MSK,LMT(MT,LAB)), Enc(PK,M,{λ,v(λ)→|λ=1,...,Ψ})(v1(λ)=1F), Dec(PK,SKS,C)를 포함한다. 또, 제2 정보 VSET2={λ,w(λ)→|λ=1,...,Ψ}의 1번째의 요소 w1(λ)가 1F가 된다.
[Setup(1sec,(Ψ;n(1),...,n(Ψ))) : 셋업]
-입력 : 1sec,(Ψ;n(1),...,n(Ψ))
-출력 : 마스터 키 정보 MSK, 공개 파라미터 PK
Setup에서는 각 ψ=0,...,Ψ에 대해서 이하의 처리가 실행된다.
(Setup-1) 1sec을 입력으로 하여 시큐리티 파라미터 sec에서의 위수 q, 타원곡선 E, 순회군 G1, G2, GT, 쌍선형 사상 eψ(ψ=0,...,Ψ)이 생성된다(param=(q, E, G1, G2, GT, eψ)).
(Setup-2) τ'∈Fq가 선택되고, X*(ψ)=τ'·(X(ψ)-1)T를 만족하는 행렬 X(ψ),X*(ψ)이 선택된다.
(Setup-3) 기저 벡터 ai(ψ) (i=1,...,n(ψ)+ζ(ψ))가 식(21)에 따라 좌표변환되어, n(ψ)+ζ(ψ)차원의 기저 벡터 bi(ψ) (i=1,...,n(ψ)+ζ(ψ))가 생성된다. 기저 벡터 bi(ψ) (i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬 B(ψ)가 생성된다.
(Setup-4) 기저 벡터 ai *(ψ) (i=1,...,n(ψ)+ζ(ψ))가 식(23)에 따라 좌표변환되어, n(ψ)+ζ(ψ)차원의 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))가 생성된다. 기저 벡터 bi *(ψ) (i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬 B*(ψ)가 생성된다.
(Setup-5) B*(ψ)^의 집합 {B*(ψ)^}ψ=0,...,Ψ을 마스터 키 정보 MSK={B*(ψ)^}ψ=0,...,Ψ로 한다. 또, B(ψ)^의 집합 {B(ψ)^}ψ=0,...,Ψ와 1sec과 param을 공개 파라미터 PK로 한다. 단, B*(ψ)^는 행렬 B*(ψ) 또는 그 부분 행렬이며, B(ψ)^는 행렬 B(ψ) 또는 그 부분 행렬이다. 또, 집합 {B*(ψ)^}ψ=0,...,Ψ은 적어도 b1 *(0),b1 *(λ) …,bn (λ) *(λ)(λ=1,...,Ψ)을 포함한다. 집합 {B(ψ)^}ψ=0,...,Ψ은 적어도 b1(0),b1(λ),…,bn(λ)(λ)(λ=1,...,Ψ)을 포함한다. 이하에 일례를 나타낸다.
·n(0)+ζ(0)≥5, ζ(λ)=3·n(λ)
·B(0)^=(b1(0) b3(0) b5(0))T
·B(λ)^=(b1(λ) … bn (λ)(λ) b3 ·n(λ)+1(λ) … b4 ·n(λ)(λ))T(λ=1,...,Ψ)
·B*(0)^=(b1 *(0) b3 *(0) b4 *(0))T
·B*(λ)^=(b1 *(λ) … bn (λ) *(λ) b2 ·n(λ)+1 *(λ) … b3 ·n(λ) *(λ))T(λ=1,...,Ψ)
[GenKey(PK, MSK, LMT(MT, LAB)) : 키 정보 생성]
-입력 : 공개 파라미터 PK, 마스터 키 정보 MSK, 제1 정보 VSET1={λ,v(λ)→|λ=1,...,Ψ}에 대응하는 라벨이 붙은 행렬 LMT(MT, LAB)
-출력 : 키 정보 SKS
(GenKey-1) 식(35)-(39)을 만족하는 비밀 정보 SE에 대하여 이하의 처리가 실행된다.
D*(0)=-SE·b1 *(0)+Σι=2 Icoefι(0)·bι *(0)…(46)
단, I는 2 이상 n(0)+ζ(0) 이하의 상수이다. coefι(0)∈Fq는 상수 또는 난수이다. 「난수」는 진성 난수나 의사 난수를 의미한다. 이하에 D*(0)의 일례를 나타낸다. 또한, 식(47)의 coef4(0)는 난수이다.
D*(0)=-SE·b1 *(0)+b3 *(0)+coef4(0)·b4 *(0)…(47)
(GenKey-2) 식(35)-(39)을 만족하는 share(λ)(λ=1,...,Ψ)에 대하여 이하의 처리가 실행된다.
LAB(λ)=v(λ)→가 되는 λ에 대하여, 이하의 D*(λ)가 생성된다.
D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)
+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)
+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)…(48)
LAB(λ)=¬v(λ)→가 되는 λ에 대하여, 이하의 D*(λ)가 생성된다.
D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)
+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)…(49)
단, coef(λ), coefι(λ)∈Fq는 상수 또는 난수이다. 이하에 일례를 나타낸다.
LAB(λ)=v(λ)→가 되는 λ에 대하여, 예를 들면 이하의 D*(λ)가 생성된다.
D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)
+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)
+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)…(50)
LAB(λ)=¬v(λ)→가 되는 λ에 대하여, 예를 들면 이하의 D*(λ)가 생성된다.
D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)
+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)…(51)
또한, 식(50)(51)의 coef(λ) 및 coefι(λ)은 난수이다.
(GenKey-3) 이하의 키 정보가 생성된다.
SKS=(LMT(MT,LAB),D*(0),D*(1),...,D(Ψ))…(52)
[Enc(PK, M, VSET2) : 암호화]
-입력 : 공개 파라미터 PK, 평문 M, 제2 정보 VSET2={λ,w(λ)→|λ=1,...,Ψ}(w1(λ)=1F)
-출력 : 암호문 C
(Enc-1) 이하의 처리에 의해 공통 키 K의 암호문 C(ψ)(ψ=0,...,Ψ)가 생성된다.
C(0)=υ·b1(0)+Σι=2 Iυι(0)·bι(0)…(53)
C(λ)=υ·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)·bι(λ)…(54)
단, υ,υι(ψ)∈Fq(ψ=0,...,Ψ)은 상수 또는 난수이며, 이하의 관계가 만족된다.
(coef2(0),...,coefI(0))·(υ2(0),...,υI(0))=υ'…(55)
coefι(λ)·υι(λ)=0F (ι=n(λ)+1,...,n(λ)+ζ(λ))…(56)
υ'의 예는 υ2(0),...,υI(0)의 어느 1개이다. 예를 들면, υ,υ3(0),υ5(0),υ3·n(λ)+1(λ),...,υ4·n(λ)(λ)가 난수이며, ζ(λ)=3·n(λ), I=5이며, 이하의 관계가 만족된다.
(υ2(0),...,υI(0))=(0F,υ3(0),0F,υ5(0))
υ'=υ3(0)
(υn(λ)+1(λ),...,υ3·n(λ)(λ))=(0F,...,0F)
(Enc-2) 이하의 공통 키가 생성된다.
K=gT τ·τ'·υ'∈GT…(57)
예를 들면, τ=τ'=1F의 경우, 이하의 관계가 만족된다.
K=gT υ'∈GT…(58)
(Enc-3) 공통 키 K를 사용하여 평문 M의 암호문 C(Ψ+1)가 생성된다.
C(Ψ+1)=EncK(M)…(59)
공통 키 암호 방식 Enc는, 예를 들면 공통 키 K를 사용하여 암호화 가능하게 구성된 카멜리아(Camellia)(등록상표)나 AES나 공통 키와 평문의 배타적 논리합 등이면 되지만, 그 밖의 간단한 예로서 이하와 같이 EncK(M)를 생성해도 된다. 단, 식(60)의 예에서는 M∈GT가 된다.
C(Ψ+1)=gT υ'·M…(60)
(Enc-4) 이하의 암호문이 생성된다.
C=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈ VSET2,C(Ψ+1))…(61)
단, 아랫첨자의 「w(λ)→」는 「w(λ)→」를 나타낸다.
[Dec(PK, SKS, C) : 복호]
-입력 : 공개 파라미터 PK, 키 정보 SKS, 암호문 C
-출력 : 평문 M'
(Dec-1) λ=1,...,Ψ에 대해서, 키 정보 SKS가 포함하는 라벨이 붙은 행렬LMT(MT, LAB)의 각 라벨 LAB(λ)인 n(λ)차원 벡터 v(λ)→와 암호문 C의 VSET2가 포함하는 n(λ)차원 벡터 w(λ)→의 내적 v(λ)→·w(λ)→가 0가 되는지 여부가 판정되고, 이것과 LMT(MT, LAB)의 각 라벨 LAB(λ)에 의해 GV→∈span<MTTFV>인지 여부가 판정된다(식(40)-(45)). GV→∈span<MTTFV>이 아니면 암호문 C가 거절되고, GV→∈span<MTTFV>이면 암호문 C가 받아들여진다.
(Dec-2) 암호문 C가 받아들여지면, SET⊆{1,...,λ|LIT(λ)=1}와 식(45)을 만족하는 계수 const(μ)(μ∈SET)가 계산된다.
(Dec-3) 이하의 공통 키가 생성된다.
[수 13]
여기서, 식(6)(25)(55)으로부터, 이하의 관계가 만족된다.
[수 14]
식(6)(25)(41)(48)(54)(56) 및 w1(λ)=1F로부터, 이하의 관계가 만족된다.
[수 15]
식(6)(25)(42)(49)(54)(56)으로부터, 이하의 관계가 만족된다.
[수 16]
식(45)(63)-(65)으로부터 이하의 관계가 만족된다.
[수 17]
예를 들면, τ=τ'=1F의 경우, 이하의 관계가 만족된다.
K=gT υ'∈GT…(67)
(Dec-4) 공통 키 K를 사용하여 이하와 같이 평문 M'가 생성된다.
M'=DecK(C(Ψ+1))=DecK(C(Ψ+1))…(68)
예를 들면, 식(60)에 예시한 공통 키 암호 방식의 경우, 이하와 같이 평문 M'가 생성된다.
M'=C(Ψ+1)/K…(69)
또한, gT를 GT의 생성원으로 하는 대신에 gT τ나 gT τ'나 gT τ·τ'를 GT의 생성원으로 취급해도 된다. 또, 키 정보 SKS의 λ와 암호문의 λ를 대응 관계를 특정하는 사상을 사용하여 C(λ)와 D*(λ)의 조합을 특정하고, [Dec(PK, SKS, C):복호]의 처리가 실행되어도 된다. 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ}의 1번째의 요소 w1(λ)가 1F가 될 뿐만 아니라, 제1 정보 VSET1={λ, v(λ)→|λ=1,...,Ψ}의 n(λ)번째의 요소 vn (λ)(λ)가 1F가 되어도 된다. 요소 w1(λ)가 1F가 아닌 경우에는 w(λ)→ 대신에 w(λ)→/w1(λ)를 사용해도 되고, 요소 vn (λ)(λ)가 1F가 아닌 경우에는 v(λ)→ 대신에 v(λ)→/vn (λ)(λ)를 사용해도 된다. 제1 정보 VSET1={λ, v(λ)→|λ=1,...,Ψ} 대신에 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ}가 사용되고, 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ} 대신에 제1 정보 VSET1={λ, v(λ)→|λ=1,...,Ψ}가 사용되어도 된다. 이 경우에는 제1 정보 VSET1={λ, v(λ)→|λ=1,...,Ψ}의 1번째의 요소 v1(λ)가 1F가 된다.
〔CCA 안전성〕
이하의 [1]-[4]가 실행된 경우에 식(70)의 관계가 만족될 때, 이하의 암호 오라클 및 복호 오라클에 대응하는 암호 방식은 CCA 안전이다.
Pr[bit=bit']<(1/2)-FNK(sec)…(70)
단 FNK(sec)는 sec의 함수이며, 0<FNK(sec)≤1/2이 만족된다. [2] 뒤에 [3]이 행해지는 것이면 「CCA2에 대하여 안전하다」고 하고, [3] 뒤에 [2]가 행해지는 것이면 「CCA1에 대하여 안전하다」고 한다. 「CCA2」는 「CCA1」보다 강력한 공격법이다.
[1] 공격자에게 공개 파라미터 PK가 주어진다.
[2] 공격자는 공개 파라미터 PK를 가지는 암호 오라클에 2개의 비트 열인 평문 M0,M1을 건네주고, 암호 오라클은 랜덤으로 bit∈{0,1}을 선택하고, 일방의 평문 Mbit를 암호화하고, 그 암호문 Cbit를 공격자에게 건넨다.
[3] 공격자는 키 정보 SKS를 가지는 복호 오라클에 암호문 Cbit'(Cbit'≠Cbit)을 건네주고, 복호 오라클로부터 암호문 Cbit'의 복호 결과를 수취할 수 있다.
[4] 공격자는 bit'∈{0,1}을 출력한다.
〔액세스 구조를 사용한 함수 암호 방식의 기본 방식의 CCA 안전성〕
상기 서술한 액세스 구조를 사용한 함수 암호 방식의 기본 방식은 CCA 안전이 아니다. 이러한 점을 간단한 예를 들어 설명한다. 이 간단한 예에서는 평문 M이 바이너리 계열이다. 평문 M에 대한 공통 키 K를 사용한 공통 키 암호 방식의 암호문 C(Ψ+1)=EncK(M)(식(59))가 이하의 식에 따라 생성된다.
C(Ψ+1)=MAP(K)(+)M…(71)
공통 키 K를 사용한 암호문 C(Ψ+1)의 복호 결과(식(68))가 이하의 식에 따라 생성된다.
M'=C(Ψ+1)(+)MAP(K)…(72)
또한, MAP(K)은 K∈GT의 바이너리 계열로의 사상을 나타낸다. 이 경우, 공격자는 이하와 같은 전략(이하 「상정 전략」이라고 함)을 취할 수 있다.
[1] 공격자에게 공개 파라미터 PK가 주어진다.
[2] 공격자는 공개 파라미터 PK를 가지는 암호 오라클에 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ}와 2개의 평문 M0, M1을 건네준다. 암호 오라클은 랜덤으로 bit∈{0,1}를 선택하고, 일방의 평문 Mbit를 공통 키 K(식(57))로 암호화하여 이하의 암호문 Cbit(Ψ+1)
Cbit(Ψ+1)=MAP(K)(+)Mbit…(73)
을 생성한다. 암호 오라클은 또한 암호문 C(0), C(λ)(λ=1,...,Ψ)(식(53)(54))를 생성하고, 이하의 암호문을 공격자에게 건넨다.
Cbit=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈ VSET2,Cbit(Ψ+1))…(74)
[3] 공격자는 키 정보 SKS(식(52))를 가지는 복호 오라클에 이하의 암호문 Cbit'를 건네주고, 복호 오라클로부터 암호문 Cbit'의 복호 결과를 수취한다.
Cbit'=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈ VSET2,Cbit(Ψ+1)(+)ΔM)…(75)
단 ΔM은 공격자에게 값이 알려진 바이너리 계열이다.
여기서, bit=0이었던 것이면, Cbit(Ψ+1)=MAP(K)(+)M0이며, Cbit(Ψ+1)(+)ΔM의 복호 결과는 M0(+)ΔM이 된다. 한편, bit=1이었던 것이면, Cbit(Ψ+1)=MAP(K)(+)M1이며, Cbit(Ψ+1)(+)ΔM의 복호 결과는 M0(+)ΔM이 된다.
[4] 공격자는 Cbit'의 복호 결과가 M0(+)ΔM일 때에 bit'=0을 출력하고, M1(+)ΔM일 때에 bit'=1을 출력한다.
이 경우 Pr[bit=bit']=1이 되고, 식(70)을 만족하지 않는다.
〔본 형태의 액세스 구조를 사용한 함수 암호 방식〕
상기 서술한 바와 같이, 액세스 구조를 사용한 함수 암호 방식의 기본 방식은 CCA 안전이 아니다. 한편, 액세스 구조를 사용한 함수 암호 방식의 기본 방식에 CCA 안전성을 갖게 하기 위해서 CHK 변환 방식이나 BK 변환 방식을 사용하는 것에서는 CCA 안전성을 향상시키기 위해서만 사용하는 2차원의 암호문 공간이 더욱 필요하게 된다. 본 형태에서는 CCA 안전성을 향상시키기 위한 추가적인 암호문 공간 없이 CCA 안전성이 향상된다.
<함수 암호 방식의 개량 방식>
이하에, 본 형태의 함수 암호 방식의 개량 방식을 개략적으로 설명한다.
[암호화 처리]
암호화 처리를 행하는 암호화 장치가 이하의 처리를 실행한다.
(Enc-11) 난수 생성부가 난수 r을 생성한다.
(Enc-12) 제1 암호화부가 난수 r에 따른 바이너리 계열과 바이너리 계열의 평문 M의 배타적 논리합값인 암호문 C2를 생성한다. 난수 r은 비밀 정보이며, 난수 r을 모르는 자는 암호문 C2로부터 평문 M을 복원할 수 없다.
(Enc-13) 함수 연산부가 난수 r과 암호문 C2의 세트를 Smax(Smax≥1)개의 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하고, Smax(Smax≥1)개의 함수값 HS(r, C2)(S=1,...,Smax)를 생성한다.
(Enc-14) 공통 키 생성부가 순회군 GT의 생성원 gT 및 상수 τ, τ'에 대하여, 이하의 관계를 만족하는 공통 키 K를 생성한다.
K=gT τ·τ'·υ'∈GT…(76)
(Enc-15) 제2 암호화부가 공통 키 K를 사용하여 공통 키 암호 방식에 의해 난수 r을 암호화하여 암호문 C(Ψ+1)를 생성한다.
(Enc-16) 제3 암호화부가 이하의 C(0), C(λ)(λ=1,...,Ψ), C(Ψ+1)를 포함하는 암호문 C1을 생성한다.
C(0)=υ·b1(0)+Σι=2 Iυι(0)·bι(0)…(77)
C(λ)
=υ·Σι=1 n(λ)wι(λ)·bι(λ)
+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)·bι(λ)…(78)
C(Ψ+1)
식(55)(56)의 관계가 만족되고, υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 함수값 HS(r, C2)(S=1,...,Smax)의 어느 하나에 대응한다. 바꾸어 말하면, υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 함수값 HS(r, C2)(S=1,...,Smax)의 어느 하나에 따라서 정해진다. 예를 들면, υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부가 함수값 HS(r, C2)(S=1,...,Smax)의 어느 하나 또는 함수값 HS(r, C2)(S=1,...,Smax)의 어느 하나의 함수값이다. 함수값 HS(r, C2)(S=1,...,Smax)에 대응하지 않는 υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))는 상수나 난수가 된다.
[복호 처리]
복호 처리를 행하는 복호 장치가 이하의 처리를 실행한다.
(DEC-11) 식(45)을 만족하는 계수 const(μ)가 존재하는 경우, 공통 키 생성부가 이하의 제1 키 정보 D*(0), 제2 키 정보 D*(λ)(λ=1,...,Ψ) 및 공통 키 K'를 생성한다.
제1 키 정보는 이하의 식으로 표시된다.
D*(0)=-SE·b1 *(0)+Σι=2 Icoefι(0)·bι *(0)…(79)
LAB(λ)=v(λ)→를 만족하는 λ에 대한 제2 키 정보 D*(λ)는 이하의 식으로 표시된다.
D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)
+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)
+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)…(80)
LAB(λ)=¬v(λ)→를 만족하는 λ에 대한 제2 키 정보 D*(λ)는 이하의 식으로 표시된다.
D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)
+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)…(81)
공통 키 생성부는 입력된 암호문 C'(0), C'(λ)(λ=1,...,Ψ)를 사용하여, 이하의 식에 따라 공통 키 K'를 생성한다.
[수 18]
(DEC-12) 제1 복호부가 공통 키 K'를 사용하고, 입력된 암호문 C'(Ψ+1)를 복호하여 복호값 r'를 생성한다.
(DEC-13) 함수 연산부가 복호값 r'와 입력된 암호문 C2'의 세트를 Smax(Smax≥1)개의 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하고, Smax(Smax≥1)개의 함수값 HS(r',C2')(S=1,...,Smax)을 생성한다.
(DEC-14) 암호문 C'(0), C'(λ)와 암호문 C''(0)=υ''·b1(0)+Σι=2 Iυι''(0)·bι(0), C''(λ)=υ''·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)·bι(λ)가 일치하지 않는 경우, 판정부가 복호를 거절한다. 한편, 암호문 C'(0), C'(λ)와 암호문 C''(0), C''(λ)가 일치하는 경우, 제2 복호부가 복호값 r'에 따른 바이너리 계열과 입력된 바이너리 계열의 암호문 C2'의 배타적 논리합인 복호값 M'를 생성한다.
또한, υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 함수값 HS(r',C2')(S=1,...,Smax)의 어느 하나에 대응한다. 바꾸어 말하면, υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 함수값 HS(r',C2')(S=1,...,Smax)의 어느 하나에 따라서 정해진다. 예를 들면, υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부가 함수값 HS(r',C2')(S=1,...,Smax)의 어느 하나 또는 함수값 HS(r',C2')(S=1,...,Smax)의 어느 하나의 함수값이다. 또, 함수값 HS(r',C2')(S=1,...,Smax)에 대응하지 않는 υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))는 상수 또는 난수가 된다.
<함수 암호 방식의 개량 방식의 CCA 안전성>
이 개량 방식에 대하여, 상기 서술한 상정 전략이 적용된 경우를 상정한다.
[1] 공격자에게 공개 파라미터 PK가 주어진다.
[2] 공격자는 공개 파라미터 PK를 가지는 암호 오라클에 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ}와 2개의 평문 M0, M1을 건네준다. 암호 오라클은 랜덤으로 bit∈{0,1}를 선택하고, 난수 r을 생성하고(Enc-11), 난수 r에 따른 바이너리 계열과 바이너리 계열의 평문 Mbit의 배타적 논리합값인 암호문 C2를 생성하고(Enc-12), 난수 r과 암호문 C2의 세트를 Smax(Smax≥1)개의 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하고, Smax(Smax≥1)개의 함수값 HS(r, C2)(S=1,...,Smax)를 생성하고(Enc-13), K=gT τ·τ'·υ'∈GT(식(76))를 만족하는 공통 키 K를 생성하고(Enc-14), 공통 키 K를 사용하여 공통 키 암호 방식에 의해 난수 r을 암호화하여 암호문 C(Ψ+1)를 생성한다. 또한, 암호 오라클은 C(0)=υ·b1(0)+Σι=2 Iυι(0)·bι(0)(식(77)), C(λ)=υ·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)·bι(λ)(식(78)) 및 C(Ψ+1)를 포함하는 암호문 C1을 생성한다(Enc-16). 여기서, υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부가 함수값 HS(r, C2)(S=1,...,Smax)의 어느 하나에 의존한다. 암호 오라클은 생성한 암호문 C1 및 C2를 포함하는 암호문 Cbit를 공격자에게 건넨다.
[3] 공격자는 이하의 암호문을 생성할 수 있다.
C2'=C2(+)ΔM…(83)
그러나, 난수 r을 모르는 공격자는 난수 r과 암호문 C2'의 세트를 Smax(Smax≥1)개의 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하고, 함수값 HS(r, C2')(S=1,...,Smax)를 생성할 수 없다. 그 때문에, 공격자는 암호문 C1과 암호문 C2'를 포함하는 암호문 Cbit'를 제1 키 정보 D*(0)(식(79)) 및 제2 키 정보 D*(λ)(식(80)(81))를 가지는 복호 오라클에 건네준다.
암호문 Cbit'가 입력된 복호 오라클은 식(45)을 만족하는 계수 const(μ)가 존재하는 경우에 공통 키 K'(식(82))를 생성하고(DEC-11), 공통 키 K'를 사용하여 암호문 C1이 포함하는 암호문 C'(Ψ+1)를 복호하여 복호값 r'를 생성하고(DEC-12), 복호값 r'와 입력된 암호문 C2'의 세트를 Smax(Smax≥1)개의 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하고, Smax(Smax≥1)개의 함수값 HS(r',C2')(S=1,...,Smax)를 생성한다(DEC-13). 함수 HS의 충돌 곤란성에 의해 높은 확률로 HS(r',C2')≠HS(r, C2)가 되기 때문에, 암호문 C'(0), C'(λ)와 암호문 C''(0)=υ''·b1(0)+Σι=2 Iυι''(0)·bι(0), C''(λ)=υ''·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)·bι(λ)가 일치하지 않을 확률이 높고 복호는 거절된다.
[4] 공격자는 C2'=C2(+)ΔM의 복호 결과를 취득할 수 없기 때문에, 「복호 결과가 M0(+)ΔM일 때에 bit'=0를 출력하고, M1(+)ΔM일 때에 bit'=1을 출력하는」 것이 불가능하다. 따라서, 이 공격자의 전략은 성공할 수 없다.
〔실시형태〕
다음에 상기 개량 방식의 실시형태를 설명한다. 이하에서는 제1 정보 VSET1={λ, v(λ)→|λ=1,...,Ψ}가 키 정보에 편입되고, 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ}가 암호문에 편입되는 예를 나타낸다. 그러나, 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ}가 키 정보에 편입되고, 제1 정보 VSET1={λ, v(λ)→|λ=1,...,Ψ}가 암호문에 편입되는 구성이어도 상관없다. 또한, 본 형태의 예에서는, 제1 정보 VSET1을 구성하는 n(λ)차원 벡터 v(λ)→가 특정의 폴리시에 대응하고, 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ}를 구성하는 n(λ)차원 벡터 w(λ)→가 속성에 대응한다. n(λ)차원 벡터 w(λ)→에 대응하는 속성이 n(λ)차원 벡터 v(λ)→에 대응하는 폴리시에 합치할 때에 내적 v(λ)→·w(λ)→=0가 되고, n(λ)차원 벡터 w(λ)→에 대응하는 속성이 n(λ)차원 벡터 v(λ)→에 대응하는 폴리시에 합치하지 않을 때에 내적 v(λ)→·w(λ)→≠0가 되도록 설정되어 있다.
[전체 구성]
도 1에 예시하는 바와 같이, 본 형태의 암호 시스템(1)은 암호화 장치(110)와 복호 장치(120)와 키 생성 장치(130)를 가진다. 암호화 장치(110)와 복호 장치(120), 복호 장치(120)와 키 생성 장치(130)는 네트워크나 가반형 기록 매체 등을 통한 정보 전달이 가능하게 되어 있다.
[암호화 장치]
도 4에 예시하는 바와 같이, 본 형태의 암호화 장치(110)는 입력부(111), 출력부(112), 기억부(113), 제어부(114), 난수 생성부(115), 암호화부(116a, 116d, 116e), 함수 연산부(116b), 공통 키 생성부(116c) 및 결합부(117)를 가진다.
암호화 장치(110)는 예를 들면, CPU(Central Processing Unit), RAM(Random Access Memory), ROM(Read-Only Memory) 등을 구비하는 공지 또는 전용의 컴퓨터와 특별한 프로그램을 포함하는 특별한 장치이다. 난수 생성부(115), 암호화부(116a, 116d, 116e), 함수 연산부(116b), 공통 키 생성부(116c) 및 결합부(117)는 예를 들면 CPU가 특별한 프로그램을 실행함으로써 구성되는 처리부이다. 또, 난수 생성부(115)를 공지의 난수 생성용 IC(integrated Circuit)로 하는 등, 처리부의 적어도 일부가 특별한 집적 회로로 구성되어도 된다. 또, 기억부(113)는 예를 들면 RAM, 레지스터, 캐시메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 입력부(111)는 예를 들면 키보드 등의 입력 인터페이스나, 모뎀, LAN(Local Area Network) 카드 등의 통신 장치나, USB 단자 등의 입력 포트 등이다. 출력부(112)는 예를 들면, 출력 인터페이스나, 모뎀, LAN 카드 등의 통신 장치, USB 단자 등의 출력 포트 등이다. 또, 암호화 장치(110)는 제어부(114)의 제어하에서 각 처리를 실행한다.
[복호 장치]
도 5에 예시하는 바와 같이, 본 형태의 복호 장치(120)는 입력부(121), 출력부(122), 기억부(123), 제어부(124), 공통 키 생성부(126a), 복호부(126b, 126e), 함수 연산부(126c), 판정부(126d) 및 분리부(127)를 가진다.
복호 장치(120)는 예를 들면, CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터와 특별한 프로그램을 포함하는 특별한 장치이다. 즉, 제어부(124), 공통 키 생성부(126a), 복호부(126b, 126e), 함수 연산부(126c), 판정부(126d) 및 분리부(127)는 예를 들면 CPU가 특별한 프로그램을 실행함으로써 구성되는 처리부이다. 또, 처리부의 적어도 일부가 특별한 집적 회로로 구성되어도 된다. 또, 기억부(123)는 예를 들면 RAM, 레지스터, 캐시메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 또, 입력부(121)는 예를 들면 입력 인터페이스나 통신 장치나 입력 포트 등이다. 출력부(122)는 예를 들면 출력 인터페이스나 통신 장치나 출력 포트 등이다. 또, 복호 장치(120)는 제어부(124)의 제어하에서 각 처리를 실행한다.
[키 생성 장치]
도 6에 예시하는 바와 같이, 본 형태의 키 생성 장치(130)는 입력부(131), 출력부(132), 기억부(133), 제어부(134), 선택부(135), 쉐어 정보 생성부(136a), 비밀 정보 생성부(136b) 및 키 생성부(136c, 136d, 136e)를 가진다.
키 생성 장치(130)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터와 특별한 프로그램을 포함하는 특별한 장치이다. 즉, 제어부(134), 선택부(135), 쉐어 정보 생성부(136a), 비밀 정보 생성부(136b) 및 키 생성부(136c, 136d, 136e)는 예를 들면 CPU가 특별한 프로그램을 실행함으로써 구성되는 처리부이다. 또, 처리부의 적어도 일부가 특별한 집적 회로로 구성되어도 된다. 또, 기억부(133)는 예를 들면 RAM, 레지스터, 캐시메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 또, 입력부(131)는 예를 들면 입력 인터페이스나 통신 장치나 입력 포트 등이다. 출력부(132)는 예를 들면 출력 인터페이스나 통신 장치나 출력 포트 등이다. 또, 키 생성 장치(130)는 제어부(134)의 제어하에서 각 처리를 실행한다.
[사전 설정]
다음에 본 형태의 각 처리를 실행하기 위한 사전 설정을 설명한다.
도시하지 않는 관리 장치에 의해 상기 서술한 Setup(1sec, (Ψ;n(1) ,...,n(Ψ))):셋업]이 실행되고, 집합 {B(ψ)^}ψ=0,...,Ψ과 1sec과 param=(q, E, G1, G2, GT, eψ)로 이루어지는 공개 파라미터 PK와, 마스터 키 정보 MSK={B*(ψ)^}ψ=0,...,Ψ가 설정된다. 공개 파라미터 PK는 암호화 장치(110), 복호 장치(120) 및 키 생성 장치(130)에서 이용 가능하도록 이들 장치에 설정된다. 마스터 키 정보 MSK는 키 생성 장치(130)에서 이용 가능하도록 키 생성 장치(130)에 설정된다. 마스터 키 정보 MSK는 비밀 정보이며 공개되지 않는다. 장치에 대한 공개 파라미터 PK 등의 설정은 장치를 구성하는 특별한 프로그램에 공개 파라미터 PK 등이 편입됨으로써 행해져도 되고, 장치의 기억 장치에 격납됨으로써 행해져도 된다. 본 형태에서는 특별한 프로그램에 공개 파라미터 PK 등이 편입되어 있는 예를 나타낸다.
[키 정보의 생성 처리]
키 정보의 생성 처리는 특히 복호 장치(120)의 기억부(123)에 키 정보 SKS가 격납되어 있지 않은 경우에 실행된다. 복호 장치(120)의 기억부(123)에 키 정보 SKS가 격납되어 있을 때에는 이 처리가 생략되어도 된다. 키 정보의 생성 처리는 암호문의 생성 전에 행해져도 되고, 암호문의 생성 후에 행해져도 된다.
도 7에 예시하는 바와 같이, 키 정보의 생성 처리에서는 우선 키 생성 장치(130)(도 6)의 입력부(131)에, 생성하는 키 정보에 대응하는 라벨이 붙은 행렬 LMT(MT, LAB)이 입력된다. 상기 서술한 바와 같이, 라벨이 붙은 행렬 LMT(MT, LAB)은 식(34)의 행렬 MT와 제1 정보 VSET1을 구성하는 n(λ)차원 벡터 v(λ)→에 대응하는 라벨 LAB(λ)(LAB(λ)=v(λ)→ 또는 LAB(λ)=¬v(λ)→)이 대응지어진 정보이다. 입력된 라벨이 붙은 행렬 LMT(MT, LAB)은 기억부(133)에 격납된다(스텝 S11).
다음에 선택부(135)가 유한체 Fq의 원소를 요소로 하는 COL차원 벡터 CV→∈Fq COL(식(36))을 임의로 선택하고, COL차원 벡터 CV→를 기억부(133)에 격납한다(스텝 S12). 쉐어 정보 생성부(136a)에 행렬 MT와 COL차원 벡터 CV→가 입력되고, 쉐어 정보 생성부(136a)가 식(39)에 따라 쉐어 정보 share(λ)∈Fq(λ=1,...,Ψ)를 계산하고, 생성한 쉐어 정보 share(λ)∈Fq(λ=1,...,Ψ)를 기억부(133)에 격납한다(스텝 S13). 비밀 정보 생성부(136b)에 COL차원 벡터 CV→가 입력되고, 비밀 정보 생성부(136b)가 식(37)에 따라 비밀 정보 SE를 생성하여 기억부(133)에 격납한다(스텝 S14).
다음에 키 생성부(136c)에 비밀 정보 SE가 입력되고, 키 생성부(136c)는 식(46)에 따라 키 정보 D*(0)를 생성하여 기억부(133)에 격납한다. 예를 들면, 키 생성부(136c)는 식(47)에 따라 키 정보 D*(0)를 생성하여 기억부(133)에 격납한다(스텝 S15). 키 생성부(136d)에 라벨 정보 LAB(λ)(λ=1,...,Ψ)가 입력되고, 키 생성부(136d)는 식(48)(49)에 따라 키 정보 D*(λ)(λ=1,...,Ψ)를 생성하여 기억부(133)에 격납한다. 예를 들면, 키 생성부(136d)는 식(50)(51)에 따라 키 정보 D*(λ)(λ=1,...,Ψ)를 생성하여 기억부(133)에 격납한다(스텝 S16). 라벨이 붙은 행렬 LMT(MT, LAB), 키 정보 D*(0) 및 키 정보 D*(λ)(λ=1,...,Ψ)는 키 생성부(136e)에 입력되고, 키 생성부(136e)는 식(52)에 따라 키 정보 SKS를 생성하여 출력부(132)에 보낸다(스텝 S17).
출력부(132)는 키 정보 SKS를 출력한다(스텝 S18). 키 정보 SKS는 복호 장치(120)(도 5)의 입력부(121)에 입력되어, 기억부(123)에 격납된다.
[암호화 처리]
도 8에 예시하는 바와 같이, 암호화 처리에서는 우선 암호화 장치(110)(도 4)의 입력부(111)에 제2 정보 VSET2={λ, w(λ)→|λ=1,...,Ψ}와 바이너리 계열의 평문 M이 입력되어, 그들이 기억부(113)에 격납된다(스텝 S21).
다음에 난수 생성부(115)가 난수 r을 생성하고, 난수 r을 기억부(113)에 격납한다. 난수 r은 단사함수 R의 정의역을 이루는 집합의 원소이다. 예를 들면, 단사함수 R이 1개의 순회군 GT의 원소를 입력으로 하는 함수라면 난수 r은 순회군 GT의 원소이며, 단사함수 R이 1개의 바이너리 계열을 입력으로 하는 함수라면 난수 r은 바이너리 계열이다(스텝 S22).
암호화부(116a)에 난수 r 및 평문 M이 입력된다. 암호화부(116a)는 이하와 같이, 난수 r에 단사함수 R을 작용시켜 얻어진 바이너리 계열인 함수값 R(r)과 평문 M의 배타적 논리합값을 암호문 C2로 한다.
C2=M(+)R(r)…(84)
암호문 C2는 기억부(113)에 격납된다(스텝 S23).
함수 연산부(116b)에 난수 r과 암호문 C2가 입력된다. 함수 연산부(116b)는 난수 r과 암호문 C2의 세트를 Smax(Smax≥1)개의 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하고, Smax(Smax≥1)개의 함수값 HS(r, C2)∈Fq(S=1,...,Smax)를 생성한다. 또한, 본 형태의 Smax는 상수이다. 이하에 Smax의 일례를 나타낸다(스텝 S24).
Smax=3+Σλ=1 Ψn(λ)…(85)
다음에 공통 키 생성부(116c)가 순회군 GT의 생성원 gT 및 상수 τ, τ',υ'∈Fq에 대하여 식(76)을 만족하는 공통 키 K∈GT를 생성한다. υ'∈Fq는 난수여도 되지만, 본 형태에서는 공통 키 생성부(116c)에 입력된 함수값 HS(r, C2)∈Fq(S=1,...,Smax)의 어느 하나에 대응하는 값을 υ'∈Fq로 한다. 예를 들면, 함수값 HS(r, C2)∈Fq(S=1,...,Smax)의 어느 하나 또는 함수값 HS(r, C2)∈Fq(S=1,...,Smax)의 어느 하나의 함수값이 υ'∈Fq가 된다. 이하에 υ'∈Fq의 일례를 나타낸다(스텝 S25).
υ'=H2(r,C2)∈Fq…(86)
암호화부(116d)에는 공통 키 K와 난수 r이 입력된다. 암호화부(116d)는 공통 키 K를 사용하여 공통 키 암호 방식에 의해 난수 r을 암호화하고, 이하의 암호문 C(Ψ+1)를 생성한다.
C(Ψ+1)=EncK(r)…(87)
암호문 C(Ψ+1)는 기억부(113)에 격납된다(스텝 S26).
암호화부(116e)에는 제2 정보 VSET2, 함수값 HS(r, C2)∈Fq(S=1,...,Smax)의 적어도 일부 및 암호문 C(Ψ+1)가 입력된다. 암호화부(116e)는 미리 정해진 기준에 따라, 함수값 HS(r, C2)∈Fq(S=1,...,Smax)의 적어도 일부에 대응하는 값을 υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값으로 하고, 식(77)(78)에 따라 C(0) 및 C(λ)(λ=1,...,Ψ)를 생성한다. 예를 들면, υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부가 함수값 HS(r, C2)∈Fq(S=1,...,Smax)의 적어도 일부 또는 함수값 HS(r, C2)∈Fq(S=1,...,Smax)의 적어도 일부의 함수값이 된다. 식(55)(56)이 만족될 필요도 있다. 예를 들면, Smax=3+Σλ=1 Ψn(λ)인 경우, ζ(λ)=3·n(λ), I=5로 하고, υ2(0), υ4(0), υn(λ)+1(λ) ,...,υ3·n(λ)(λ)를 각각 영원 0F로 하고, υ'=υ3(0)로 하고, υ, υ3(0), υ5(0), υ3·n(λ)+1(λ) ,...,υ4·n(λ)(λ)의 각각을 H1(r, C2) ,...,HSmax(r, C2)의 어느 하나로 한다. 이 때, 안전성의 관점에서 υ, υ3(0), υ5(0), υ3·n(λ)+1(λ) ,...,υ4·n(λ)(λ)와 H1(r, C2) ,...,HSmax(r, C2)가 일대일로 대응하는 것이 바람직하다. 그 경우, Smax의 값은 υ, υ3(0), υ5(0), υ3·n(λ)+1(λ) ,...,υ4·n(λ)(λ)의 갯수 이상이다.
함수값 HS(r, C2)∈Fq(S=1,...,Smax)의 어느 것에도 대응하지 않는 υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))는 예를 들면 유한체 Fq로부터 선택된 상수가 된다. υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 어느 것이 H1(r, C2) ,...,HSmax(r, C2)의 어느 것에 대응하는지는 예를 들면 미리 정해져 있다.
암호화부(116e)는 제2 정보 VSET2, C(0), C(λ)(λ=1,...,Ψ) 및 C(Ψ+1)를 포함하는 이하와 같은 암호문 C1을 생성한다.
C1=(VSET2, C(0), {C(λ)}(λ, w(λ)→)∈ VSET2 ), C(Ψ+1))…(88)
암호문 C1은 기억부(113)에 격납된다(스텝 S27).
암호문 C1 및 암호문 C2는 결합부(117)에 입력된다. 결합부(117)는 암호문 C1에 대응하는 바이너리 계열과 암호문 C2의 비트 결합값을 암호문 Code로 하여 생성한다.
Code=C1|C2…(89)
복호 장치(120)는 암호문 Code 내의 암호문 C1의 위치와 암호문 C2의 위치를 특정할 수 있다. 예를 들면, 암호문 Code 내의 암호문 C1의 위치와 암호문 C2의 위치가 고정이 되거나, 또는 암호문 Code 내의 암호문 C1의 위치와 암호문 C2의 위치를 나타내는 부가 정보가 암호문 Code에 부가된다(스텝 S28).
암호문 Code는 출력부(112)에 보내진다. 출력부(112)는 암호문 Code를 출력한다(스텝 S29). 이로써 암호화 처리가 종료된다.
[복호 처리]
도 9에 예시하는 바와 같이, 복호 처리에서는 우선 복호 장치(120)(도 5)의 입력부(121)에 암호문 Code'가 입력되어, 기억부(123)에 격납된다. 암호문 Code'는 예를 들면 상기 서술한 암호문 Code이다(스텝 S41).
암호문 Code'는 분리부(127)에 입력되고, 분리부(127)는 미리 정해진 방법으로 암호문 Code'를 암호문 C1'과 암호문 C2'로 분리하고, 암호문 C1'과 암호문 C2'를 기억부(123)에 격납한다. 암호문 Code'가 암호문 Code인 경우, C1=C1' 또한 C2=C2'이다(스텝 S42).
다음에 공통 키 생성부(126a)에 키 정보 SKS 및 암호문 C1'가 입력된다. 공통 키 생성부(126a)는 키 정보 SKS 및 암호문 C1'을 사용하여 공통 키 K'∈GT를 복원 가능한지 여부를 판정한다. 즉, 공통 키 생성부(126a)는 라벨이 붙은 행렬 LMT(MT, LAB)에 대응하는 제1 정보 VSET1={λ, v(λ)→|λ=1,...,Ψ}, 암호문 C1'가 포함하는 제2 정보 VSET2'={λ, w(λ)→|λ=1,...,Ψ}, 및 LMT(MT, LAB)의 각 라벨 LAB(λ)을 사용하고, 키 정보 SKS가 포함하는 라벨이 붙은 행렬 LMT(MT, LAB)의 각 라벨 LAB(λ)인 n(λ)차원 벡터 v(λ)→와 암호문 C의 VSET2가 포함하는 n(λ)차원 벡터 w(λ)→의 내적 v(λ)→·w(λ)→가 0이 되는지 여부를 각각 판정하고, 그들의 결과와 LMT(MT, LAB)의 각 라벨 LAB(λ)을 사용하여 GV→∈span<MTTFV>인지 여부가 판정된다. 상기 서술한 바와 같이, GV→∈span<MTTFV>이면 공통 키 K'∈GT가 복원 가능하며, GV→∈span<MTTFV>가 아니면 공통 키 K'∈GT가 복원 가능하지 않다(스텝 S43). 스텝 S43의 처리의 구체예는 후술한다. 공통 키 K'∈GT가 복원 가능하지 않다고 판단된 경우에는 복호가 거절되고(스텝 S48), 복호 처리가 종료된다.
한편, 공통 키 K'∈GT가 복원 가능하다고 판단된 경우, 공통 키 생성부(126a)는 식(45)을 만족하는 계수 const(μ)를 구하고, 식(82)에 따라 공통 키 K'∈GT를 계산한다. 생성된 공통 키 K'는 기억부(123)에 격납된다(스텝 S44).
암호문 C1'가 포함하는 암호문 C'(Ψ+1) 및 공통 키 K'는 복호부(126b)에 입력된다. C1=C1'인 경우 C(Ψ+1)=C'(Ψ+1)가 만족된다. 복호부(126b)는 공통 키 K'를 사용하여, 입력된 암호문 C'(Ψ+1)를 복호하고, 이하의 복호값 r'를 얻는다.
r'=DecK'(C'(Ψ+1))…(90)
복호부(126b)는 복호값 r'를 기억부(123)에 격납한다(스텝 S45).
함수 연산부(126c)에 복호값 r'와 암호문 C2'가 입력된다. 함수 연산부(126c)는 복호값 r'와 암호문 C2'의 세트를 Smax(Smax≥1)개의 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하여 함수값 HS(r',C2')(S=1,...,Smax)를 생성한다. 각 함수값 HS(r',C2')(S=1,...,Smax)는 기억부(123)에 격납된다(스텝 S46).
다음에 판정부(126d)에 함수값 HS(r',C2')∈Fq(S=1,...,Smax)의 적어도 일부, 및 암호문 C1'가 포함하는 제2 정보 VSET2' 그리고 암호문 C'(0), {C'(λ)}(λ, w(λ)→)∈V SET 2')가 입력된다. 판정부(126d)는 제2 정보 VSET2'가 포함하는 n(λ)차원 벡터 w(λ)→ 및 함수값 HS(r',C2')의 적어도 일부를 사용하여, 이하의 암호문 C''(0), C''(λ)(λ=1,...,Ψ)를 생성한다.
C''(0)=υ''·b1(0)+Σι=2 Iυι''(0)·bι(0)…(91)
C''(λ)=υ''·Σι=1 n(λ)wι(λ)·bι''(λ)
+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)·bι(λ)…(92)
암호문 C''(0) 및 C''(λ)(λ=1,...,Ψ)의 생성 방법은 제2 정보 VSET2가 제2 정보 VSET2'로 치환되고, 함수값 HS(r, C2)가 함수값 HS(r',C2')로 치환되며, υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))가 υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))로 치환되는 것 이외에는 스텝 S27에서의 암호문 C(0) 및 C(λ)(λ=1,...,Ψ)의 생성 방법과 동일하다. 즉, 판정부(126d)는 상기한 미리 정해진 기준에 따라, 함수값 HS(r',C2')∈Fq(S=1,...,Smax)의 적어도 일부에 대응하는 값을 υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값으로 하고, 식(91)(92)에 따라 C''(0) 및 C''(λ)(λ=1,...,Ψ)를 생성한다. 예를 들면, υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부가 함수값 HS(r',C2')∈Fq(S=1,...,Smax)의 적어도 일부 또는 함수값 HS(r',C2')∈Fq(S=1,...,Smax)의 적어도 일부의 함수값이 된다. 식(55)(56)의 υι(0), υι(λ)이 υι''(0), υι''(λ)로 치환된 관계가 만족될 필요도 있다. 예를 들면, Smax=3+Σλ=1 Ψn(λ)인 경우, ζ(λ)=3·n(λ), I=5로 하고, υ2''(0), υ4''(0), υn(λ)+1''(λ) ,...,υ3·n(λ)''(λ)를 각각 영원 0F로 하고, υ'',υ3''(0), υ5''(0), υ3·n(λ)+1''(λ) ,...,υ4·n(λ)''(λ)의 각각을 H1(r',C2'), ...,HSmax(r',C2')의 어느 하나로 한다. 예를 들면, υ'',υ3''(0), υ5''(0), υ3·n(λ)+1''(λ) ,...,υ4·n(λ)''(λ)와 H1(r',C2'), ...,HSmax(r',C2')는 일대일로 대응한다. 그 경우, Smax의 값은 υ'',υ3''(0), υ5''(0), υ3·n(λ)+1''(λ) ,...,υ4·n(λ)''(λ)의 갯수 이상이다.
함수값 HS(r',C2')∈Fq(S=1,...,Smax)의 어느 것에도 대응하지 않는 υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))는 예를 들면 유한체 Fq로부터 선택된 상수(스텝 S27과 동일한 상수)가 된다. υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 어느 것이 H1(r',C2'), ...,HSmax(r',C2')의 어느 것에 대응하는지는 예를 들면 스텝 S27과 동일한 기준에 따라 미리 정해져 있다.
판정부(126d)는 이하의 모두가 만족되는지 여부를 판정한다(스텝 S47).
C'(0)=C''(0)…(93)
C'(λ)=C''(λ)(λ=1,...,Ψ)…(94)
여기서, 식(93)(94)의 적어도 일부가 만족되지 않은 경우에는 복호가 거절되고(스텝 S48), 복호 처리가 종료된다.
한편, 식(93)(94)이 모두 만족되는 경우, 복호부(126e)에 바이너리 계열의 암호문 C2' 및 복호값 r'가 입력된다. 복호부(126e)는 복호값 r'에 단사함수 R을 작용시킨 바이너리 계열의 함수값 R(r')과 암호문 C2'의 배타적 논리합값을 복호값 M'로서 생성한다(스텝 S49).
M'=C2'(+)R(r')…(95)
복호값 M'는 출력부(122)에 보내지고, 출력부(122)는 복호값 M'를 출력한다(스텝 S50). 이로써 복호 처리가 종료된다.
[스텝 S43의 처리의 구체예]
이하에 스텝 S43의 처리의 구체예를 설명한다. 또한, 이하에서는 설명의 간략화를 위해, 식(38)의 COL차원 벡터 GV→가 사용되는 경우를 예시한다. 단, 이것은 본 발명을 한정하는 것이 아니며, 식(36)과 같이 일반화된 COL차원 벡터 GV→가 사용되는 경우에 이하의 처리가 확장되어 적용되어도 된다.
도 10에 예시하는 바와 같이, 우선 공통 키 생성부(126a)는 라벨이 붙은 행렬 LMT(MT, LAB)에 대응하는 제1 정보 VSET1={λ, v(λ)→|λ=1,...,Ψ}, 암호문 C1'가 포함하는 제2 정보 VSET2'={λ, w(λ)→|λ=1,...,Ψ}, 및 LMT(MT, LAB)의 각 라벨 LAB(λ)을 사용하고, 식(41)-(44)에 나타낸 부분 행렬 MTTFV를 생성한다. 여기서는 MTTFV가 이하와 같이 표현된다.
[수 19]
단, 식(96)의 MTTFV는 ω행COL열의 행렬이며, ω는 1 이상의 정수이며, ROW(1) ,...,ROW(ω)는 각각 LIT(ROW(1))=1,..., LIT(ROW(ω))=1이 되는 행렬 MT(식(34))의 행번호 ROW(1) ,...,ROW(ω)∈SET이다(스텝 S431).
다음에 공통 키 생성부(126a)는 MTTFV의 행 벡터 mtλ' →=(mtλ', 1,...,mtλ', COL)(λ'=ROW(1) ,...,ROW(ω))마다의 연산이나 MTTFV의 행 벡터 mtλ' → 사이의 연산을 행하여, 대각성분을 승법단위원 1F로 한 Ω×Ω의 상삼각행렬을 1행1열로부터 Ω행Ω열까지의 부분 행렬로 하고, Ω+1행 이후의 행 벡터 mtλ' →가 존재하는 경우에는 Ω+1행 이후의 행 벡터 mtλ' →의 전체 요소를 가법단위원 0F로 한 상삼각화 행렬 MTTFV'를 생성한다. 단, Ω은 1 이상으로서 부분 행렬 MTTFV의 행수 및 열수 이하의 정수이다. MTTFV'는 예를 들면 이하와 같아진다.
[수 20]
단 Ω+1행 이후의 각 요소가 존재하지 않는 경우도 있을 수 있고, 또, Ω+1열 이후의 각 요소가 존재하지 않는 경우도 있을 수 있다.
이러한 상삼각화 행렬 MTTFV'는 예를 들면 가우스의 소거법을 이용하여 생성할 수 있다. 즉, 예를 들면 우선 부분 행렬 MTTFV의 1행째의 행 벡터 mt1 →=(mt1,1,...,mt1,COL)을 mt1 ,1로 제산한 것을 MTTFV'의 1행째의 행 벡터로 한다. 다음에 부분 행렬 MTTFV의 2행째의 행 벡터 mt2 →=(mt2 ,1,...,mt2 , COL)로부터 MTTFV'의 1행째의 행 벡터를 mt2 ,1배 한 행 벡터를 뺀 행 벡터(0F, mt2 ,2'', ...,mt2 , COL'')를 mt2 ,2''로 제산한 것을 MTTFV'의 2행째의 행 벡터로 한다. 마찬가지로, 이미 생성한 MTTFV'의 각 행 벡터를 사용하여 그것보다 큰 행번호의 행 벡터를 가공해 감으로써, 상삼각화 행렬 MTTFV'를 생성할 수 있다. 또한, 상삼각화 행렬 MTTFV'를 생성하기 위한 연산은 행 벡터 단위의 단항 연산과 행 벡터 간의 2항 연산이며, 동일한 행 벡터 내의 상이한 요소에 대하여 상이한 연산을 행하는 것은 허용되지 않는다. 제산하기 위한 법이 가법단위원 0F가 된 경우에는 가공 대상의 행 벡터가 다시 선택된다. 부분 행렬 MTTFV가 서로 선형 독립이 아닌 복수의 행 벡터(즉 1차 종속의 복수의 행 벡터)를 포함하는 경우, 그러한 행 벡터를 대표하는 1개의 행 벡터가 Ω×Ω의 상삼각 행렬의 요소를 포함하는 행 벡터가 되고, 그 밖의 행 벡터는 가법단위원 0F만을 요소로 한 행 벡터가 된다(스텝 S432).
다음에 공통 키 생성부(126a)는 λ'=2로 설정한다(스텝 S433). 공통 키 생성부(126a)는 이하의 식(98)의 벡터를 새로운 (mt1 ,1' ... mt1 , COL')로 하여, 상삼각화 행렬 MTTFV'의 1행째의 행 벡터(mt1 ,1' ... mt1 , COL')를 갱신한다.
(mt1 ,1' ... mt1 , COL')-(mt1 ,λ' - 1F)·(mtλ',1' ... mtλ', COL')…(98)
(mtλ', 1' ... mtλ', COL')는 상삼각화 행렬 MTTFV'의 λ'행째의 행 벡터를 나타낸다.
공통 키 생성부(126a)는 λ'=Ω인지 여부를 판정하고(스텝 S435), λ'=Ω이 아니면 λ'+1을 새로운 λ'로 하고(스텝 S436), 스텝 S434의 처리로 돌아간다. 한편, λ'=Ω이면 공통 키 생성부(126a)는 이하가 만족되는지 여부를 판정한다(스텝 S437).
(mt1 ,1' ... mt1 , COL')=(1F,...,1F)…(99)
공통 키 생성부(126a)는 식(99)이 만족되면 K'의 복호가 가능하다고 판정하고(스텝 S438), 이것을 만족하지 않으면 K'의 복호가 불가능하다고 판정한다(스텝 S439).
스텝 S432의 상삼각화 행렬 MTTFV'를 생성하기 위한 모든 연산 내용과 스텝 S434에서의 모든 연산 내용은 기억부(123)에 격납된다. K'의 복호가 가능하다고 판정된 경우(스텝 S438), 상삼각화 행렬 MTTFV'을 생성하기 위한 모든 연산과 스텝 S434에서의 모든 연산이 부분 행렬 MTTFV의 각 요소를 부정원으로 하여 얻어지는 행렬로 시행된다. 그것에 의해서 얻어지는 행렬의 1행째의 열 벡터는 부분 행렬 MTTFV의 각 요소를 부정원으로 하여 얻어지는 행렬 INDTFV의 열 벡터 indλ' →=(indλ', 1,...,indλ', COL)(λ'=ROW(1) ,...,ROW(ω)∈SET)의 선형합, 즉, 당해 열 벡터 indλ' →와 당해 열 벡터에 대응하는 계수 const(λ')의 적화(積和)가 된다.
const(ROW(1))·indROW (1) →+...+const(ROW(ω))·indROW (ω) →
행렬 INDTFV의 μ행째(μ∈SET)의 열 벡터 indμ →에 대응하는 계수 const(μ)가 식(45)을 만족하는 계수 const(μ)가 된다(식(37)(39)의 관계 참조).
〔변형예 등〕
본 발명은 상기 서술한 각 실시형태에 한정되는 것이 아니다. 예를 들면, 스텝 S47에서는 식(93)(94)이 모두 만족되는지 여부가 판정되었지만, 그 대신에 C'(0) 및 C'(λ)(λ=1,...,Ψ)를 결합한 정보와 C''(0) 및 C''(λ)(λ=1,...,Ψ)를 결합한 정보가 일치하는지 여부가 판정되어도 된다. 또는 C'(0) 및 C'(λ)(λ=1,...,Ψ)에 대응하는 1개의 함수값과 C''(0) 및 C''(λ)(λ=1,...,Ψ)에 대응하는 1개의 함수값이 일치하는지 여부가 판정되어도 된다. 또는 식(93)(94)이 모두 만족되는 경우에 제1 값이 출력되고, 식(93)(94)의 적어도 일부가 만족되지 않는 경우에 제1 값이 출력되는 함수에 의해 판정이 이루어져도 된다.
스텝 S48에서 복호가 거절될 때에, 복호 장치(120)가 에러 정보를 출력해도 되고, 복호 결과와 무관계인 난수를 출력해도 되고, 아무것도 출력하지 않아도 된다.
상기 서술한 유한체 Fq 상에서 정의된 각 연산이 위수 q의 유한환 Zq 상에서 정의된 연산으로 치환되어도 된다. 유한체 Fq 상에서 정의된 각 연산을 유한환 Zq 상에서 정의된 연산으로 치환하는 방법의 일례는 소수나 그 멱승값 이외의 q를 허용하는 방법이다.
식(46)(48)-(51)(53)-(56) 그 밖의 연산에 있어서 가법단위원이 곱해지는 항은 순회군 G1이나 G2의 단위원이 된다. 가법단위원에 곱해지는 항의 연산은 행해져도 되고, 행해지지 않아도 된다.
상기 서술한 각종 처리는 기재에 따라 시계열로 실행될 뿐만 아니라 처리를 실행하는 장치의 처리 능력 또는 필요에 따라서 병렬적으로 또는 개별적으로 실행되어도 된다. 그 밖에 본 발명의 취지를 일탈하지 않는 범위에서 적당히 변경이 가능한 것은 말할 필요도 없다.
상기 서술한 구성을 컴퓨터에 의해 실현하는 경우, 각 장치가 가져야 할 기능의 처리 내용은 프로그램에 의해 기술된다. 그리고, 이 프로그램을 컴퓨터로 실행함으로써, 상기 처리 기능이 컴퓨터 상에서 실현된다.
이 처리 내용을 기술한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록 매체로서는 예를 들면 자기 기록 장치, 광디스크, 광자기 기록 매체, 반도체 메모리 등 어떤 것이어도 된다.
이 프로그램의 유통은 예를 들면 그 프로그램을 기록한 DVD, CD-ROM 등의 가반형 기록 매체를 판매, 양도, 대여하거나 함으로써 행한다. 또한, 이 프로그램을 서버 컴퓨터의 기억 장치에 격납해 두고, 네트워크를 통하여 서버 컴퓨터로부터 다른 컴퓨터에 그 프로그램을 전송함으로써, 이 프로그램을 유통시키는 구성으로 해도 된다.
이러한 프로그램을 실행하는 컴퓨터는 예를 들면 우선 가반형 기록 매체에 기록된 프로그램 혹은 서버 컴퓨터로부터 전송된 프로그램을 일단 자기의 기억 장치에 격납한다. 그리고, 처리의 실행시, 이 컴퓨터는 자기의 기억 장치에 격납된 프로그램을 판독하고, 판독한 프로그램에 따른 처리를 실행한다. 또, 이 프로그램의 다른 실행 형태로서, 컴퓨터가 가반형 기록 매체로부터 직접 프로그램을 판독하고, 그 프로그램에 따른 처리를 실행하는 것으로 해도 되고, 또한 이 컴퓨터에 서버 컴퓨터로부터 프로그램이 전송될 때마다, 차례로 수취한 프로그램에 따른 처리를 실행하는 것으로 해도 된다. 또, 서버 컴퓨터로부터 이 컴퓨터로의 프로그램의 전송은 행하지 않고, 그 실행 지시와 결과 취득만에 의해 처리 기능을 실현하는, 소위 ASP(Application Service Provider)형의 서비스에 의해, 상기 서술한 처리를 실행하는 구성으로 해도 된다.
1…암호 시스템
110…암호화 장치
120…복호 장치
110…암호화 장치
120…복호 장치
Claims (36)
- 암호화 장치로서,
난수 r을 생성하는 난수 생성부와,
상기 난수 r에 따른 바이너리 계열과 바이너리 계열의 평문 M과의 배타적 논리합값인 암호문 C2를 생성하는 제1 암호화부와,
상기 난수 r과 상기 암호문 C2와의 세트를 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하여 얻어지는 Smax(Smax≥1)개의 함수값 HS(r, C2)(S=1,...,Smax)를 생성하는 함수 연산부와,
순회군 GT의 원소인 공통 키 K를 생성하는 공통 키 생성부와,
상기 공통 키 K를 사용하여 공통 키 암호 방식에 의해 상기 난수 r을 암호화하여 암호문 C(Ψ+1)를 생성하는 제2 암호화부와,
C(0)=υ·b1(0)+Σι=2 Iυι(0)·bι(0), C(λ)=υ·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)·bι(λ), 및 상기 암호문 C(Ψ+1)를 포함하는 암호문 C1을 생성하는 제3 암호화부를 가지고,
Ψ가 1 이상의 정수이며, ψ가 0 이상 Ψ 이하의 정수이며, n(ψ)이 1 이상의 정수이며, ζ(ψ)가 0 이상의 정수이며, λ가 1 이상 Ψ 이하의 정수이며, I가 2 이상 n(0)+ζ(0) 이하의 상수이며, eψ의 각각이 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))와 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))를 입력으로 하여 상기 순회군 GT의 1개의 원소를 출력하는 비퇴화한 쌍선형 사상이며, i가 1 이상 n(ψ)+ζ(ψ) 이하의 정수이며, bi(ψ)가 상기 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, bi *(ψ)가 상기 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, δ(i, j)가 크로네커의 델타 함수이며, 상기 순회군 GT의 생성원 gT 및 상수 τ, τ'에 대하여 eψ(bi(ψ), bj *(ψ))=gT τ·τ'·δ(i, j)가 만족되고, w(λ)→=(w1(λ) ,...,wn (λ)(λ))가 w1(λ) ,...,wn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이며, υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 상기 함수값 HS(r, C2)(S=1,...,Smax)의 어느 하나에 대응하는 것을 특징으로 하는 암호화 장치. - 제 1 항에 있어서,
상기 난수 r에 따른 바이너리 계열은 상기 난수 r에 랜덤 함수를 작용시킨 함수값인 것을 특징으로 하는 암호화 장치. - 제 1 항에 있어서,
상기 충돌 곤란한 함수 HS의 적어도 일부는 랜덤 함수인 것을 특징으로 하는 암호화 장치. - 제 2 항에 있어서,
상기 충돌 곤란한 함수 HS의 적어도 일부는 랜덤 함수인 것을 특징으로 하는 암호화 장치. - 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
상기 상수 τ, τ', 상기 요소 w1(λ) ,...,wn (λ)(λ), 상기 함수값 HS(r, C2)(S=1,...,Smax), 및 υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))이 유한체 Fq의 원소이며,
상기 순회군 G1 및 G2의 위수의 각각이 상기 유한체 Fq의 위수 q(q≥1)와 동일한 것을 특징으로 하는 암호화 장치. - 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
ζ(λ)=3·n(λ), I=5, Smax=3+Σλ=1 Ψn(λ)이며, υ2(0), υ4(0), υn(λ)+1(λ) ,...,υ3·n(λ)(λ)이 영원이며, K=gT τ·τ'·υ'∈GT, υ'=υ3(0)이며, υ, υ3(0), υ5(0), υ3·n(λ)+1(λ) ,...,υ4·n(λ)(λ)의 각각이 H1(r, C2) ,...,HSmax(r, C2)의 어느 하나인 것을 특징으로 하는 암호화 장치. - 제 6 항에 있어서,
상기 상수 τ, τ', 상기 요소 w1(λ) ,...,wn (λ)(λ), 상기 함수값 HS(r, C2)(S=1,...,Smax), 및 υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))이 유한체 Fq의 원소이며,
상기 순회군 G1 및 G2의 위수의 각각이 상기 유한체 Fq의 위수 q(q≥1)와 동일한 것을 특징으로 하는 암호화 장치. - 복호 장치로서,
SE=Σμ∈ SETconst(μ)·share(μ)(μ∈SET)를 만족하는 계수 const(μ)가 존재하는 경우에, 제1 키 정보 D*(0), 제2 키 정보 D*(λ), 및 입력된 암호문 C'(0), C'(λ)를 사용하여, 공통 키
[수 21]
를 생성하는 공통 키 생성부와,
상기 공통 키 K'를 사용하고, 입력된 암호문 C'(Ψ+1)를 복호하여 복호값 r'를 생성하는 제1 복호부와,
상기 복호값 r'와 입력된 암호문 C2'의 세트를 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하여 얻어지는 Smax(Smax≥1)개의 함수값 HS(r',C2')(S=1,...,Smax)를 생성하는 함수 연산부와,
상기 암호문 C'(0), C'(λ)와, 암호문 C''(0)=υ''·b1(0)+Σι=2 Iυι''(0)·bι(0), C''(λ)=υ''·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)·bι(λ)가 일치하지 않는 경우에 복호를 거절하는 판정부를 가지고,
υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 상기 함수값 HS(r',C2')(S=1,...,Smax)의 어느 하나에 대응하고,
Ψ가 1 이상의 정수이며, ψ가 0 이상 Ψ 이하의 정수이며, ζ(ψ)가 0 이상의 정수이며, λ가 1 이상 Ψ 이하의 정수이며, n(ψ)이 1 이상의 정수이며, I가 2 이상 n(0)+ζ(0) 이하의 상수이며, eψ의 각각이 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))와 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))를 입력으로 하여 순회군 GT의 1개의 원소를 출력하는 비퇴화한 쌍선형 사상이며, i가 1 이상 n(ψ)+ζ(ψ) 이하의 정수이며, bi(ψ)가 상기 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, bi *(ψ)가 상기 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, δ(i, j)가 크로네커의 델타 함수이며, 상기 순회군 GT의 생성원 gT 및 상수 τ, τ'에 대하여 eψ(bi(ψ), bj *(ψ))=gT τ·τ'·δ(i, j)가 만족되고, v(λ)→=(v1(λ) ,...,vn (λ)(λ))이 v1(λ) ,...,vn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이며, w(λ)→=(w1(λ) ,...,wn (λ)(λ))가 w1(λ) ,...,wn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이며, 라벨 LAB(λ)(λ=1,...,Ψ)가 상기 n(λ)차원 벡터v(λ)→ 또는 상기 n(λ)차원 벡터 v(λ)→의 부정 ¬v(λ)→를 나타내는 정보이며, LAB(λ)=v(λ)→는 LAB(λ)이 상기 n(λ)차원 벡터 v(λ)→를 나타내는 것을 의미하고, LAB(λ)=¬v(λ)→는 LAB(λ)이 상기 n(λ)차원 벡터 v(λ)→의 부정 ¬v(λ)→를 나타내는 것을 의미하고, share(λ)(λ=1,...,Ψ)이 비밀 정보 SE를 비밀 분산하여 얻어진 쉐어 정보를 나타내고, 상기 제1 키 정보가 D*(0)=-SE·b1 *(0)+Σι=2 Icoefι(0)·bι *(0)이며, LAB(λ)=v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)이며, LAB(λ)=¬v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)이며, SET가 {LAB(λ)=v(λ)→}∧{v(λ)→·w(λ)→=0} 또는 {LAB(λ)=¬v(λ)→}∧{v(λ)→·w(λ)→≠0}을 만족하는 λ의 집합을 나타내는 것을 특징으로 하는 복호 장치. - 제 8 항에 있어서,
상기 충돌 곤란한 함수 HS의 적어도 일부는 랜덤 함수인 것을 특징으로 하는 복호 장치. - 제 9 항에 있어서,
상기 요소 v1(λ) ,...,vn (λ)(λ), 상기 요소 w1(λ) ,...,wn (λ)(λ), 상기 함수값 HS(r',C2')(S=1,...,Smax), 및 υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))가 유한체 Fq의 원소이며,
상기 순회군 G1 및 G2의 위수의 각각이 상기 유한체 Fq의 위수 q(q≥1)와 동일한 것을 특징으로 하는 복호 장치. - 제 8 항에 있어서,
상기 요소 v1(λ) ,...,vn (λ)(λ), 상기 요소 w1(λ) ,...,wn (λ)(λ), 상기 함수값 HS(r',C2')(S=1,...,Smax), 및 υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))이 유한체 Fq의 원소이며,
상기 순회군 G1 및 G2의 위수의 각각이 상기 유한체 Fq의 위수 q(q≥1)와 동일한 것을 특징으로 하는 복호 장치. - 제 8 항 내지 제 11 항 중 어느 한 항에 있어서,
ζ(λ)=3·n(λ), I=5, Smax=3+Σλ=1 Ψn(λ)이며, υ2''(0), υ4''(0), υn(λ)+1''(λ) ,...,υ3·n(λ)''(λ)이 영원이며, K'=gT τ·τ'·υ'''∈GT, υ'''=υ3''(0)이며, υ'',υ3''(0), υ5''(0), υ3·n(λ)+1''(λ) ,...,υ4·n(λ)''(λ)의 각각이 H1(r',C2'), ...,HSmax(r',C2')의 어느 하나이며, 상기 제1 키 정보가 D*(0)=-SE·b1 *(0)+b3 *(0)+coef4(0)·b4 *(0)이며, LAB(λ)=v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)이며, LAB(λ)=¬v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)인 것을 특징으로 하는 복호 장치. - 제 12 항에 있어서,
상기 복호값 r'에 따른 바이너리 계열은 상기 복호값 r'에 랜덤 함수를 작용시킨 함수값인 것을 특징으로 하는 복호 장치. - 제 8 항 내지 제 11 항 중 어느 한 항에 있어서,
상기 암호문 C'(0) 및 C'(λ)와, 암호문 C''(0)=υ''·b1(0)+Σι=2 Iυι''(0)·bι(0) 및 C''(λ)=υ''·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)·bι(λ)가 일치하는 경우에, 상기 복호값 r'에 따른 바이너리 계열과 입력된 바이너리 계열의 암호문 C2'의 배타적 논리합인 복호값 M'를 생성하는 제2 복호부를 추가로 가지는 것을 특징으로 하는 복호 장치. - 제 14 항에 있어서,
ζ(λ)=3·n(λ), I=5, Smax=3+Σλ=1 Ψn(λ)이며, υ2''(0), υ4''(0), υn(λ)+1''(λ) ,...,υ3·n(λ)''(λ)가 영원이며, K'=gT τ·τ'·υ'''∈GT, υ'''=υ3''(0)이며, υ'',υ3''(0), υ5''(0), υ3·n(λ)+1''(λ) ,...,υ4·n(λ)''(λ)의 각각이 H1(r',C2'), ...,HSmax(r',C2')의 어느 하나이며, 상기 제1 키 정보가 D*(0)=-SE·b1 *(0)+b3 *(0)+coef4(0)·b4 *(0)이며, LAB(λ)=v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)이며, LAB(λ)=¬v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)인 것을 특징으로 하는 복호 장치. - 제 15 항에 있어서,
상기 복호값 r'에 따른 바이너리 계열은 상기 복호값 r'에 랜덤 함수를 작용시킨 함수값인 것을 특징으로 하는 복호 장치. - 암호화 방법으로서,
난수 생성부가 난수 r을 생성하는 스텝과,
제1 암호화부가 상기 난수 r에 따른 바이너리 계열과 바이너리 계열의 평문 M의 배타적 논리합값인 암호문 C2를 생성하는 스텝과,
함수 연산부가 상기 난수 r과 상기 암호문 C2의 세트를 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하여 얻어지는 Smax(Smax≥1)개의 함수값 HS(r, C2)(S=1,...,Smax)를 생성하는 스텝과,
공통 키 생성부가 순회군 GT의 원소인 공통 키 K를 생성하는 스텝과,
제2 암호화부가 상기 공통 키 K를 사용하여 공통 키 암호 방식에 의해 상기 난수 r을 암호화하여 암호문 C(Ψ+1)를 생성하는 스텝과,
제3 암호화부가 C(0)=υ·b1(0)+Σι=2 Iυι(0)·bι(0), C(λ)=υ·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)·bι(λ), 및 상기 암호문 C(Ψ+1)를 포함하는 암호문 C1을 생성하는 스텝을 가지고,
Ψ가 1 이상의 정수이며, ψ가 0 이상 Ψ 이하의 정수이며, n(ψ)이 1 이상의 정수이며, ζ(ψ)이 0 이상의 정수이며, λ가 1 이상 Ψ 이하의 정수이며, I가 2 이상 n(0)+ζ(0) 이하의 상수이며, eψ의 각각이 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))와 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))를 입력으로 하여 상기 순회군 GT의 1개의 원소를 출력하는 비퇴화한 쌍선형 사상이며, i가 1 이상 n(ψ)+ζ(ψ) 이하의 정수이며, bi(ψ)가 상기 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, bi *(ψ)가 상기 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, δ(i, j)이 크로네커의 델타 함수이며, 상기 순회군 GT의 생성원 gT 및 상수 τ, τ'에 대하여 eψ(bi(ψ), bj *(ψ))=gT τ·τ'·δ(i, j)가 만족되고, w(λ)→=(w1(λ) ,...,wn (λ)(λ))가 w1(λ) ,...,wn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이며, υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 상기 함수값 HS(r, C2)(S=1,...,Smax)의 어느 하나에 대응하는 것을 특징으로 하는 암호화 방법. - 제 17 항에 있어서,
상기 난수 r에 따른 바이너리 계열은 상기 난수 r에 랜덤 함수를 작용시킨 함수값인 것을 특징으로 하는 암호화 방법. - 제 17 항에 있어서,
상기 충돌 곤란한 함수 HS의 적어도 일부는 랜덤 함수인 것을 특징으로 하는 암호화 방법. - 제 18 항에 있어서,
상기 충돌 곤란한 함수 HS의 적어도 일부는 랜덤 함수인 것을 특징으로 하는 암호화 방법. - 제 17 항 내지 제 20 항 중 어느 한 항에 있어서,
상기 상수 τ, τ', 상기 요소 w1(λ) ,...,wn (λ)(λ), 상기 함수값 HS(r, C2)(S=1,...,Smax), 및 υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))가 유한체 Fq의 원소이며,
상기 순회군 G1 및 G2의 위수의 각각이 상기 유한체 Fq의 위수 q(q≥1)와 동일한 것을 특징으로 하는 암호화 방법. - 제 17 항 내지 제 20 항 중 어느 한 항에 있어서,
ζ(λ)=3·n(λ), I=5, Smax=3+Σλ=1 Ψn(λ)이며, υ2(0), υ4(0), υn(λ)+1(λ) ,...,υ3·n(λ)(λ)이 영원이며, K=gT τ·τ'·υ'∈GT, υ'=υ3(0)이며, υ, υ3(0), υ5(0), υ3·n(λ)+1(λ) ,...,υ4·n(λ)(λ)의 각각이 H1(r, C2) ,...,HSmax(r, C2)의 어느 하나인 것을 특징으로 하는 암호화 방법. - 제 22 항에 있어서,
상기 상수 τ, τ', 상기 요소 w1(λ) ,...,wn (λ)(λ), 상기 함수값 HS(r, C2)(S=1,...,Smax), 및 υ, υι(0)(ι=2,...,I), υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))가 유한체 Fq의 원소이며,
상기 순회군 G1 및 G2의 위수의 각각이 상기 유한체 Fq의 위수 q(q≥1)와 동일한 것을 특징으로 하는 암호화 방법. - 복호 방법으로서,
SE=Σμ∈ SETconst(μ)·share(μ)(μ∈SET)을 만족하는 계수 const(μ)가 존재하는 경우에, 공통 키 생성부가 제1 키 정보 D*(0), 제2 키 정보 D*(λ), 및 입력된 암호문 C'(0), C'(λ)를 사용하여, 공통 키
[수 22]
를 생성하는 스텝과,
제1 복호부가 상기 공통 키 K'를 사용하고, 입력된 암호문 C'(Ψ+1)를 복호하여 복호값 r'를 생성하는 스텝과,
함수 연산부가 상기 복호값 r'와 입력된 암호문 C2'의 세트를 Smax(Smax≥1)개의 충돌 곤란한 함수 HS(S=1,...,Smax)의 각각에 입력하여 Smax(Smax≥1)개의 함수값 HS(r',C2')(S=1,...,Smax)를 생성하는 스텝과,
판정부가 상기 암호문 C'(0), C'(λ)와, 암호문 C''(0)=υ''·b1(0)+Σι=2 Iυι''(0)·bι(0), C''(λ)=υ''·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)·bι(λ)가 일치하지 않는 경우에 복호를 거절하는 스텝을 가지고,
υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))의 적어도 일부의 값이 상기 함수값 HS(r',C2')(S=1,...,Smax)의 어느 하나에 대응하고,
Ψ가 1 이상의 정수이며, ψ가 0 이상 Ψ 이하의 정수이며, ζ(ψ)가 0 이상의 정수이며, λ가 1 이상 Ψ 이하의 정수이며, n(ψ)이 1 이상의 정수이며, I가 2 이상 n(0)+ζ(0) 이하의 상수이며, eψ의 각각이 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))와 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))를 입력으로 하여 순회군 GT의 1개의 원소를 출력하는 비퇴화한 쌍선형 사상이며, i가 1 이상 n(ψ)+ζ(ψ) 이하의 정수이며, bi(ψ)가 상기 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, bi *(ψ)가 상기 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이며, δ(i, j)가 크로네커의 델타 함수이며, 상기 순회군 GT의 생성원 gT 및 상수 τ, τ'에 대하여 eψ(bi(ψ), bj *(ψ))=gT τ·τ'·δ(i, j)가 만족되고, v(λ)→=(v1(λ) ,...,vn (λ)(λ))가 v1(λ) ,...,vn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이며, w(λ)→=(w1(λ) ,...,wn (λ)(λ))가 w1(λ) ,...,wn (λ)(λ)를 요소로 하는 n(λ)차원 벡터이며, 라벨 LAB(λ)(λ=1,...,Ψ)이 상기 n(λ)차원 벡터 v(λ)→ 또는 상기 n(λ)차원 벡터 v(λ)→의 부정 ¬v(λ)→를 나타내는 정보이며, LAB(λ)=v(λ)→는 LAB(λ)이 상기 n(λ)차원 벡터 v(λ)→를 나타내는 것을 의미하고, LAB(λ)=¬v(λ)→는 LAB(λ)이 상기 n(λ)차원 벡터 v(λ)→의 부정 ¬v(λ)→를 나타내는 것을 의미하고, share(λ)(λ=1,...,Ψ)이 비밀 정보 SE를 비밀 분산하여 얻어진 쉐어 정보를 나타내고, 상기 제1 키 정보가 D*(0)=-SE·b1 *(0)+Σι=2 Icoefι(0)·bι *(0)이며, LAB(λ)=v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)이며, LAB(λ)=¬v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)이며, SET가 {LAB(λ)=v(λ)→}∧{v(λ)→·w(λ)→=0} 또는 {LAB(λ)=¬v(λ)→}∧{v(λ)→·w(λ)→≠0}을 만족하는 λ의 집합을 나타내는 것을 특징으로 하는 복호 방법. - 제 24 항에 있어서,
상기 충돌 곤란한 함수 HS의 적어도 일부는 랜덤 함수인 것을 특징으로 하는 복호 방법. - 제 25 항에 있어서,
상기 요소 v1(λ) ,...,vn (λ)(λ), 상기 요소 w1(λ) ,...,wn (λ)(λ), 상기 함수값 HS(r',C2')(S=1,...,Smax), 및 υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))이 유한체 Fq의 원소이며,
상기 순회군 G1 및 G2의 위수의 각각이 상기 유한체 Fq의 위수 q(q≥1)와 동일한 것을 특징으로 하는 복호 방법. - 제 24 항에 있어서,
상기 요소 v1(λ) ,...,vn (λ)(λ), 상기 요소 w1(λ) ,...,wn (λ)(λ), 상기 함수값 HS(r',C2')(S=1,...,Smax), 및 υ'',υι''(0)(ι=2,...,I), υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))가 유한체 Fq의 원소이며,
상기 순회군 G1 및 G2의 위수의 각각이 상기 유한체 Fq의 위수 q(q≥1)와 동일한 것을 특징으로 하는 복호 방법. - 제 24 항 내지 제 27 항 중 어느 한 항에 있어서,
ζ(λ)=3·n(λ), I=5, Smax=3+Σλ=1 Ψn(λ)이며, υ2''(0), υ4''(0), υn(λ)+1''(λ) ,...,υ3·n(λ)''(λ)가 영원이며, K'=gT τ·τ'·υ'''∈GT, υ'''=υ3''(0)이며, υ'',υ3''(0), υ5''(0), υ3·n(λ)+1''(λ) ,...,υ4·n(λ)''(λ)의 각각이 H1(r',C2'), ...,HSmax(r',C2')의 어느 하나이며, 상기 제1 키 정보가 D*(0)=-SE·b1 *(0)+b3 *(0)+coef4(0)·b4 *(0)이며, LAB(λ)=v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)이며, LAB(λ)=¬v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)인 것을 특징으로 하는 복호 방법. - 제 28 항에 있어서,
상기 복호값 r'에 따른 바이너리 계열은 상기 복호값 r'에 랜덤 함수를 작용시킨 함수값인 것을 특징으로 하는 복호 방법. - 제 24 항 내지 제 27 항 중 어느 한 항에 있어서,
상기 암호문 C'(0) 및 C'(λ)와, 암호문 C''(0)=υ''·b1(0)+Σι=2 Iυι''(0)·bι(0) 및 C''(λ)=υ''·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)·bι(λ)가 일치하는 경우에, 상기 복호값 r'에 따른 바이너리 계열과 입력된 바이너리 계열의 암호문 C2'의 배타적 논리합인 복호값 M'를 생성하는 제2 복호부를 추가로 가지는 것을 특징으로 하는 복호 방법. - 제 30 항에 있어서,
ζ(λ)=3·n(λ), I=5, Smax=3+Σλ=1 Ψn(λ)이며, υ2''(0), υ4''(0), υn(λ)+1''(λ) ,...,υ3·n(λ)''(λ)가 영원이며, K'=gT τ·τ'·υ'''∈GT, υ'''=υ3''(0)이며, υ'',υ3''(0), υ5''(0), υ3·n(λ)+1''(λ) ,...,υ4·n(λ)''(λ)의 각각이 H1(r',C2'), ...,HSmax(r',C2')의 어느 하나이며, 상기 제1 키 정보가 D*(0)=-SE·b1 *(0)+b3 *(0)+coef4(0)·b4 *(0)이며, LAB(λ)=v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)+Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)이며, LAB(λ)=¬v(λ)→가 되는 λ에 대한 상기 제2 키 정보가 D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)+Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)인 것을 특징으로 하는 복호 방법. - 제 31 항에 있어서,
상기 복호값 r'에 따른 바이너리 계열은 상기 복호값 r'에 랜덤 함수를 작용시킨 함수값인 것을 특징으로 하는 복호 방법. - 제 1 항의 암호화 장치로서 컴퓨터를 기능시키기 위한 프로그램.
- 제 1 항의 암호화 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 기록 매체.
- 제 8 항의 복호 장치로서 컴퓨터를 기능시키기 위한 프로그램.
- 제 8 항의 복호 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 기록 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2010-166406 | 2010-07-23 | ||
JP2010166406 | 2010-07-23 | ||
PCT/JP2011/066692 WO2012011564A1 (ja) | 2010-07-23 | 2011-07-22 | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130024931A true KR20130024931A (ko) | 2013-03-08 |
KR101478766B1 KR101478766B1 (ko) | 2015-01-02 |
Family
ID=45496982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127034442A KR101478766B1 (ko) | 2010-07-23 | 2011-07-22 | 암호화 장치, 복호 장치, 암호화 방법, 복호 방법, 프로그램, 및 기록 매체 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8897442B2 (ko) |
EP (1) | EP2597812B1 (ko) |
JP (1) | JP5466763B2 (ko) |
KR (1) | KR101478766B1 (ko) |
CN (1) | CN103004129B (ko) |
ES (1) | ES2686426T3 (ko) |
WO (1) | WO2012011564A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101580514B1 (ko) * | 2015-06-22 | 2015-12-28 | (주) 시큐어가드 테크놀러지 | 시드 키를 이용한 패스워드 관리방법, 패스워드 관리장치 및 이를 적용한 컴퓨터로 읽을 수 있는 기록매체 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5689839B2 (ja) * | 2012-02-16 | 2015-03-25 | 日本電信電話株式会社 | 公開鍵暗号システム、公開鍵暗号方法、受信装置、およびプログラム |
CN102665209B (zh) * | 2012-05-10 | 2014-10-08 | 佛山科学技术学院 | 无线传感器网络密钥设置方法 |
CN102651864B (zh) * | 2012-05-16 | 2014-08-20 | 佛山科学技术学院 | 异构无线传感器网络的密钥设置方法 |
CN102665210B (zh) * | 2012-05-19 | 2014-10-08 | 佛山科学技术学院 | 分区的无线传感器网络的安全密钥设置方法 |
US20150278553A1 (en) * | 2013-01-18 | 2015-10-01 | Mitsubishi Electric Corporation | Data decryption device, attribute-based encryption system, random number element removing device, randomized secret key generation device, data decryption method, and data decryption program |
WO2015088448A1 (en) * | 2013-12-11 | 2015-06-18 | Singapore Management University | Method for matching probabilistic encrypted data |
WO2015146431A1 (ja) * | 2014-03-28 | 2015-10-01 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
JP6180375B2 (ja) * | 2014-06-20 | 2017-08-16 | 日本電信電話株式会社 | コミットメント方法、コミットメントシステム、送信者装置、受信者装置及びプログラム |
WO2016002020A1 (ja) * | 2014-07-02 | 2016-01-07 | 三菱電機株式会社 | 行列生成装置及び行列生成方法及び行列生成プログラム |
US10218496B2 (en) * | 2014-08-04 | 2019-02-26 | Cryptography Research, Inc. | Outputting a key based on an authorized sequence of operations |
JP5968484B1 (ja) * | 2015-03-18 | 2016-08-10 | 日本電信電話株式会社 | シェア復旧システム、シェア復旧方法、およびプログラム |
CN105721166B (zh) * | 2016-03-03 | 2018-09-21 | 武汉大学 | 一种量子计算安全的身份识别协议建立方法 |
CN107196760B (zh) * | 2017-04-17 | 2020-04-14 | 徐智能 | 具有可调整性的伴随式随机重构密钥的序列加密方法 |
EP3419211B1 (en) * | 2017-06-23 | 2022-03-30 | Flytxt B.V. | Privacy preserving computation protocol for data analytics |
US10411891B2 (en) * | 2017-06-28 | 2019-09-10 | Nxp B.V. | Distance-revealing encryption |
CN110348229B (zh) * | 2019-06-11 | 2021-09-21 | 北京思源理想控股集团有限公司 | 数据的加密方法及装置、数据的解密方法及装置 |
CN110278206B (zh) * | 2019-06-19 | 2021-10-08 | 董玺 | 一种基于双私人密钥的bwe加密算法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5271061A (en) * | 1991-09-17 | 1993-12-14 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
AU1732597A (en) * | 1996-02-21 | 1997-09-10 | Card Call Service Co., Ltd. | Communication method using common cryptographic key |
US7093137B1 (en) * | 1999-09-30 | 2006-08-15 | Casio Computer Co., Ltd. | Database management apparatus and encrypting/decrypting system |
US7181017B1 (en) * | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US20020141577A1 (en) * | 2001-03-29 | 2002-10-03 | Ripley Michael S. | Method and system for providing bus encryption based on cryptographic key exchange |
US7088821B2 (en) * | 2001-05-03 | 2006-08-08 | Cheman Shaik | Absolute public key cryptographic system and method surviving private-key compromise with other advantages |
US20050195975A1 (en) * | 2003-01-21 | 2005-09-08 | Kevin Kawakita | Digital media distribution cryptography using media ticket smart cards |
US9818136B1 (en) * | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
KR100585119B1 (ko) * | 2004-01-07 | 2006-06-01 | 삼성전자주식회사 | 암호화 장치, 암호화 방법 및 그 기록매체 |
US7937593B2 (en) | 2004-08-06 | 2011-05-03 | Broadcom Corporation | Storage device content authentication |
US20080046731A1 (en) * | 2006-08-11 | 2008-02-21 | Chung-Ping Wu | Content protection system |
EP2122903A1 (en) * | 2006-12-21 | 2009-11-25 | International Business Machines Corporation | Key distribution for securing broadcast transmission to groups of users in wireless networks |
JP4843511B2 (ja) * | 2007-01-22 | 2011-12-21 | 日本電信電話株式会社 | 同報通信暗号化方法、情報復号方法、それらの装置、それらのプログラム、およびそれらの記録媒体 |
JP2011530840A (ja) * | 2008-08-13 | 2011-12-22 | トムソン ライセンシング | 画像データを暗号化し、暗号化された画像データを暗号解除する装置および方法、画像データ配信システム |
JP5322620B2 (ja) * | 2008-12-18 | 2013-10-23 | 株式会社東芝 | 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム |
CN102396011B (zh) * | 2009-04-24 | 2014-04-16 | 日本电信电话株式会社 | 加密装置、解密装置、加密方法、解密方法、安全方法、程序以及记录介质 |
US8938068B2 (en) * | 2009-08-03 | 2015-01-20 | Nippon Telegraph And Telephone Corporation | Functional encryption applied system, information output apparatus, information processing apparatus, encryption protocol execution method, information output method, information processing method, program and recording medium |
-
2011
- 2011-07-22 CN CN201180034973.1A patent/CN103004129B/zh active Active
- 2011-07-22 JP JP2012525440A patent/JP5466763B2/ja active Active
- 2011-07-22 WO PCT/JP2011/066692 patent/WO2012011564A1/ja active Application Filing
- 2011-07-22 EP EP11809734.4A patent/EP2597812B1/en active Active
- 2011-07-22 US US13/703,381 patent/US8897442B2/en active Active
- 2011-07-22 KR KR1020127034442A patent/KR101478766B1/ko active IP Right Grant
- 2011-07-22 ES ES11809734.4T patent/ES2686426T3/es active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101580514B1 (ko) * | 2015-06-22 | 2015-12-28 | (주) 시큐어가드 테크놀러지 | 시드 키를 이용한 패스워드 관리방법, 패스워드 관리장치 및 이를 적용한 컴퓨터로 읽을 수 있는 기록매체 |
Also Published As
Publication number | Publication date |
---|---|
US8897442B2 (en) | 2014-11-25 |
EP2597812B1 (en) | 2018-06-20 |
CN103004129B (zh) | 2015-04-08 |
ES2686426T3 (es) | 2018-10-17 |
JPWO2012011564A1 (ja) | 2013-09-09 |
US20130083921A1 (en) | 2013-04-04 |
CN103004129A (zh) | 2013-03-27 |
EP2597812A1 (en) | 2013-05-29 |
WO2012011564A1 (ja) | 2012-01-26 |
EP2597812A4 (en) | 2016-09-28 |
KR101478766B1 (ko) | 2015-01-02 |
JP5466763B2 (ja) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101478766B1 (ko) | 암호화 장치, 복호 장치, 암호화 방법, 복호 방법, 프로그램, 및 기록 매체 | |
KR101246241B1 (ko) | 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체 | |
US9960906B2 (en) | Proxy computing system, computing apparatus, capability providing apparatus, proxy computing method, capability providing method, program, and recording medium | |
Han et al. | Identity-based data storage in cloud computing | |
JP5379914B2 (ja) | 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体 | |
KR101362443B1 (ko) | 함수 암호 응용 시스템, 정보 출력 장치, 정보 처리 장치, 암호 프로토콜 실행 방법, 정보 출력 방법, 정보 처리 방법, 프로그램, 및 기록 매체 | |
JP5562475B2 (ja) | 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム | |
JP6259402B2 (ja) | 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム | |
Backes et al. | Fully secure inner-product proxy re-encryption with constant size ciphertext | |
JP5612494B2 (ja) | 関数暗号を用いた時限暗号システム、時限暗号方法、装置、プログラム | |
Ding et al. | Ciphertext retrieval via attribute-based FHE in cloud computing | |
JP5449040B2 (ja) | 鍵交換システム、鍵交換装置、鍵抽出装置、鍵交換方法、鍵抽出方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20191212 Year of fee payment: 6 |