KR101456579B1 - 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체 - Google Patents

비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체 Download PDF

Info

Publication number
KR101456579B1
KR101456579B1 KR1020137000486A KR20137000486A KR101456579B1 KR 101456579 B1 KR101456579 B1 KR 101456579B1 KR 1020137000486 A KR1020137000486 A KR 1020137000486A KR 20137000486 A KR20137000486 A KR 20137000486A KR 101456579 B1 KR101456579 B1 KR 101456579B1
Authority
KR
South Korea
Prior art keywords
secret
share
coef
information
value
Prior art date
Application number
KR1020137000486A
Other languages
English (en)
Other versions
KR20130036044A (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 KR20130036044A publication Critical patent/KR20130036044A/ko
Application granted granted Critical
Publication of KR101456579B1 publication Critical patent/KR101456579B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key 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/0833Key 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/0836Key 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
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

분산 장치가 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값을 각각 H(α)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 부분 집합 SUB(α)마다 독립적으로 비밀 분산하고, 각 요소 θ(ψ, i, β)·g2에 따른 값의 쉐어 정보 SH(ψ, i, β, α, h(α))를 생성한다. 분산 관리 장치(PA(α, h(α)))가 부분 집합 SUB(α)마다 공유되는 공통 정보와, 쉐어 정보 SH(ψ, i, β, α, h(α))에 대하여, 부분 집합 SUB(α)마다의 공통 연산을 행하여 분산 비밀값 DSH(ψ, α, h(α))를 생성한다. 취득 장치가 부분 집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(ψ, α)을 생성하고, 비밀 복원값 SUBSK(ψ, α)을 사용하여 생성 정보 D*(ψ)를 생성한다.

Description

비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체{SECRET SHARING SYSTEM, SHARING APPARATUS, SHARE MANAGEMENT APPARATUS, ACQUISITION APPARATUS, SECRET SHARING METHOD, PROGRAM AND RECORDING MEDIUM}
본 발명은 비밀 분산 기술에 관한 것이다.
비밀 정보를 보관하는 경우, 비밀 정보의 분실이나 파괴의 리스크와 도난의 리스크가 있다. 분실이나 파괴의 리스크는 복수의 비밀 정보를 보관해 둠으로써 저감할 수 있다. 그러나, 이 경우에는 도난의 리스크가 증가한다. 이러한 리스크를 함께 해결하는 방법의 하나로서 비밀 분산법(SSS:Secret Sharing Scheme)이 있다(예를 들면, 비특허문헌 1, 2 참조).
비밀 분산법은 비밀 정보 MSK로부터 복수의 쉐어 정보 SH(1) ,...,SH(N)를 생성하고, 이들을 복수의 분산 관리 장치(PA(1) ,...,PA(N))로 분산하여 관리시키고, 이들 쉐어 정보 SH(1) ,...,SH(N) 중 소정수 이상의 쉐어 정보를 얻을 수 있었던 경우에만, 비밀 정보 MSK를 복원할 수 있는 방식이다. 이하에, 비밀 분산법의 대표적인 방식을 나타낸다.
(N, N) 역치 비밀 분산 방식:
(N, N) 역치 비밀 분산 방식(「N-out-of-N 분산 방식」이나 「N-out-of-N 역치 분산 방식」이라고 하는 경우도 있음))에서는, 모든 쉐어 정보 SH(1) ,...,SH(N)가 주어지면 비밀 정보 MSK를 복원할 수 있지만, 임의의 N-1개의 쉐어 정보 SH(φ1) ,...,SH(φN-1)가 주어져도 비밀 정보 MSK의 정보는 전혀 얻어지지 않는다. 이하에 (N, N) 역치 비밀 분산 방식의 일례를 나타낸다.
·SH1,...,SHN -1을 랜덤으로 선택한다.
·SHN=MSK-(SH1+...+SHN -1)의 계산을 한다.
·각 쉐어 정보 SH1,...,SHN을 복수의 분산 관리 장치(PA(1) ,...,PA(N))로 분산하여 관리시킨다.
·모든 쉐어 정보 SH1,...,SHN이 주어지면, MSK=SH1+...+SHN의 복원 처리에 의해 비밀 정보 MSK를 복원할 수 있다.
또한, 쉐어 정보 SH1,...,SHN으로부터 비밀 정보 MSK를 복원하기 위한 연산 MSK=SH1+...+SHN은 선형이다. 그 때문에 각 쉐어 정보 SH(1) ,...,SH(N)과 값 σ를 피연산자로 하고, 쉐어 정보마다 동일한 선형 연산 CALC을 행한 결과를 각 쉐어 정보 SH'(1) ,...,SH'(N)로 하여 복원 처리를 행한 경우, 비밀 정보 MSK와 값 σ를 피연산자로 하여 당해 선형 연산 CALC을 행한 결과가 얻어진다. 예를 들면, SH'(1)=σ·SH(1),..,SH'(N)=σ·SH(N)을 각 쉐어 정보 SH'(1) ,...,SH'(N)로 하여 복원 처리가 실행된 경우, 이하의 값이 얻어진다.
σ·SH(1)+...+σ·SH(N)
=σ·(SH(1)+ ...+SH(N))
=σ·MSK…(1)
한편, 각 쉐어 정보 SH(1) ,...,SH(N)와, 서로 독립적인 값 σ(1) ,...,σ(N)을 피연산자로 하고, 쉐어 정보마다 동일한 선형 연산 CALC을 행한 결과를 각 쉐어 정보 SH'(1) ,...,SH'(N)로 하여 복원 처리가 실행된 경우에는, 통상적으로 비밀 정보 MSK를 피연산자로 한 연산 결과를 얻을 수는 없다. 예를 들면, SH'(1)=σ(1)·SH(1),..,SH'(N)=σ(N)·SH(N)을 각 쉐어 정보 SH'(1) ,...,SH'(N)로 하여 복원 처리가 실행된 경우, 이하의 값이 얻어진다.
σ(1)·SH(1)+...+σ(N)·SH(N)…(2)
(Kt, N) 역치 비밀 분산 방식:
(Kt, N) 역치 비밀 분산 방식(「Kt-out-of-N 분산 방식」이나 「Kt-out-of-N 역치 분산 방식」이라고 하는 경우도 있음)에서는, 임의의 상이한 Kt개의 쉐어 정보 SH(φ1) ,...,SH(φKt)가 주어지면 비밀 정보 MSK를 복원할 수 있지만, 임의의 Kt-1개의 쉐어 정보 SH(φ1) ,...,SH(φKt -1)이 주어져도 비밀 정보 MSK의 정보는 전혀 얻어지지 않는다. 첨자의 Kt는 Kt를 나타낸다. 이하에 (Kt, N) 역치 비밀 분산 방식의 일례를 나타낸다.
·f(0)=MSK를 만족하는 Kt-1차의 다항식 f(x)=ξ01·x+ξ2·x2+...+ξKt -1·xKt-1을 랜덤으로 선택한다. 즉, ξ0=MSK로 하고, ξ1,...,ξKt -1을 랜덤으로 선택한다. 쉐어 정보를 SHρ=(ρ, f(ρ))(ρ=1,...,N)로 한다.
·임의의 상이한 Kt개의 쉐어 정보 SH(φ1) ,...,SH(φKt)((φ1,...,φKt)⊂(1,...,N))이 얻어진 경우, 예를 들면, 라그랑지(Lagrange)의 보간 공식을 사용하여, 이하와 같은 복원 처리에 의해 비밀 정보 MSK를 복원할 수 있다.
MSK=f(0)=λ1·f(φ1)+...+λKt·f(φKt)…(3)
[수 1]
Figure 112013001868551-pct00001
또한,
Figure 112013001868551-pct00002
은 선두부터 ρ번째의 피연산자〔분모의 요소(φρρ), 분자의 요소(x-φρ)〕가 존재하지 않는 것을 의미한다. 즉, 식(4)의 분모는 이하와 같아진다.
ρ1)·...·(φρρ-1)·(φρρ+1)·...·(φρKt)
식(4)의 분자는 이하와 같아진다.
(x-φ1)·...·(x-φρ-1)·(x-φρ+1)·...·(x-φKt)
이들의 관계는 체상에서도 성립한다.
식(3)의 연산은 선형이다. 그 때문에, 각 쉐어 정보 SH(φ1) ,...,SH(φKt)와 값 σ를 피연산자로 하고, 쉐어 정보마다 동일한 선형 연산 CALC을 행한 결과를 각 쉐어 정보 SH'(φ1) ,...,SH'(φKt)로 하여 복원된 값은, 비밀 정보 MSK와 값 σ를 피연산자로 하여 선형 연산 CALC을 행한 결과와 동일해진다. 한편, 각 쉐어 정보 SH(φ1) ,...,SH(φKt)와, 서로 독립적인 값 σ(φ1) ,...,σ(φKt)을 피연산자로 하고, 쉐어 정보마다 동일한 선형 연산 CALC을 행한 결과를 각 쉐어 정보 SH'(φ1) ,...,SH'(φKt)로 하여 복원 처리가 실행된 경우에는, 통상적으로 비밀 정보 MSK를 피연산자로 한 연산 결과를 얻을 수는 없다.
쿠로사와 카오루, 오가타 와카하, "현대 암호의 기초수리(전자정보통신 렉처 시리즈)", 코로나사, 2004년 3월, p.116-119 A. Shamir, "How to Share a Secret", Communications of the ACM, November 1979, Volume 22, Number 11, pp. 612-613.
이하의 조건을 만족하는 방식을 상정한다.
(조건 1) 분산 장치가 비밀 정보 MSK를 비밀 분산하여 복수의 쉐어 정보 SH(1) ,...,SH(N)를 생성하고, 이들을 복수의 분산 관리 장치(PA(1) ,...,PA(N))로 분산하여 관리시킨다.
(조건 2) 각 분산 관리 장치(PA(1) ,...,PA(N))가 각각 어떠한 연산을 실행한다.
(조건 3) 취득 장치는 비밀 정보 MSK를 얻을 수는 없지만, 소정수 이상의 분산 관리 장치에서 생성된 연산 결과가 주어진 경우에, 비밀 정보 MSK와 임의의 값 σ를 피연산자에 포함하는 연산의 결과에 대응하는 생성 정보를 얻을 수 있다.
그러나, 이러한 방식을 실현하는 것은 용이하지 않다. 즉, 각 분산 관리 장치(PA(1) ,...,PA(N))가 각각 서로 독립적인 값 σ(1) ,...,σ(N)을 사용하여 연산을 실행한 것에서는 취득 장치는 각 분산 관리 장치의 연산 결과를 쉐어 정보로 한 복원 처리를 올바르게 실행할 수 없고, 원하는 생성 정보가 얻어지지 않는다. 한편, 값 σ는 생성 정보를 추측하기 위한 정보가 될 수 있기 때문에, 모든 분산 관리 장치(PA(1) ,...,PA(N))가 값 σ 그 자체를 공유하는 것은 안전성의 관점에서 바람직하지 않다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 상기 조건 1~3을 만족하는 방식을 안전하게 실현하는 것을 목적으로 한다.
본 발명에서는, 분산 장치와 Σα=1 Lh(α)개의 분산 관리 장치(PA(α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2))와 취득 장치에 의해 비밀 분산 처리가 실행된다. 분산 장치가 Ψ를 1 이상의 정수로 하고, ψ를 0 이상 Ψ 이하의 정수 ψ=0,...,Ψ로 하고, n(ψ)을 1 이상의 정수로 하고, ζ(ψ)를 0 이상의 정수로 하고, 순회군 G2의 생성원을 g2로 하고, θ(ψ, i, β)(i=1,...,n(ψ)+ζ(ψ), β=1,...,n(ψ)+ζ(ψ), n(ψ)≥1,ζ(ψ)≥1)에 대한 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 bi *(ψ)=(θ(ψ, i,1)·g2,...,θ(ψ, i, n(ψ)+ζ(ψ))·g2)∈G2 n (ψ)+ζ(ψ)로 한 경우에 있어서의, 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값을, 각각 H(α)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 부분 집합 SUB(α)마다 독립적으로 소정의 비밀 분산 방식에 따라 비밀 분산하고, 각 요소 θ(ψ, i, β)·g2에 따른 값의 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))를 생성한다. 분산 관리 장치(PA(α, h(α)))가 부분 집합 SUB(α)마다 공유되는 공통 정보와, 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))에 대하여, 부분 집합 SUB(α)마다 공통의 공통 연산을 행하여 분산 비밀값 DSH(ψ, α, h(α))를 생성한다. 취득 장치가 동일한 부분 집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(ψ, α, h(α))을 사용하고, 상기 비밀 분산 방식에 따른 부분 집합 SUB(α)마다의 복원 처리에 의해 당해 부분 집합 SUB(α)마다의 비밀 복원값 SUBSK(ψ, α)을 생성하고, 비밀 복원값 SUBSK(ψ, α)을 사용하여 생성 정보 D*(ψ)를 생성한다.
본 발명에서는, 부분 집합 SUB(α)마다 독립적으로 비밀 정보인 기저 벡터 bi *(ψ)를 비밀 분산하고, 부분 집합 SUB(α)마다 공유되는 공통 정보를 사용하여, 분산 비밀값 DSH(ψ, α, h(α))을 생성한다. 이 경우, 부분 집합 SUB(α) 단위에서는 분산 비밀값 DSH(ψ, α, h(α))을 쉐어 정보로 한 복원 처리를 올바르게 실행할 수 있다. 공통 정보는 부분 집합 SUB(α)마다 공유되고, 모든 분산 관리 장치(PA(α, h(α)))에 공유되지 않기 때문에 안전성이 높다.
이상과 같이, 본 발명에서는 상기 조건 1~3을 만족하는 방식을 안전하게 실현할 수 있다.
도 1은 제1 실시형태의 비밀 분산 시스템의 전체 구성을 설명하기 위한 블록도이다.
도 2는 도 1의 분산 장치의 구성을 설명하기 위한 블록도이다.
도 3a는 제1 실시형태의 분산 관리 장치의 구성을 설명하기 위한 블록도이다. 도 3b는 제1 실시형태의 공유값 생성 장치의 구성을 설명하기 위한 블록도이다.
도 4는 제1 실시형태의 취득 장치의 구성을 설명하기 위한 블록도이다.
도 5a는 도 2의 비밀 분산부의 상세를 설명하기 위한 블록도이다. 도 5b는 도 3a의 분산 비밀값 생성부의 상세를 설명하기 위한 블록도이다.
도 6은 도 4의 복원부의 상세를 설명하기 위한 블록도이다.
도 7은 제1 실시형태의 비밀 분산 처리의 전체를 설명하기 위한 도면이다.
도 8a는 제1 실시형태의 분산 장치의 처리를 예시하기 위한 도면이다. 도 8b는 스텝 S112의 처리의 상세를 예시하기 위한 도면이다.
도 9a는 제1 실시형태의 분산 관리 장치의 처리를 예시하기 위한 도면이다. 도 9b는 스텝 S124의 처리의 상세를 예시하기 위한 도면이다.
도 10a는 제1 실시형태의 취득 장치의 처리를 예시하기 위한 도면이다. 도 10b는 스텝 S134의 처리를 예시하기 위한 도면이다.
도 11a는 제1 실시형태에 있어서의 변형예 1의 비밀 분산부의 구성을 설명하기 위한 도면이다. 도 11b는 제1 실시형태에 있어서의 변형예 1의 분산 비밀값 생성부의 구성을 설명하기 위한 도면이다.
도 12a는 제1 실시형태에 있어서의 변형예 2의 분산 비밀값 생성부의 구성을 설명하기 위한 도면이다. 도 12b는 제1 실시형태에 있어서의 변형예 2의 복원부의 구성을 설명하기 위한 도면이다.
도 13a는 제1 실시형태에 있어서의 변형예 3의 비밀 분산부의 구성을 설명하기 위한 도면이다. 도 13b는 제1 실시형태에 있어서의 변형예 3의 분산 비밀값 생성부의 구성을 설명하기 위한 도면이다. 도 13c는 제1 실시형태에 있어서의 변형예 3의 복원부의 구성을 설명하기 위한 도면이다.
도 14a는 제1 실시형태에 있어서의 변형예 4의 비밀 분산부의 구성을 설명하기 위한 도면이다. 도 14b는 제1 실시형태에 있어서의 변형예 4의 분산 비밀값 생성부의 구성을 설명하기 위한 도면이다. 도 14c는 제1 실시형태에 있어서의 변형예 4의 복원부의 구성을 설명하기 위한 도면이다.
도 15는 표준형 논리식을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 16은 표준형 논리식을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 17은 제2 실시형태의 비밀 분산 시스템의 전체 구성을 설명하기 위한 블록도이다.
도 18은 제2 실시형태의 분산 장치의 구성을 설명하기 위한 블록도이다.
도 19a는 제2 실시형태의 공유값 생성 장치의 구성을 설명하기 위한 블록도이다. 도 19b는 제2 실시형태의 공유값 생성 장치의 구성을 설명하기 위한 블록도이다.
도 20은 제2 실시형태의 분산 관리 장치의 구성을 설명하기 위한 블록도이다.
도 21은 제2 실시형태의 취득 장치의 구성을 설명하기 위한 블록도이다.
도 22는 제2 실시형태의 비밀 분산 처리의 전체를 설명하기 위한 도면이다.
도 23은 제2 실시형태의 비밀 분산 처리의 전체를 설명하기 위한 도면이다.
도 24는 제2 실시형태의 분산 장치의 처리를 예시하기 위한 도면이다.
도 25는 제2 실시형태의 분산 관리 장치의 처리를 예시하기 위한 도면이다.
도 26은 제2 실시형태의 취득 장치의 처리를 예시하기 위한 도면이다.
도 27은 제2 실시형태에 있어서의 변형예 1의 분산 관리 장치의 처리를 예시하기 위한 도면이다.
도 28은 제2 실시형태에 있어서의 변형예 1의 분산 관리 장치의 처리를 예시하기 위한 도면이다.
이하, 도면을 참조하여 본 발명의 실시형태를 설명한다.
〔제1 실시형태〕
우선, 본 발명의 제1 실시형태를 설명한다.
〔정의〕
본 형태에서 사용하는 용어나 기호를 정의한다.
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의 승법단위원을 나타낸다.
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를 만족하는 점을 의미한다.
G : G는 순회군을 나타낸다. 순회군 G의 구체예는 타원곡선 E의 p등분점으로 이루어지는 유한집합 E[p], 그 부분군, 잉여군 등이다. 본 형태에서는 순회군 G 상에서 정의된 연산을 가법적으로 표현한다. 즉, χ∈Fq 및 Ω∈G에 대한 χ·Ω∈G는 Ω∈G1에 대하여 순회군 G로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω12∈G에 대한 Ω12∈G는 Ω1∈G와 Ω2∈G를 피연산자로 하여 순회군 G로 정의된 연산을 행하는 것을 의미한다.
g : g는 순회군 G의 생성원을 나타낸다.
<전체 구성>
도 1은 제1 실시형태의 비밀 분산 시스템의 전체 구성을 설명하기 위한 블록도이다.
도 1에 예시하는 바와 같이, 본 형태의 비밀 분산 시스템(1)은 분산 장치(110)와, Σα=1 Lh(α)개의 분산 관리 장치(〔PA(α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)〕120-α-h(α))와, 취득 장치(130)와, 공유값 생성 장치(140-1~L)를 가지고, 그들은 네트워크(150)를 통하여 통신 가능하다. 설명을 간략화하기 위해서, 본 형태에서는 분산 장치(110) 및 취득 장치(130)가 1개씩 존재하는 구성을 예시하지만, 분산 장치(110) 및/또는 취득 장치(130)가 2개 이상 존재해도 된다. 마찬가지의 이유에 의해, 본 형태에서는 Σα=1 Lh(α)개의 분산 관리 장치(〔PA(α, h(α))〕120-α-h(α))로 이루어지는 집합이 1개만 존재하는 구성을 예시하지만, 이러한 집합이 복수 존재하고 있어도 된다.
도 1에 예시하는 바와 같이, Σα=1 Lh(α)개의 분산 관리 장치(〔PA(α, h(α))〕120-α-h(α))로 이루어지는 집합은 H(α)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 복수의 부분 집합 SUB(α)마다 구분된다. 각 부분 집합 SUB(α)에는 각각, 각 부분 집합 SUB(α)마다 공유되는 공유값 σ(α)를 생성하는 공유값 생성 장치(140-α)가 각각 대응한다.
<분산 장치(110)>
도 2는, 도 1의 분산 장치(110)의 구성을 설명하기 위한 블록도이다. 도 5a는 도 2의 비밀 분산부(114-α)의 상세를 설명하기 위한 블록도이다.
도 2에 예시하는 바와 같이, 본 형태의 분산 장치(110)는 일시 기억부(111)와, 기억부(112)와, 제어부(113)와, 비밀 분산부(114-α(α=1,...,L))와, 송신부(115)를 가진다. 도 5a에 예시하는 바와 같이, 본 형태의 비밀 분산부(114-α)는 함수 선택부(114a-α)와, 인덱스 생성부(114b-α)와, 분산 처리부(114c-α)를 가진다.
본 형태의 분산 장치(110)는 예를 들면 CPU(Central Processing Unit), RAM(Random Access Memory), ROM(Read-Only Memory) 등을 구비하는 공지 또는 전용의 컴퓨터와 특별한 프로그램을 포함하는 특별한 장치이다. 구체적으로는 일시 기억부(111) 및 기억부(112)는 예를 들면 RAM, 레지스터, 캐시메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 제어부(113) 및 비밀 분산부(114-α(α=1,...,L))는 예를 들면 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 제어부(113) 및 비밀 분산부(114-α(α=1,...,L))의 적어도 일부가 특별한 집적 회로여도 된다. 송신부(115)는 예를 들면 모뎀, LAN(Local Area Network)카드 등의 통신 장치이다.
분산 장치(110)는 제어부(113)의 제어하에서 각 처리를 실행한다. 이하에서는 설명을 간략화하지만, 각 처리부로부터 출력된 데이터는 차례대로 일시 기억부(111) 또는 기억부(112)에 격납된다. 일시 기억부(111) 또는 기억부(112)에 격납된 데이터는 필요에 따라서 독출되어, 각 처리부에 입력되어 그 처리에 이용된다.
<분산 관리 장치(〔PA(α, h(α))〕120-α-h(α))>
도 3a는 제1 실시형태의 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))의 구성을 설명하기 위한 블록도이다. 도 5b는 도 3a의 분산 비밀값 생성부(124-α-h(α))의 상세를 설명하기 위한 블록도이다.
도 3a에 예시하는 바와 같이, 본 형태의 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))는 일시 기억부(121-α-h(α))와, 기억부(122-α-h(α))와, 제어부(123-α-h(α))와, 분산 비밀값 생성부(124-α-h(α))와, 송신부(125-α-h(α))와, 수신부(126-α-h(α))를 가진다. 도 5b에 예시하는 바와 같이, 분산 비밀값 생성부(124-α-h(α))는 선형 연산부(124a-α-h(α))와, 분산 비밀값 합성부(124b-α-h(α))를 가진다.
분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터와 특별한 프로그램을 포함하는 특별한 장치이다. 구체적으로는 일시 기억부(121-α-h(α)) 및 기억부(122-α-h(α))는 예를 들면 RAM, 레지스터, 캐시메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 제어부(123-α-h(α)) 및 분산 비밀값 생성부(124-α-h(α))는 예를 들면 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 또한, 제어부(123-α-h(α)) 및 분산 비밀값 생성부(124-α-h(α))의 적어도 일부가 특별한 집적 회로여도 된다. 송신부(125-α-h(α))나 수신부(126-α-h(α))는 예를 들면 모뎀, LAN카드 등의 통신 장치이다.
분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))는 제어부(123-α-h(α))의 제어하에서 각 처리를 실행한다. 이하에서는 설명을 간략화하지만, 각 처리부로부터 출력된 데이터는 차례대로 일시 기억부(121-α-h(α)) 또는 기억부(122-α-h(α))에 격납된다. 일시 기억부(121-α-h(α)) 또는 기억부(122-α-h(α))에 격납된 데이터는 필요에 따라서 독출되어, 각 처리부에 입력되어 그 처리에 이용된다.
<공유값 생성 장치(140-α)>
도 3b는 제1 실시형태의 공유값 생성 장치(140-α)의 구성을 설명하기 위한 블록도이다.
도 3b에 예시하는 바와 같이, 본 형태의 공유값 생성 장치(140-α)는 난수 생성부(141-α) 및 송신부(142-α)를 가진다. 본 형태의 공유값 생성 장치(140-α)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터와 특별한 프로그램을 포함하는 특별한 장치이지만, 난수 생성부(141-α)가 특별한 집적 회로여도 된다.
<취득 장치(130)>
도 4는 제1 실시형태의 취득 장치(130)의 구성을 설명하기 위한 블록도이다. 도 6은 도 4의 복원부(134-α)의 상세를 설명하기 위한 블록도이다.
도 4에 예시하는 바와 같이, 본 형태의 취득 장치(130)는 일시 기억부(131)와, 기억부(132)와, 제어부(133)와, 복원부(134-α(α=1,...,L))와, 합성부(137)와, 송신부(135)와, 수신부(136)를 가진다. 도 6에 예시하는 바와 같이, 복원부(134-α)는 계수 산출부(134a-α)와, 다항식 연산부(134b-α)를 가진다.
본 형태의 취득 장치(130)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터와 특별한 프로그램을 포함하는 특별한 장치이다. 구체적으로는 일시 기억부(131) 및 기억부(132)는 예를 들면 RAM, 레지스터, 캐시메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 제어부(133), 복원부(134-α(α=1,...,L)) 및 합성부(137)는 예를 들면 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 제어부(133), 복원부(134-α(α=1,...,L)) 및 합성부(137)의 적어도 일부가 특별한 집적 회로여도 된다. 송신부(135)나 수신부(136)는 예를 들면 모뎀, LAN카드 등의 통신 장치이다.
취득 장치(130)는 제어부(133)의 제어하에서 각 처리를 실행한다. 이하에서는 설명을 간략화하지만, 각 처리부로부터 출력된 데이터는 차례대로 일시 기억부(131) 또는 기억부(132)에 격납된다. 일시 기억부(131) 또는 기억부(132)에 격납된 데이터는 필요에 따라서 독출되어, 각 처리부에 입력되어 그 처리에 이용된다.
<비밀 분산 처리>
본 형태의 비밀 분산 처리를 설명한다.
[사전 처리]
본 형태의 비밀 분산 처리의 사전 처리로서 비밀 정보 θ·g∈G를 특정하기 위한 정보 θ∈Fq가 분산 장치(110)의 기억부(112)에 격납된다.
[비밀 분산 처리의 전체]
도 7은 제1 실시형태의 비밀 분산 처리의 전체를 설명하기 위한 도면이다. 이하, 도 7을 사용하여, 본 형태의 비밀 분산 처리의 전체를 설명한다.
본 형태에서는, 우선 분산 장치(110)(도 1)가 부분 집합 SUB(α)마다 독립적으로 비밀 정보 θ·g∈G를 비밀 분산하여 쉐어 정보 SH(α, h(α))(h(α)=1,...,H(α))를 생성하고, 당해 쉐어 정보 SH(α, h(α))를 출력한다(스텝 S11). 각 쉐어 정보 SH(α, h(α))는 각각 네트워크(150) 경유로 각 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))에 분산되어 송신된다.
각 쉐어 정보 SH(α, h(α))가 송신된 각 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))는 각각 그 쉐어 정보 SH(α, h(α))와, 부분 집합 SUB(α)마다 공유되는 공유값 σ(α)을 포함하는 공통 정보를 사용하고, 소정의 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 당해 분산 비밀값 DSH(α, h(α))을 출력한다(스텝 S12).
본 형태의 경우, 서로 상이한 부분 집합 SUB(α)에서 각각 공유되는 공유값 σ(α)은 서로 독립이다. 동일한 부분 집합 SUB(α)에 속하는 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))가 각각 사용하는 「공통 정보」는 서로 동일하다. 특히, 본 형태에서 예시하는 「공통 정보」는 공유값 σ(α)과, 취득 장치(130)로부터 제공된 모든 분산 관리 장치(PA(α, h(α)) 120-α-h(α))에 공통의 제공 정보 v를 포함한다. 동일한 부분 집합 SUB(α)에 속하는 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))가 각각 행하는 「공통 연산」은 서로 동일하다. 본 형태에서는, 모든 「공통 연산」이 동일한 것으로 한다. 본 형태의 「공통 연산」은 선형성을 가진 연산이다.
각 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))로부터 출력된 각 분산 비밀값 DSH(α, h(α))은 각각 네트워크(150) 경유로 취득 장치(130)에 송신된다. 취득 장치(130)는 동일한 부분 집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(α, h(α))을 사용하고, 부분 집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성한다(스텝 S13).
다음에 취득 장치(130)는 각 부분 집합 SUB(α)에 대해서 각각 생성된 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성하고, 당해 생성 정보 SK를 출력한다(스텝 S14). 또한, 본 형태에서는, 취득 장치(130)가 비밀 복원값 SUBSK(α)을 선형 결합하여 생성 정보 SK를 생성한다.
[분산 장치의 처리(스텝 S11)]
도 8a는 제1 실시형태의 분산 장치의 처리를 예시하기 위한 도면이며, 도 8b는 스텝 S112의 처리의 상세를 예시하기 위한 도면이다. 이하, 이들 도면을 사용하여, 분산 장치(110)의 처리의 상세를 설명한다.
우선, 분산 장치(110)(도 2)의 제어부(113)가 α=1로 설정하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S111). 다음에 기억부(112)로부터 비밀 정보 θ·g∈G를 특정하기 위한 정보 θ∈Fq가 독출되어, 비밀 분산부(114-α)에 입력된다. 비밀 분산부(114-α)는 정보 θ∈Fq를 사용하여 비밀 정보 θ·g 또는 정보 θ를, 소정의 비밀 분산 방식에 따라 비밀 분산하고, 부분 집합 SUB(α)에 대한 H(α)개의 쉐어 정보 SH(α,1) ,...,SH(α, H(α))를 생성하여 출력한다(스텝 S112).
《스텝 S112의 상세》
본 형태의 비밀 분산부(114-α)는 각 부분 집합 SUB(α)에 대하여, (R(α), H(α)) 역치 비밀 분산 방식(단, R(α)은 2≤R(α)<H(α)을 만족하는 상수)을 사용하고, 비밀 정보를 비밀 분산하여 얻어지는 쉐어 정보 SH(α, h(α))(h(α)=1,...,H(α))을 생성한다.
도 8b에 예시하는 바와 같이, 우선 비밀 분산부(114-α)(도 5a)의 함수 선택부(114a-α)가 미리 정해진 유한체 Fq의 원소 ω∈Fq에 대하여 f(α, ω)=θ를 만족하는 R(α)-1차의 다항식을 f(α, x)∈Fq를 랜덤으로 선택하여 출력한다(스텝 S112a). 또한, x는 유한체 Fq의 원소로 이루어지는 변수이며, 원소 ω∈Fq의 일례는 0F이다.
다음에, 인덱스 생성부(114b-α)가 각 h(α)=1,...,H(α)에 대응하는 인덱스 φ(h(α))∈Fq를 생성하여 출력한다(스텝 S112b). 또한, 인덱스 φ(h(α))=h(α)∈Fq로 하는 경우나, 이미 인덱스 φ(h(α))∈Fq가 얻어져 있는 경우에는, 스텝 S112b의 처리는 생략되어도 된다.
다음에, 분산 처리부(114c-α)가 다항식 f(α, x)∈Fq와 인덱스 φ(h(α))∈Fq를 사용하고, 이하의 쉐어 정보 SH(α, h(α))(h(α)=1,...,H(α))를 생성한다.
SH(α,h(α))=(φ(h(α)), f(α,φ(h(α)))·g∈G)…(5)
분산 처리부(114c-α)는 쉐어 정보 SH(α, h(α))를 출력한다(스텝 S112c/ 《스텝 S112의 상세》의 설명 끝).
다음에, 제어부(113)는 일시 기억부(111)에 격납된 α가 L인지 여부를 판정한다(스텝 S113). 여기서, α=L이 아니라고 판정된 경우, 제어부(113)는 α+1을 새로운 α로 하고, 그 설정 내용을 일시 기억부(111)에 격납하고(스텝 S114), 새로운 α에 의해 스텝 S112의 처리를 실행시킨다. 한편, 스텝 S113에서 α=L이라고 판정된 경우, 각 비밀 분산부(114-α)로부터 출력된 각 쉐어 정보 SH(α, h(α))(α=1,...,L)가 송신부(115)에 보내진다. 송신부(115)는 각 쉐어 정보 SH(α, h(α))(α=1,...,L)를, 각각 네트워크(150) 경유로 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α)(α=1,...,L))에 송신한다(스텝 S115). 즉, 쉐어 정보 SH(1,1)는 분산 관리 장치(〔PA(1,1)〕 120-1-1)에, 쉐어 정보 SH(1,2)는 분산 관리 장치(〔PA(1,2)〕 120-1-2)에, ···쉐어 정보 SH(L, H(L))는 분산 관리 장치(〔PA(L, H(L))〕 120-L-H(L))에 각각 송신된다.
[공유값 생성 장치의 처리]
각 공유값 생성 장치(140-α)(도 3b)는 스스로에 대응하는 부분 집합 SUB(α)을 구성하는 각 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))에서 공유하는 공유값 σ(α)를 생성한다. 본 형태에서는 난수 생성부(141-α)가 생성한 난수를 공유값 σ(α)으로 하고, 송신부(142-α)가 공유값 σ(α)를 부분 집합 SUB(α)을 구성하는 각 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))에 송신한다.
[분산 관리 장치의 처리(스텝 S12)]
도 9a는 제1 실시형태의 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))의 처리를 예시하기 위한 도면이며, 도 9b는 스텝 S124의 처리의 상세를 예시하기 위한 도면이다. 이하, 이들 도면을 사용하여, 본 형태의 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))의 처리를 설명한다.
우선, 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))(도 3a)의 수신부(126-α-h(α))가 송신된 쉐어 정보 SH(α, h(α))를 수신하고, 그것을 기억부(122-α-h(α))에 격납한다(스텝 S121). 또한, 과거에 스텝 S121의 처리가 실행되어, 이미 쉐어 정보 SH(α, h(α))가 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))의 기억부(122-α-h(α))에 격납되어 있는 것이라면, 스텝 S121의 처리를 생략해도 된다.
분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))의 수신부(126-α-h(α))는 공유값 생성 장치(140-α)로부터 송신된 공유값 σ(α)을 수신하고, 그것을 기억부(122-α-h(α))에 격납한다(스텝 S122).
본 형태에서는 취득 장치(130)(도 4)의 기억부(132)로부터 독출된 제공 정보 v가 송신부(135)로부터 네트워크(150) 경유로 각 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))에 송신된다. 이 제공 정보 v는 모든 분산 관리 장치(PA(α, h(α)) 120-α-h(α))에 공통이다. 제공 정보 v는 분산 관리 장치(〔PA(α, h(α))〕 120-α-h(α))(도 3a)의 수신부(126-α-h(α))에서 수신되어, 기억부(122-α-h(α))에 격납된다(스텝 S123).
다음에, 분산 비밀값 생성부(124-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(α, h(α))와 공유값 σ(α)과 제공 정보 v를 읽어들인다. 분산 비밀값 생성부(124-α-h(α))는 공유값 σ(α)와 제공 정보 v를 포함하는 공통 정보와, 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산 FNC1를 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 당해 분산 비밀값 DSH(α, h(α))을 출력한다(스텝 S124).
《스텝 S124의 상세》
동일한 부분 집합 SUB(α)에 속하는 분산 관리 장치(PA(α, h(α)) 120-α-h(α))의 분산 비밀값 생성부(124-α-h(α))가 각각 사용하는 공통 정보는 서로 동일하며, 동일한 부분 집합 SUB(α)에 속하는 분산 관리 장치(PA(α, h(α)) 120-α-h(α))의 분산 비밀값 생성부(124-α-h(α))가 각각 행하는 공통 연산은 서로 동일하다. 본 형태의 쉐어 정보는 식(5)에 나타내는 것이다.
도 9b에 예시하는 바와 같이, 우선 본 형태의 분산 비밀값 생성부(124-α-h(α))의 선형 연산부(124a-α-h(α))에, 공유값 σ(α)과 제공 정보 v와 쉐어 정보 SH(α, h(α))=(φ(h(α)), f(α, φ(h(α)))·g)의 f(α, φ(h(α)))·g가 입력된다. 선형 연산부(124a-α-h(α))는 이하의 연산을 행하고, 그 연산 결과 dsh(α, φ(h(α)))를 출력한다(스텝 S124a).
dsh(α,φ(h(α)))=σ(α)·v·f(α,φ(h(α)))·g∈G…(6)
출력된 연산 결과 dsh(α, φ(h(α)))는 분산 비밀값 합성부(124b-α-h(α))에 입력된다. 분산 비밀값 합성부(124b-α-h(α))에는 또한 쉐어 정보 SH(α, h(α))=(φ(h(α)), f(α, φ(h(α)))·g)의 인덱스 φ(h(α))가 입력되고, 분산 비밀값 합성부(124b-α-h(α))는 이하의 연산에 의해 분산 비밀값 DSH(α, h(α))을 생성한다.
DSH(α,h(α))=(φ(h(α)),dsh(α,φ(h(α))))…(7)
분산 비밀값 합성부(124b-α-h(α))는 분산 비밀값 DSH(α, h(α))을 출력한다(스텝 S124b/ 《스텝 S124의 상세》의 설명 끝).
생성된 분산 비밀값 DSH(α, h(α))은 송신부(125-α-h(α))에 보내진다. 송신부(125-α-h(α))는 분산 비밀값 DSH(α, h(α))을 네트워크(150) 경유로 취득 장치(130)에 송신한다(스텝 S125).
[취득 장치의 처리(스텝 S13, S14)]
도 10a는 제1 실시형태의 취득 장치의 처리를 예시하기 위한 도면이며, 도 10b는 스텝 S134의 처리를 예시하기 위한 도면이다.
각 분산 관리 장치(PA(α, h(α)) 120-α-h(α))로부터 송신된 분산 비밀값 DSH(α, h(α))은 취득 장치(130)(도 4)의 수신부(136)에서 수신되어, 기억부(132)에 격납된다(스텝 S131).
다음에, 제어부(133)가 필요수 이상의 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되었는지 여부를 판정한다(스텝 S132). 본 형태의 경우, 각 α=1,...,L에 대해서, 각각 상이한 R(α)(2≤R(α)<H(α))개 이상의 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되었는지 여부를 판정한다. 여기서, 필요수 이상의 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되어 있지 않다고 판정된 경우에는 스텝 S131의 처리로 되돌아간다.
한편, 필요수 이상의 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되었다고 판정된 경우, 제어부(133)가 α=1로 설정하고, 그 설정 내용을 일시 기억부(131)에 격납한다(스텝 S133). 다음에, 기억부(132)로부터 부분 집합 SUB(α)에 대응하는 필요수 만큼의 분산 비밀값 DSH(α, h(α))이 독출되어, 복원부(134-α)에 입력된다. 복원부(134-α)는 입력된 분산 비밀값 DSH(α, h(α))을 사용하고, 상기 서술한 스텝 S112에서 사용된 비밀 분산 방식에 따른 부분 집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 당해 부분 집합 SUB(α)마다의 비밀 복원값 SUBSK(α)을 출력한다(스텝 S134).
《스텝 S134의 상세》
본 형태의 분산 비밀값 DSH(α, h(α))은 식(7)에 나타내는 것이다. 복원부(134-α)(도 6)에는 α마다 R(α)개씩의 상이한 분산 비밀값 DSH(α, h(α))이 입력된다. 이하에서는 복원부(134-α)에 입력되는 각 α에 대응하는 분산 비밀값 DSH(α, h(α))을 이하와 같이 표현한다.
DSH(α,φ1(α))=(φ1(α), dsh1(α))
           …            …(8)
DSH(α,φR(α)(α))=(φR(α)(α), dshR(α)(α))
단, 이하가 만족된다.
1(α),...,φR(α)(α))⊂(φ(1),...,φ(H(α)))…(9)
(dsh1(α),...,dshR(α)(α))⊂(dsh(α,φ(1)),...,dsh(α,φ(H(α))))…(10)
도 10b에 예시하는 바와 같이, 식(8)에 나타내는 DSH(α, φ1(α)) ,...,DSH(α, φR(α)(α))의 각 인덱스 φ1(α) ,...,φR(α)(α)가 계수 산출부(134a-α)에 입력되고, 계수 산출부(134a-α)는 각 ρ=1,...,R(α)에 대해서, 각각 이하의 연산을 행하고, 각 계수 λρ(x)(ρ=1,...,R(α))를 생성하여 출력한다(스텝 S134a).
[수 2]
Figure 112013001868551-pct00003
생성된 각 계수 λρ(x)와, 식(8)에 나타내는 DSH(α, φ1(α)) ,...,DSH(α, φR(α)(α))의 dsh1(α) ,...,dshR (α)(α)이 다항식 연산부(134b-α)에 입력된다. 다항식 연산부(134b-α)는 이하의 연산에 의해 부분 집합 SUB(α)의 비밀 복원값 SUBSK(α)을 생성한다.
SUBSK(α)=λ1(ω)·dsh1(α)+...+λR(α)(ω)·dshR(α)(α)∈G…(12)
다항식 연산부(134b-α)는 비밀 복원값 SUBSK(α)을 출력한다(스텝 S134b/ 《스텝 S134의 상세》의 설명 끝).
제어부(133)는 일시 기억부(131)에 격납된 α가 L인지 여부를 판정한다(스텝 S135). 여기서, α=L이 아니라고 판정된 경우, 제어부(133)는 α+1을 새로운 α로 하고, 그 설정 내용을 일시 기억부(131)에 격납하고(스텝 S136), 새로운 α에 의해 스텝 S134의 처리를 실행시킨다.
한편, 스텝 S135에서 α=L이라고 판정된 경우, 각 복원부(134-α)로부터 출력된 각 비밀 복원값 SUBSK(α)이 합성부(137)에 보내진다. 합성부(137)는 각 부분 집합 SUB(α)에 대해서 각각 생성된 각 비밀 복원값 SUBSK(α)을 사용하여, 이하의 생성 정보 SK를 생성하고, 당해 생성 정보 SK를 출력한다(스텝 S141).
SK=FNC2(SUBSK(1),...,SUBSK(L))…(13)
《스텝 S141의 상세》
이하에 식(13)의 구체예를 나타낸다.
구체예 1 : SK=SUBSK(1)+...+SUBSK(L)∈G…(14)
구체예 2 : SK=CE1·SUBSK(1)+...+CEL·SUBSK(L)∈G…(15)
단, CEα∈Fq는 계수이며, 그 일례는 L의 승법역원 (L)-1∈Fq이다. 또, 계수 CE1,...,CEL의 어느 일부를 0F로 해도 된다. 이 경우에는, SUBSK(1)+...+SUBSK(L)의 일부만을 사용하여 생성 정보 SK가 생성된다. 이 때, 합성부(137)가 계수 CE1,...,CEL 중 0F로 하는 계수를 랜덤으로 선택해도 된다. 이것에 의해, 안전성이 향상된다. 합성부(137)가 계수 CE1,...,CEL을 자유롭게 설정할 수 있는 구성이어도 된다. 이것에 의해, 취득 장치(130)는 신뢰성이 낮은 부분 집합 SUB(α')에 대응하는 비밀 복원값 SUBSK(α')을 사용하지 않고 생성 정보 SK를 생성하는 것 등이 가능해진다(《스텝 S141의 상세》의 설명 끝).
<제1 실시형태의 특징>
본 형태에서는 분산 장치(110)가 부분 집합 SUB(α)마다 독립적으로 비밀 정보θ·g∈G를 비밀 분산하여 쉐어 정보 SH(α, h(α))를 생성하고, 각 분산 관리 장치(PA(α, h(α)) 120-α-h(α))가 공유값 σ(α)와 제공 정보 v를 포함하는 공통 정보와 쉐어 정보 SH(α, h(α))를 사용하여, 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 취득 장치(130)가 동일한 부분 집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(α, h(α))을 사용하여, 부분 집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성하는 것으로 했다.
이와 같이 부분 집합 SUB(α)마다 공유되는 공유값 σ(α)를 사용하고, 부분 집합 SUB(α)마다 비밀 분산, 공통 연산, 복원 처리를 행하기 때문에, 이들 처리의 실행은 가능하다. 또한, 모든 분산 관리 장치(PA(α, h(α)) 120-α-h(α))가 값 σ를 공유하는 것이 아니고, 부분 집합 SUB(α)마다 독립적으로 공유값 σ(α)를 공유하기 때문에, 안전성이 높다. 특히, 본 형태에서는, 서로 상이한 부분 집합 SUB(α)에서 각각 공유되는 공유값 σ(α)은 서로 독립적인 것으로 했다. 이것에 의해, 높은 안전성을 확보할 수 있다.
본 형태에서는 분산 관리 장치(PA(α, h(α)) 120-α-h(α)(α=1,...,L))가 모두 동일한 공통 연산 FNC1을 행하는 것으로 했다. 본 형태의 공통 연산 FNC1은 선형성을 가진 연산이다. 따라서, 본 형태에서는 비밀 복원값 SUBSK(α)을 선형 결합하여 생성 정보 SK를 생성함으로써, 각 비밀 복원값 SUBSK(α)을 사용하여 생성된 생성 정보 SK를, 비밀 정보 θ·g와 어떤 값 σ를 피연산자로 하여 공통 연산 FNC1을 행한 결과와 동일하게 할 수 있다.
본 형태에서는, (R(α), H(α)) 역치 비밀 분산 방식을 사용하고, 부분 집합 SUB(α)마다 비밀 정보 θ·g∈G를 비밀 분산했다. 이 구성은, 예를 들면, 쉐어 정보 SH(α, h(α))가 유한체 Fq의 원소로 이루어지는 변수를 x로 하고, 미리 정해진 유한체 Fq의 원소 ω∈Fq에 대하여 f(α, ω)=θ를 만족하는 R(α)-1차의 다항식을 f(α, x)∈Fq로 하고, h(α)에 대응하는 인덱스를 φ(h(α))로 한 경우에 있어서의 순회군 G의 원소 f(α, φ(h(α)))·g∈G를 포함하는 구성으로 함으로써 가능하다. 이와 같이 순회군의 원소인 비밀 정보 θ·g∈G를 비밀 분산함으로써, 비록 쉐어 정보 SH(α, h(α))로부터 복원된 비밀 정보 θ·g가 외부에 누설되었다고 해도, 순회군 G에서의 이산 대수 문제의 구해가 곤란하다는 전제하에서는, θ가 외부에 누설되는 일은 없다. 이것에 의해, 높은 안전성을 확보할 수 있다.
〔제1 실시형태의 변형예 1〕
다음에, 제1 실시형태의 변형예 1을 설명한다.
제1 실시형태에서는 순회군 G의 원소를 비밀 정보 θ·g∈G로 하고, 이것을 비밀 분산했다. 그러나, 유한체 Fq의 원소 θ∈Fq를 비밀 분산해도 된다. 이 경우, (R(α), H(α)) 역치 비밀 분산 방식을 사용하여 비밀 분산된 쉐어 정보 SH(α, h(α))는 유한체 Fq의 원소로 이루어지는 변수를 x로 하고, 미리 정해진 유한체 Fq의 원소 ω∈Fq에 대하여 f(α, ω)=θ를 만족하는 R(α)-1차의 다항식을 f(α, x)∈Fq로 하고, h(α)에 대응하는 인덱스를 φ(h(α))로 한 경우에 있어서의, 유한체 Fq의 원소 f(α, φ(h(α)))∈Fq를 포함한다.
도 11a는 제1 실시형태에 있어서의 변형예 1의 비밀 분산부(214-α)의 구성을 설명하기 위한 도면이며, 도 11b는 제1 실시형태에 있어서의 변형예 1의 분산 비밀값 생성부(224-α-h(α))의 구성을 설명하기 위한 도면이다. 또한, 이들 도면에 있어서, 제1 실시형태와 공통되는 부분에 대해서는, 제1 실시형태와 동일한 부호를 붙였다.
제1 실시형태의 변형예 1의 비밀 분산 시스템(2)은 분산 장치(110)가 분산 장치(210)로 치환되고, 분산 관리 장치(120-α-h(α)(α=1,...,L))가 분산 관리 장치(220-α-h(α)(α=1,...,L))로 치환된다. 비밀 분산부(114-α(α=1,...,L))가 도 11a에 나타내는 바와 같은 비밀 분산부(214-α(α=1,...,L))로 치환되고, 분산 비밀값 생성부(124-α-h(α)(α=1,...,L))가 도 11b에 나타내는 바와 같은 분산 비밀값 생성부(224-α-h(α)(α=1,...,L))로 치환된다. 그 밖의 구성은 제1 실시형태와 마찬가지이다.
《제1 실시형태의 변형예 1에 있어서의 스텝 S112의 변형》
제1 실시형태의 변형예 1에서는 도 8b에 나타낸 스텝 S112의 처리가 이하와 같이 변형된다.
우선, 도 8b에 나타낸 스텝 S112a 및 S112b가 실행된다. 다음에, 스텝 S112c 대신에 비밀 분산부(214-α)의 분산 처리부(214c-α)(도 11a)가 다항식 f(α, x)∈Fq와 인덱스 φ(h(α))∈Fq를 사용하여, 이하의 쉐어 정보 SH(α, h(α))를 생성하여 출력한다.
SH(α,h(α))=(φ(h(α)), f(α,φ(h(α))))…(16)
《제1 실시형태의 변형예 1에 있어서의 스텝 S124의 변형》
제1 실시형태의 변형예 1에서는 도 9b에 나타낸 스텝 S124의 처리가 이하와 같이 변형된다.
우선, 스텝 S124a 대신에, 선형 연산부(224a-α-h(α))(도 11b)에, 공유값 σ(α)와 제공 정보 v와 쉐어 정보 SH(α, h(α))=(φ(h(α)), f(α, φ(h(α))))의 f(α, φ(h(α)))가 입력되고, 선형 연산부(224a-α-h(α))는 이하의 연산을 행하고, 그 연산 결과 dsh(α, φ(h(α)))∈G를 출력한다.
dsh(α,φ(h(α)))=σ(α)·v·f(α,φ(h(α)))·g∈G…(17)
연산 결과 dsh(α, φ(h(α)))∈G는 분산 비밀값 DSH(α, h(α))의 일부의 정보가 된다. 그 후, 도 9b에 나타낸 스텝 S124b의 처리를 실행한다(《제1 실시형태의 변형예 1에 있어서의 스텝 S124의 변형》의 설명 끝). 그 밖의 처리는 제1 실시형태와 마찬가지이다.
〔제1 실시형태의 변형예 2〕
다음에, 제1 실시형태의 변형예 2를 설명한다.
제1 실시형태의 변형예 2에서도 유한체 Fq의 원소 θ∈Fq를 비밀 분산한다. 제1 실시형태의 변형예 1과의 상이점은 연산 결과 dsh(α, φ(h(α)))가 순회군 G의 원소가 아니고, 유한체 Fq의 원소인 점이다.
도 12a는 제1 실시형태에 있어서의 변형예 2의 분산 비밀값 생성부(324-α-h(α))의 구성을 설명하기 위한 도면이며, 도 12b는 제1 실시형태에 있어서의 변형예 2의 복원부(334-α)의 구성을 설명하기 위한 도면이다. 또한, 이들 도면에 있어서, 제1 실시형태와 공통되는 부분에 대해서는, 제1 실시형태와 동일한 부호를 붙였다.
제1 실시형태의 변형예 2의 비밀 분산 시스템(3)은 분산 장치(110)가 분산 장치(210)로 치환되고, 분산 관리 장치(120-α-h(α)(α=1,...,L))가 분산 관리 장치(320-α-h(α)(α=1,...,L))로 치환되며, 취득 장치(130)가 취득 장치(330)로 치환된다. 또, 분산 비밀값 생성부(124-α-h(α)(α=1,...,L))가 도 12a에 나타내는 바와 같은 분산 비밀값 생성부(324-α-h(α)(α=1,...,L))로 치환되고, 복원부(134-α(α=1,...,L))가 도 12b에 나타내는 바와 같은 복원부(334-α(α=1,...,L))로 치환된다. 그 밖의 구성은 제1 실시형태와 마찬가지이다.
《제1 실시형태의 변형예 2에 있어서의 스텝 S112의 변형》
제1 실시형태의 변형예 1에 있어서의 스텝 S112의 변형과 동일하다.
《제1 실시형태의 변형예 2에 있어서의 스텝 S124의 변형》
제1 실시형태의 변형예 2에서는, 도 9b에 나타낸 스텝 S124의 처리가 이하와 같이 변형된다.
우선, 스텝 S124a 대신에, 선형 연산부(324a-α-h(α))(도 12a)에, 공유값 σ(α)와 제공 정보 v와 쉐어 정보 SH(α, h(α))=(φ(h(α)), f(α, φ(h(α))))의 f(α, φ(h(α)))가 입력되고, 선형 연산부(324a-α-h(α))가 이하의 연산을 행하고, 그 연산 결과 dsh(α, φ(h(α)))∈Fq를 출력한다.
dsh(α,φ(h(α)))=σ(α)·v·f(α,φ(h(α)))∈Fq…(18)
연산 결과 dsh(α, φ(h(α)))∈Fq는 분산 비밀값 DSH(α, h(α))의 일부의 정보가 된다. 그 후, 도 9b에 나타낸 스텝 S124b의 처리를 실행한다.
《제1 실시형태의 변형예 2에 있어서의 스텝 S134의 변형》
우선, 도 10b에 나타낸 스텝 S134a의 처리가 실행된다. 다음에, 10B에 나타낸 스텝 S134b의 처리 대신에, 각 계수 λρ(x)와, 식(8)에 나타내는 DSH(α, φ1(α)) ,...,DSH(α, φR(α)(α))의 dsh1(α) ,...,dshR (α)(α)이 다항식 연산부(334b-α)(도 12b)에 입력되고, 다항식 연산부(334b-α)가 이하의 연산에 의해 부분 집합 SUB(α)의 비밀 복원값 SUBSK(α)을 생성한다.
SUBSK(α)={λ1(ω)·dsh1(α)+...+λR(α)(ω)·dshR(α)(α)}·g∈G…(19)
다항식 연산부(334b-α)는 부분 집합 SUB(α)의 비밀 복원값 SUBSK(α)을 출력한다(《제1 실시형태의 변형예 2에 있어서의 스텝 S134의 변형》의 설명 끝). 그 밖의 처리는 제1 실시형태와 마찬가지이다.
〔제1 실시형태의 변형예 3〕
제1 실시형태의 변형예 3은 (R(α), H(α)) 역치 비밀 분산 방식 대신에 (H(α), H(α)) 역치 비밀 분산 방식을 사용하여 비밀 정보를 비밀 분산하는 변형예이다.
도 13a는 제1 실시형태에 있어서의 변형예 3의 비밀 분산부(414-α)의 구성을 설명하기 위한 도면이며, 도 13b는 제1 실시형태에 있어서의 변형예 3의 분산 비밀값 생성부(424-α-h(α))의 구성을 설명하기 위한 도면이며, 도 13c는 제1 실시형태에 있어서의 변형예 3의 복원부(434-α)의 구성을 설명하기 위한 도면이다.
제1 실시형태의 변형예 3의 비밀 분산 시스템(4)은 분산 장치(110)가 분산 장치(410)로 치환되고, 분산 관리 장치(120-α-h(α)(α=1,...,L))가 분산 관리 장치(420-α-h(α)(α=1,...,L))로 치환되며, 취득 장치(130)가 취득 장치(430)로 치환된다. 비밀 분산부(114-α(α=1,...,L))가 도 13a에 나타내는 바와 같은 비밀 분산부(414-α(α=1,...,L))로 치환되고, 분산 비밀값 생성부(124-α-h(α)(α=1,...,L))가 도 13b에 나타내는 바와 같은 분산 비밀값 생성부(424-α-h(α)(α=1,...,L))로 치환되며, 복원부(134-α(α=1,...,L))가 도 13c에 나타내는 바와 같은 복원부(434-α(α=1,...,L))로 치환된다. 그 밖의 구성은 제1 실시형태와 마찬가지이다.
《제1 실시형태의 변형예 3에 있어서의 스텝 S112의 변형》
제1 실시형태의 변형예 3에서는, 도 8b에 나타낸 스텝 S112의 처리가 이하와 같이 변형된다.
우선, 비밀 분산부(414-α)(도 13a)의 난수 생성부(414a-α)에 있어서, 이하의 H(α)-1개의 순회군 G의 원소를 랜덤으로 선택하고, 이들을 출력한다.
SH(α,1),...,SH(α,H(α)-1)∈G…(20)
다음에, 역원 연산부(414b-α)에 비밀 정보 θ·g∈G와, H(α)-1개의 순회군 G의 원소 SH(α,1) ,...,SH(α, H(α)-1)∈G가 입력된다. 역원 연산부(414b-α)는 이하의 연산에 의해, SH(α, h(α))를 생성하여 출력한다.
SH(α,h(α))=θ·g-{SH(α,1)+...+SH(α,H(α)-1)}∈G…(21)
비밀 분산부(414-α)는 이하를 부분 집합 SUB(α)의 쉐어 정보로서 출력한다.
SH(α,1),...,SH(α,H(α))∈G
이들 쉐어 정보는 이하의 관계를 만족한다.
SH(α,1)+SH(α,2)+...+SH(α,H(α))=θ·g∈G…(22)
《제1 실시형태의 변형예 3에 있어서의 스텝 S124의 변형》
제1 실시형태의 변형예 3에서는, 도 9b에 나타낸 스텝 S124의 처리가 이하와 같이 변형된다.
우선, 분산 비밀값 생성부(424-α-h(α))(도 13b)에, 공유값 σ(α)와 제공 정보 v와 쉐어 정보 SH(α,1) ,...,SH(α, H(α))가 입력된다. 분산 비밀값 생성부(424-α-h(α))는 이하의 연산에 의해, 분산 비밀값 DSH(α, h(α))을 생성하여 출력한다.
DSH(α,h(α))=σ(α)·v·SH(α,h(α))∈G…(23)
《제1 실시형태의 변형예 3에 있어서의 스텝 S132의 변형》
제1 실시형태의 변형예 3에서는, 도 10a에 나타낸 스텝 S132의 처리가 이하와 같이 변형된다.
이 변형예 3에서도 제어부(133)가 필요수 이상의 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되었는지 여부를 판정하는데, 변형예 3에서의 「필요수」는 H(α)개이다. 즉, 이 변형예 3의 경우, 각 α=1,...,L에 대해서, 각각 모든 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되었는지 여부가 판정된다.
《제1 실시형태의 변형예 3에 있어서의 스텝 S134의 변형》
제1 실시형태의 변형예 3에서는, 도 10b에 나타낸 스텝 S134의 처리가 이하와 같이 변형된다.
이 변형예 3의 분산 비밀값 DSH(α, h(α))은 식(23)에 나타내는 것이다. 또, 복원부(434-α)(도 13c)에는 α에 대응하는 모든 분산 비밀값 DSH(α, h(α))(h(α)=1,...,H(α))이 입력된다. 복원부(434-α)는 이하의 연산에 의해, 부분 집합 SUB(α)의 비밀 복원값 SUBSK(α)을 생성하여 출력한다.
SUBSK(α)=DSH(α,1)+...+DSH(α,H(α))∈G…(24)
그 밖의 처리는 제1 실시형태와 마찬가지이다.
〔제1 실시형태의 변형예 4〕
제1 실시형태의 변형예 4도 (R(α), H(α)) 역치 비밀 분산 방식 대신에 (H(α), H(α)) 역치 비밀 분산 방식을 사용하여 비밀 정보를 비밀 분산하는 변형예이다. 변형예 3과의 상이점은 유한체 Fq의 원소인 비밀 정보 θ∈Fq를 비밀 분산하는 점이다.
도 14a는 제1 실시형태에 있어서의 변형예 4의 비밀 분산부(514-α)의 구성을 설명하기 위한 도면이며, 도 14b는 제1 실시형태에 있어서의 변형예 4의 분산 비밀값 생성부(524-α-h(α))의 구성을 설명하기 위한 도면이며, 도 14c는 제1 실시형태에 있어서의 변형예 4의 복원부(534-α)의 구성을 설명하기 위한 도면이다.
제1 실시형태의 변형예 4의 비밀 분산 시스템(5)은 분산 장치(110)가 분산 장치(510)로 치환되고, 분산 관리 장치(120-α-h(α)(α=1,...,L))가 분산 관리 장치(520-α-h(α)(α=1,...,L))로 치환되며, 취득 장치(130)가 취득 장치(530)로 치환된다. 비밀 분산부(114-α(α=1,...,L))가 도 14a에 나타내는 바와 같은 비밀 분산부(514-α(α=1,...,L))로 치환되고, 분산 비밀값 생성부(124-α-h(α)(α=1,...,L))가 도 14b에 나타내는 바와 같은 분산 비밀값 생성부(524-α-h(α)(α=1,...,L))로 치환되며, 복원부(134-α(α=1,...,L))가 도 14c에 나타내는 바와 같은 복원부(534-α(α=1,...,L))로 치환된다. 그 밖의 구성은 제1 실시형태와 마찬가지이다.
《제1 실시형태의 변형예 4에 있어서의 스텝 S112의 변형》
제1 실시형태의 변형예 4에서는, 도 8b에 나타낸 스텝 S112의 처리가 이하와 같이 변형된다.
우선, 비밀 분산부(514-α)(도 14a)의 난수 생성부(514a-α)에 있어서, 이하의 H(α)-1개의 유한체 Fq의 원소를 랜덤으로 선택하고, 이들을 출력한다.
SH(α,1),...,SH(α,H(α)-1)∈Fq…(25)
다음에, 역원 연산부(514b-α)에 비밀 정보 θ∈Fq와, H(α)-1개의 유한체 Fq의 원소 SH(α,1) ,...,SH(α, H(α)-1)∈Fq가 입력된다. 역원 연산부(514b-α)는 이하의 연산에 의해 SH(α, h(α))를 생성하여 출력한다.
SH(α,h(α))=θ-{SH(α,1)+...+SH(α,H(α)-1)}∈Fq…(26)
비밀 분산부(514-α)는 이하를 부분 집합 SUB(α)의 쉐어 정보로서 출력한다.
SH(α,1),...,SH(α,H(α))∈Fq…(27)
이들 쉐어 정보는 이하의 관계를 만족한다.
SH(α,1)+SH(α,2)+...+SH(α,H(α))=θ∈Fq…(28)
《제1 실시형태의 변형예 4에 있어서의 스텝 S124의 변형》
제1 실시형태의 변형예 4에서는, 도 9b에 나타낸 스텝 S124의 처리가 이하와 같이 변형된다.
우선, 분산 비밀값 생성부(524-α-h(α))(도 14b)에 공유값 σ(α)와 제공 정보 v와 쉐어 정보 SH(α,1) ,...,SH(α, H(α))가 입력된다. 분산 비밀값 생성부(524-α-h(α))는 이하의 연산에 의해 분산 비밀값 DSH(α, h(α))을 생성하여 출력한다.
DSH(α,h(α))=σ(α)·v·SH(α,h(α))∈Fq…(29)
《제1 실시형태의 변형예 4에 있어서의 스텝 S132의 변형》
제1 실시형태의 변형예 3과 동일하다.
《제1 실시형태의 변형예 4에 있어서의 스텝 S134의 변형》
제1 실시형태의 변형예 4에서는, 도 10b에 나타낸 스텝 S134의 처리가 이하와 같이 변형된다.
이 변형예 4의 분산 비밀값 DSH(α, h(α))은 식(29)에 나타내는 것이다. 복원부(534-α)(도 14c)에는 α에 대응하는 모든 분산 비밀값 DSH(α, h(α))(h(α)=1,...,H(α))이 입력된다. 복원부(534-α)는 이하의 연산에 의해 부분 집합 SUB(α)의 비밀 복원값 SUBSK(α)을 생성하여 출력한다.
SUBSK(α)={DSH(α,1)+...+DSH(α,H(α))}·g∈G…(30)
그 밖의 처리는 제1 실시형태와 마찬가지이다.
〔제1 실시형태의 그 밖의 변형예〕
그 밖에 본 발명의 취지를 일탈하지 않는 범위에서 적당히 변경이 가능하다. 예를 들면, 제1 실시형태의 변형예 4의 식(29) 대신에 이하의 식(31)의 연산을 행하고, 식(30) 대신에 식(24)의 연산을 행해도 된다.
DSH(α,h(α))=σ(α)·v·SH(α,h(α))∈Fq…(31)
비밀 복원값 SUBSK(α)이 유한체 Fq의 원소가 되는 구성이어도 된다.
본 형태에서는 각 부분 집합 SUB(α)에 대하여 각각 동일한 비밀 분산 방식을 사용하여 비밀 분산을 행했지만, 서로 상이한 각 부분 집합 SUB에 대하여 서로 상이한 비밀 분산 방식을 사용해도 된다.
본 형태에서는 각 부분 집합 SUB(α)마다 공유값 생성 장치(140-α)를 설치했지만, 각 부분 집합 SUB(α)의 어느 하나의 분산 관리 장치가 공유값 생성 장치의 기능을 가지고 있어도 된다. 이 경우에는 공유값 생성 장치(140-α)는 불필요하게 된다.
본 형태에서는 공유값 σ(α)와 제공 정보 v를 포함하는 공통 정보와, 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산 FNC1을 행하여 분산 비밀값 DSH(α, h(α))을 생성하는 것으로 했다. 그러나, 제공 정보 v를 사용하지 않고, 공유값 σ(α)를 공통 정보로 하여 분산 비밀값 DSH(α, h(α))을 생성해도 된다. 공통 정보가 공유값 σ(α)과 제공 정보 v와 그 밖의 정보를 포함해도 된다.
분산 비밀값 DSH(α, h(α))을 구하기 위한 공통 연산은 부분 집합 SUB(α)마다 통일할 필요는 있지만, 반드시 서로 상이한 부분 집합 SUB(α) 사이에서 동일한 공통 연산을 행할 필요는 없다.
〔제2 실시형태〕
다음에, 본 발명의 제2 실시형태를 설명한다. 본 형태는 제1 실시형태를 함수암호의 키 생성에 응용한 형태이다.
〔정의〕
본 형태에서 사용하는 용어나 기호를 정의한다.
행렬 : 「행렬」은 연산이 정의된 집합의 원소를 직사각형으로 늘어놓은 것을 나타낸다. 환의 원소를 요소로 하는 것 뿐만아니라, 군의 원소를 요소로 하는 것도 「행렬」이라고 표현한다.
(·)T : (·)T는 ·의 전치행렬을 나타낸다.
(·)-1 : (·)-1은 ·의 역행렬을 나타낸다.
∧ : ∧는 논리곱(AND)을 나타내는 논리 기호이다.
∨ : ∨는 논리합(OR)을 나타내는 논리 기호이다.
¬ : ¬는 부정(NOT)을 나타내는 논리 기호이다.
명제변수 : 명제변수는 명제의 「참」, 「거짓」("false", "true")을 요소로 하는 집합{참, 거짓} 상의 변수이다. 즉, 명제변수의 정의역은 「참」, 「거짓」을 요소로 하는 집합이다. 명제변수 및 명제변수의 부정을 총칭하여 리터럴(literal)이라고 한다.
논리식 : 논리식은 수리 논리학에 있어서의 명제를 나타내는 식을 의미한다. 구체적으로는 「참」 및 「거짓」은 논리식이며, 명제변수는 논리식이며, 논리식의 부정은 논리식이며, 논리식과 논리식의 논리곱은 논리식이며, 논리식과 논리식의 논리합은 논리식이다.
Z : Z는 정수 집합을 나타낸다.
sec : sec는 시큐리티 파라미터(sec∈Z, sec>0)를 나타낸다.
0* : 0*는 *개의 0로 이루어지는 열을 나타낸다.
1* : 1*는 *개의 1로 이루어지는 열을 나타낸다.
Fq : Fq는 위수 q의 유한체를 나타낸다(제1 실시형태와 동일).
0F : 0F는 유한체 Fq의 가법단위원을 나타낸다(제1 실시형태와 동일).
1F : 1F는 유한체 Fq의 승법단위원을 나타낸다(제1 실시형태와 동일).
δ(i, j) : δ(i, j)은 크로네커의 델타 함수를 나타낸다. i=j인 경우에 δ(i, j)=1F를 만족하고, i≠j인 경우에 δ(i, j)=0F를 만족한다.
E : E는 유한체 Fq 상에서 정의된 타원곡선을 나타낸다(제1 실시형태와 동일).
타원곡선 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으로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω12∈G1에 대한 Ω12∈G1은 Ω1∈G1과 Ω2∈G1을 피연산자로 하여 순회군 G1으로 정의된 연산을 행하는 것을 의미한다. 마찬가지로, 예를 들면, χ∈Fq 및 Ω∈G2에 대한 χ·Ω∈G2는 Ω∈G2에 대하여 순회군 G2로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω12∈G2에 대한 Ω12∈G2는 Ω1∈G2와 Ω2∈G2를 피연산자로 하여 순회군 G2로 정의된 연산을 행하는 것을 의미한다. 한편, χ∈Fq 및 Ω∈GT에 대한 Ωχ∈GT는 예를 들면 Ω∈GT에 대하여 순회군 GT로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω12∈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는 각각 순회군 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…(32)
쌍선형 사상 eψ는 이하의 성질을 만족한다.
[쌍선형성] 쌍선형 사상 eψ는 모든 Γ1∈G1 n (ψ)+ζ(ψ), Γ2∈G2 n (ψ)+ζ(ψ) 및 ν, κ∈Fq에 대하여 이하의 관계를 만족한다.
eψ(ν·Γ1,κ·Γ2)=eψ12)ν·κ…(33)
[비퇴화성] 쌍선형 사상 eψ는 모든 Γ1∈G1 n (ψ)+ζ(ψ), Γ2∈G2 n (ψ)+ζ(ψ)를 순회군 GT의 단위원에 그리는 사상이 아니다.
[계산 가능성] 모든
Γ1∈G1 n (ψ)+ζ(ψ),Γ2∈G2 n (ψ)+ζ(ψ)…(34)
에 대하여 eψ12)를 효율적으로 계산하는 알고리즘이 존재한다.
본 형태에서는, 이하와 같은 순회군 G1과 순회군 G2의 직적 G1×G2를 순회군 GT에 그리는 비퇴화한 쌍선형 사상을 사용하여 쌍선형 사상 eψ를 구성한다.
Pair:G1×G2→GT…(35)
본 형태의 쌍선형 사상 eψ는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))로 이루어지는 n(ψ)+ζ(ψ)차원 벡터(γ1,...,γn(ψ)+ζ(ψ))와, 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))로 이루어지는 n(ψ)+ζ(ψ)차원 벡터(γ1 *, ...,γn(ψ)+ζ(ψ) *)의 입력에 대하여, 순회군 GT의 1개의 원소를 출력한다.
eψ:Πβ=1 n(ψ)+ζ(ψ)Pair(γβ, γβ *)…(36)
쌍선형 사상 Pair는 순회군 G1의 1개의 원소와 순회군 G2의 1개의 원소의 세트를 입력으로 하고, 순회군 GT의 1개의 원소를 출력한다. 쌍선형 사상 Pair는 이하의 성질을 만족한다.
[쌍선형성] 쌍선형 사상 Pair는 모든 Ω1∈G1, Ω2∈G2 및 ν, κ∈Fq에 대해서 이하의 관계를 만족한다.
Pair(ν·Ω1,κ·Ω2)=Pair(Ω12)ν·κ…(37)
[비퇴화성] 쌍선형 사상 Pair는 모든
Ω1∈G1,Ω2∈G2…(38)
을 순회군 GT의 단위원에 그리는 사상이 아니다.
[계산 가능성] 모든 Ω1∈G1, Ω2∈G2에 대해서 Pair(Ω12)를 효율적으로 계산하는 알고리즘이 존재한다.
쌍선형 사상 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∈G12∈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) …(39)
      ...
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) …(40)
      ...
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)…(41)
즉, i=j인 경우에는, 식(36)(37)의 관계로부터 이하의 관계가 만족된다.
eψ(ai(ψ), aj *(ψ))
       = Pair(κ1·g12·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는 각각 κ12를 나타낸다.
한편, i≠j인 경우에는 eψ(ai(ψ), aj *(ψ))=Πi=1 n(ψ)+ζ(ψ) Pair(ai(ψ), aj *(ψ))의 우변은 Pair(κ1·g12·g2)를 포함하지 않고, Pair(κ1·g1,0)와 Pair(0,κ2·g2)와 Pair(0,0)의 곱이 된다. 또한, 식(37)의 관계로부터 Pair(g1,0)=Pair(0, g2)=Pair(g1, g2)0를 만족한다. 그 때문에, i≠j인 경우에는 이하의 관계를 만족한다.
eψ(ai(ψ), aj *(ψ))=eψ(g1, g2)0=gT 0
특히, τ=κ1·κ2=1F인 경우(예를 들면, κ12=1F인 경우),
e(ai(ψ), aj*(ψ))=gT δ(i,j)…(42)
를 만족한다. 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(ψ)+ζ(ψ))가 식(39)에 의해 표현되는 경우, 행렬 A(ψ)는 이하와 같아진다.
[수 3]
Figure 112013001868551-pct00004
A*(ψ) : A*(ψ)는 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))가 식(40)에 의해 표현되는 경우, 행렬 A*(ψ)는 이하와 같아진다.
[수 4]
Figure 112013001868551-pct00005
X(ψ) : X(ψ)는 유한체 Fq의 원소를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. 행렬 X(ψ)는 기저 벡터 ai(ψ)의 좌표변환에 사용된다. 행렬 X(ψ)의 i행j열(i=1,...,n(ψ)+ζ(ψ), j=1,...,n(ψ)+ζ(ψ))의 요소를 χi, j(ψ)∈Fq로 하면, 행렬 X(ψ)는 이하와 같아진다.
[수 5]
Figure 112013001868551-pct00006
또한, 행렬 X(ψ)의 각 요소 χi, j(ψ)를 변환 계수라고 한다.
X*(ψ) : 행렬 X*(ψ)는 X*(ψ)=τ'·(X(ψ)-1)T의 관계를 만족한다. 단, τ'∈Fq는 유한체 Fq에 속하는 임의의 상수이며, 예를 들면, τ'=1F이다. X*(ψ)는 기저 벡터 ai *(ψ)의 좌표변환에 사용된다. 행렬 X*(ψ)의 i행j열의 요소를 χi, j *(ψ)∈Fq로 하면, 행렬 X*(ψ)는 이하와 같아진다.
[수 6]
Figure 112013001868551-pct00007
또한, 행렬 X*(ψ)의 각 요소 χi, j *(ψ)를 변환 계수라고 한다.
이 경우, n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 단위행렬을 I(ψ)로 하면 X(ψ)·( X*(ψ))T=τ'·I(ψ)를 만족한다. 즉, 단위행렬을 이하와 같이 정의한다.
[수 7]
Figure 112013001868551-pct00008
이것에 대해서 이하가 만족된다.
[수 8]
Figure 112013001868551-pct00009
여기서, n(ψ)+ζ(ψ)차원 벡터를 이하와 같이 정의한다.
χi (ψ)=(χi,1(ψ),...,χi,n(ψ)+ζ(ψ)(ψ))…(49)
χj →*(ψ)=(χj,1 *(ψ),...,χj,n(ψ)+ζ(ψ) *(ψ))…(50)
그러면, 식(48)의 관계로부터, n(ψ)+ζ(ψ)차원 벡터 χi (ψ)와 χj →*(ψ)의 내적은 이하와 같아진다.
χi (ψ)·χj →*(ψ)=τ'·δ(i,j)…(51)
bi(ψ) : bi(ψ)는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. bi(ψ)는 행렬 X(ψ)를 사용하여 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))를 좌표변환함으로써 얻어진다. 구체적으로는 기저 벡터 bi(ψ)는 이하의 연산에 의해 얻어진다.
bi(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j(ψ)·aj(ψ)…(52)
예를 들면, 기저 벡터 aj(ψ)(j=1,...,n(ψ)+ζ(ψ))가 식(39)에 의해 표현되는 경우, 기저 벡터 bi(ψ)의 각 요소를 각각 열거하여 표현하면, 이하와 같아진다.
bi(ψ)=(χi,1(ψ)·κ1·g1i,2(ψ)·κ1·g1,
            ...,χi,n(ψ)+ζ(ψ)(ψ)·κ1·g1)…(53)
순회군 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 *(ψ)…(54)
예를 들면, 기저 벡터 aj *(ψ)(j=1,...,n(ψ)+ζ(ψ))가 식(40)에 의해 표현되는 경우, 기저 벡터 bi *(ψ)의 각 요소를 각각 열거하여 표현하면 이하와 같아진다.
bi *(ψ)=(χi,1 *(ψ)·κ2·g2i,2 *(ψ)·κ2·g2,
           ...,χi,n(ψ)+ζ(ψ) *(ψ)·κ2·g2)…(55)
순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 표시된다. 즉, n(ψ)+ζ(ψ)차원의 기저 벡터 bi *(ψ)는 상기 서술한 벡터 공간 V*(ψ)를 펼친다.
또한, 기저 벡터 bi(ψ)와 기저 벡터 bi *(ψ)는 0F를 제외한 유한체 Fq의 원소 τ=κ1·κ2에 대해서 이하의 관계를 만족한다.
eψ(bi(ψ), bj *(ψ))=gT τ·τ'·δ(i,j)…(56)
즉, 식(36)(51)(53)(55)의 관계로부터 이하의 관계가 만족된다.
[수 9]
Figure 112013001868551-pct00010
특히 τ=κ1·κ2=1F(예를 들면, κ12=1F) 및 τ'=1F인 경우, 이하의 관계가 만족된다.
eψ(bi(ψ), bj *(ψ))=gT δ(i,j)…(57)
기저 벡터 bi(ψ)와 기저 벡터 bi *(ψ)는 쌍대 페어링 벡터 공간(벡터 공간 V(ψ)와 벡터 공간 V*(ψ))의 쌍대 정규직교기저이다.
식(56)의 관계를 만족하는 것이면, 식(39)(40)에서 예시한 것 이외의 기저 벡터 ai(ψ) 및 ai *(ψ)나, 식(52)(54)에서 예시한 것 이외의 기저 벡터 bi(ψ) 및 bi *(ψ)를 사용해도 된다.
B(ψ) : B(ψ)는 기저 벡터 bi(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬이다. B(ψ)=X(ψ)·A(ψ)를 만족한다. 예를 들면, 기저 벡터 bi(ψ)가 식(53)에 의해 표현되는 경우, 행렬 B(ψ)는 이하와 같아진다.
[수 10]
Figure 112013001868551-pct00011
B*(ψ) : B*(ψ)는 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. B*(ψ)=X*(ψ)·A*(ψ)를 만족한다. 예를 들면, 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))가 식(55)에 의해 표현되는 경우, 행렬 B*(ψ)는 이하와 같아진다.
[수 11]
Figure 112013001868551-pct00012
v(λ) : v(λ)는 유한체 Fq의 원소를 요소로 하는 n(λ)차원 벡터를 나타낸다.
v(λ)=(v1(λ),...,vn (λ)(λ))∈Fq n (λ)…(60)
vμ(λ) : vμ(λ)는 n(λ)차원 벡터 v(λ)의 μ(μ=1,...,n(λ))번째의 요소를 나타낸다.
w(λ) : w(λ)는 유한체 Fq의 원소를 요소로 하는 n(λ)차원 벡터를 나타낸다.
w(λ)=(w1(λ),...,wn (λ)(λ))∈Fq n (λ)…(61)
wμ(λ) : wμ(λ)는 n(λ)차원 벡터 w(λ)의 μ(μ=1,...,n(λ))번째의 요소를 나타낸다.
Enc : Enc는 공통 키 암호 방식의 암호화 처리를 나타내는 공통 키 암호 함수를 나타낸다.
EncK(M) : EncK(M)는 공통 키 K를 사용하여, 공통 키 암호 함수 Enc에 따라서 평문 M을 암호화하여 얻어진 암호문을 나타낸다.
Dec : Dec는 공통 키 암호 방식의 복호 처리를 나타내는 공통 키 복호 함수를 나타낸다.
DecK(C) : DecK(C)는 공통 키 K를 사용하여, 공통 키 복호 함수 Dec에 따라서 암호문 C를 복호하여 얻어진 복호 결과를 나타낸다.
〔함수 암호 방식〕
다음에 함수 암호 방식의 기본적인 구성에 대해서 설명한다.
함수 암호 방식은 제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 정보의 조합에 의해 진리값이 정해지는 명제변수를 포함하고, 필요에 따라서 추가로 논리기호 ∧,∨,¬의 어느 하나 또는 모두를 포함한다. 각 명제변수의 진리값이 특정됨으로써 정해지는 당해 소정의 논리식의 진리값이 「참」이 되는 경우에 비밀 정보에 따른 값이 복원되고, 그것에 기초하여 암호문이 복호된다.
<논리식과 계층적인 비밀 분산의 관계>
상기 서술한 소정의 논리식과 계층적인 비밀 분산의 관계를 설명한다.
상기 서술한 바와 같이, (N,N) 역치 비밀 분산 방식에서는 모든 쉐어 정보 share(1) ,...,share(N)이 주어지면 비밀 정보 SE를 복원할 수 있는데, 임의의 N-1개의 쉐어 정보 Share(φ1) ,...,share(φn-1)이 주어져도 비밀 정보 SE의 정보는 전혀 얻어지지 않는다. (Kt,N) 역치 비밀 분산 방식에서는 임의의 상이한 Kt개의 쉐어 정보 share(φ1),...,share(φKt)가 주어지면 비밀 정보 SE를 복원할 수 있는데, 임의의 Kt-1개의 쉐어 정보 share(φ1),...,share(φKt -1)가 주어져도 비밀 정보 SE의 정보는 전혀 얻어지지 않는다.
이들 비밀 분산 방식은 체상에서도 실행 가능하다. 이들을 확장하여 비밀 정보 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의 선형 결합이 된다. 비밀 정보 SE가 쉐어 정보 Share의 선형 결합이 되는 비밀 분산 방식을 선형 비밀 분산 방식이라고 한다.
상기 서술한 소정의 논리식은 비밀 정보를 계층적으로 비밀 분산하여 얻어지는 나무구조 데이터에 의해 표현할 수 있다. 즉, 드·모르간 법칙에 의해, 상기 서술한 소정의 논리식은 리터럴로 이루어지는 논리식, 또는 논리기호 ∧, ∨의 적어도 일부와 리터럴로 이루어지는 논리식(이들을 「표준형 논리식」이라고 부르기로 함)에 의해 표현할 수 있고, 이 표준형 논리식은 비밀 정보를 계층적으로 비밀 분산하여 얻어지는 나무구조 데이터에 의해 표현할 수 있다.
표준형 논리식을 표현하는 나무구조 데이터는 복수의 노드를 포함하고, 적어도 일부의 노드는 1개 이상의 자노드의 친노드로 되어 있고, 친노드의 1개는 루트노드로 되어 있고, 자노드의 적어도 일부는 잎노드로 되어 있다. 루트노드의 친노드나, 잎노드의 자노드는 존재하지 않는다. 루트노드에는 비밀 정보에 따른 값이 대응하고, 각 친노드의 자노드에는 당해 친노드에 대응하는 값을 비밀 분산하여 얻어진 쉐어 정보에 따른 값이 대응한다. 각 노드에서의 비밀 분산 형태(비밀 분산 방식이나 역치)는 표준형 논리식에 따라 정해진다. 또, 각 잎노드에는 표준형 논리식을 구성하는 각 리터럴이 대응하고, 당해 각 리터럴의 진리값은 제1 정보와 제2 정보의 조합에 의해 정해진다.
여기서, 진리값이 참이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지만, 진리값이 거짓이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지 않는 것으로 한다. 또, 상기 서술한 비밀 분산의 성질에 의해, 친노드에 대응하는 쉐어 정보에 따른 값(그 친노드가 루트노드이면 비밀 정보에 따른 값)은 그 자노드에 대응하는 쉐어 정보에 따른 값이 당해 친노드에 대응하는 역치 이상의 개수만큼 얻어진 경우에만 복원된다. 그 때문에, 어느 잎노드에 대응하는 리터럴의 진리값이 참이 되었는지와 나무구조 데이터의 구성(각 노드에서의 비밀 분산의 형태를 포함함)에 따라, 최종적으로 루트노드에 대응하는 비밀 정보에 따른 값을 복원할 수 있는지 여부가 정해진다. 각 잎노드에 대응하는 각 리터럴의 진리값이 표준형 논리식의 진리값을 참으로 하는 경우에만 최종적으로 루트노드에 대응하는 비밀 정보에 따른 값을 복원할 수 있도록 나무구조 데이터가 구성되어 있는 경우, 이러한 나무구조 데이터는 표준형 논리식을 표현한다. 이러한 표준형 논리식을 표현하는 나무구조 데이터는 용이하게 설정할 수 있다. 이하에 구체예를 나타낸다.
도 15는 명제변수 PRO(1), PRO(2)와 명제변수 PRO(3)의 부정 ¬PRO(3)와 논리기호 ∧, ∨를 포함하는 표준형 논리식 PRO(1)∧PRO(2)∨¬PRO(3)를 표현하는 나무구조 데이터를 예시하는 도면이다. 도 15에 예시하는 나무구조 데이터는 복수의 노드 N1,...,N5를 포함한다. 노드 N1은 노드 N2, N5의 친노드가 되고, 노드 N2는 노드 N3, N4의 친노드가 되고, 친노드의 1개 노드 N1이 루트노드가 되고, 자노드의 일부인 노드 N3, N4, N5가 잎노드가 된다. 노드 N1에는 비밀 정보 SE에 따른 값이 대응하고, 노드 N1의 자노드 N2, N5에는 비밀 정보 SE에 따른 값이 (1,2) 역치 비밀 분산 방식으로 비밀 분산된 각 쉐어 정보 SE, SE에 따른 값이 각각 대응한다. 노드 N2의 자노드 N3, N4에는 쉐어 정보 SE에 따른 값이 (2,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에 따른 값이 복원된다.
도 16은 명제변수 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)을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 16에 예시하는 나무구조 데이터는 복수의 노드 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,3) 역치 비밀 분산 방식으로 비밀 분산된 각 쉐어 정보 SE, SE, SE에 따른 값이 각각 대응한다. 노드 N2의 자노드 N3, N4, N5에는 쉐어 정보 SE에 따른 값이 (2,3) 역치 비밀 분산 방식으로 비밀 분산된 각 쉐어 정보(1,f(1)),(2,f(2)),(3,f(3))에 따른 값이 각각 대응한다. 노드 N7의 자노드 N8, N11에는 쉐어 정보 SE에 따른 값이 (2,2) 역치 비밀 분산 방식으로 비밀 분산된 각 쉐어 정보 SH4, SE-SH4에 따른 값이 각각 대응한다. 노드 N8의 자노드 N9, N10에는 쉐어 정보 SH4에 따른 값이 (1,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(3), ¬PRO(4), ¬PRO(5), PRO(6), PRO(7)이 각각 대응하고, 각 리터럴 PRO(1), PRO(2), 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]
Figure 112013001868551-pct00013
행렬 MT의 각 요소 mtλ,col(col=1,...,COL)는 다음의 2개의 요건을 만족한다. 첫번째로, 상기 서술한 바와 같이 소정의 논리식을 표현한 나무구조 데이터의 루트노드에 비밀 정보 SE∈Fq에 따른 값이 대응하는 경우, 미리 정해진 유한체 Fq의 원소를 요소로 하는 COL차원 벡터 GV와 비밀 정보 SE에 따른 유한체 Fq의 원소를 요소로 하는 COL차원 벡터 CV 사이에 이하의 관계가 성립한다.
GV=(gv1,...,gvCOL)∈Fq COL…(63)
CV=(cv1,...,cvCOL)∈Fq COL…(64)
SE=GV·(CV)T…(65)
이하에 COL차원 벡터 GV의 구체예를 나타낸다.
GV=(1F,...,1F)∈Fq COL…(66)
단, GV=(1F,0F,...,0F)∈Fq COL 등의 그 밖의 COL차원 벡터가 GV여도 된다.
두번째로, 식별자 λ에 대응하는 잎노드에 쉐어 정보 share(λ)∈Fq에 따른 값이 대응하는 경우, 이하와 관계가 성립한다.
(share(1),...,share(Ψ))T=MT·(CV)T…(67)
상기 서술한 바와 같이 소정의 논리식을 표현한 나무구조 데이터가 정해지면, 이들 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(Ψ))…(68)
요소 tfv(λ)는 내적 v(λ)·w(λ)이 0일 때에 tfv(λ)=1이 되고, 0 이외일 때에 tfv(λ)=0이 된다.
tfv(λ)=1 (PRO(λ)가 참) if v(λ)·w(λ)=0…(69)
tfv(λ)=0 (PRO(λ)가 거짓) if v(λ)·w(λ)≠0…(70)
또한, 이하의 논리식의 진리값이 「참」이 될 때 LIT(λ)=1로 표기하고 「거짓」이 될 때 LIT(λ)=0로 표기한다.
{(LAB(λ)=v(λ))∧(tfv(λ)=1)}∨{(LAB(λ)=¬v(λ))∧(tfv(λ)=0)}…(71)
즉, 식별자 λ에 대응하는 잎노드에 대응하는 리터럴의 진리값이 「참」이 될 때 LIT(λ)=1로 표기하고 「거짓」이 될 때 LIT(λ)=0로 표기한다. 그러면, 행렬 MT가 포함하는 행 벡터 중 LIT(λ)=1이 되는 행 벡터 mtλ =(mtλ,1,...,mtλ, COL)만으로 이루어지는 부분 행렬 MTTFV는 이하와 같이 표기할 수 있다.
MTTFV=(MT)LIT (λ)=1…(72)
상기 서술한 비밀 분산 방식이 선형 비밀 분산 방식인 경우, 식별자 λ에 대응하는 쉐어 정보 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(μ)…(73)
{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(ψ)+ζ(ψ))가 식(52)에 따라 좌표변환되어, n(ψ)+ζ(ψ)차원의 기저 벡터 bi(ψ) (i=1,...,n(ψ)+ζ(ψ))가 생성된다. 기저 벡터 bi(ψ) (i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬 B(ψ)가 생성된다.
(Setup-4) 기저 벡터 ai *(ψ) (i=1,...,n(ψ)+ζ(ψ))가 식(54)에 따라 좌표변환되어, 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) 식(63)-(67)을 만족하는 비밀 정보 SE에 대하여 이하의 처리가 실행된다.
D*(0)=-SE·b1 *(0)+Σι=2 Icoefι(0)·bι *(0)…(74)
단, I는 2 이상 n(0)+ζ(0) 이하의 상수이다. coefι(0)∈Fq는 상수 또는 난수이다. 「난수」는 진성 난수나 의사 난수를 의미한다. 이하에 D*(0)의 일례를 나타낸다. 또한, 식(75)의 coef4(0)는 난수이다.
D*(0)=-SE·b1 *(0)+b3 *(0)+coef4(0)·b4 *(0)…(75)
(GenKey-2) 식(63)-(67)을 만족하는 share(λ)(λ=1,...,Ψ)에 대하여 이하의 처리가 실행된다.
LAB(λ)=v(λ)가 되는 λ에 대하여, 이하의 D*(λ)가 생성된다.
D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)
ι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)
    +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)…(76)
LAB(λ)=¬v(λ)가 되는 λ에 대하여, 이하의 D*(λ)가 생성된다.
D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)
   +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)·bι *(λ)…(77)
단, coef(λ), coefι(λ)∈Fq는 상수 또는 난수이다. 이하에 일례를 나타낸다.
LAB(λ)=v(λ)가 되는 λ에 대하여, 예를 들면 이하의 D*(λ)가 생성된다.
D*(λ)=(share(λ)+coef(λ)·v1(λ))·b1 *(λ)
   +Σι=2 n(λ)coef(λ)·vι(λ)·bι *(λ)
   +Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)…(78)
LAB(λ)=¬v(λ)가 되는 λ에 대하여, 예를 들면 이하의 D*(λ)가 생성된다.
D*(λ)=share(λ)·Σι=1 n(λ)vι(λ)·bι *(λ)
   +Σι=2·n(λ)+1 3·n(λ)coefι(λ)·bι *(λ)…(79)
또한, 식(78)(79)의 coef(λ) 및 coefι(λ)은 난수이다.
(GenKey-3) 이하의 키 정보가 생성된다.
SKS=(LMT(MT,LAB),D*(0),D*(1),...,D(Ψ))…(80)
[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)…(81)
C(λ)=υ·Σι=1 n(λ)wι(λ)·bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)·bι(λ)…(82)
단, υ,υι(ψ)∈Fq(ψ=0,...,Ψ)은 상수 또는 난수이며, 이하의 관계가 만족된다.
(coef2(0),...,coefI(0))·(υ2(0),...,υI(0))=υ'…(83)
coefι(λ)·υι(λ)=0F (ι=n(λ)+1,...,n(λ)+ζ(λ))…(84)
υ'의 예는 υ2(0),...,υI(0)의 어느 1개이다. 예를 들면, υ,υ3(0),υ5(0),υ3·n(λ)+1(λ),...,υ4·n(λ)(λ)가 난수이며, ζ(λ)=3·n(λ), I=5이며, 이하의 관계가 만족된다.
2(0),...,υI(0))=(0F3(0),0F5(0))
υ'=υ3(0)
n(λ)+1(λ),...,υ3·n(λ)(λ))=(0F,...,0F)
(Enc-2) 공통 키
K=gT τ·τ'·υ'∈GT…(85)
가 생성된다. 예를 들면, τ=τ'=1F의 경우, 이하의 관계가 만족된다.
K=gT υ'∈GT…(86)
(Enc-3) 공통 키 K를 사용하여 평문 M의 암호문 C(Ψ+1)가 생성된다.
C(Ψ+1)=EncK(M)…(87)
공통 키 암호 방식 Enc는, 예를 들면 공통 키 K를 사용하여 암호화 가능하게 구성된 카멜리아(Camellia)(등록상표)나 AES나 공통 키와 평문의 배타적 논리합 등이면 되지만, 그 밖의 간단한 예로서 이하와 같이 EncK(M)를 생성해도 된다. 단, 식(88)의 예에서는 M∈GT가 된다.
C(Ψ+1)=gT υ'·M…(88)
(Enc-4) 이하의 암호문이 생성된다.
C=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈ VSET2,C(Ψ+1))…(89)
단, 아랫첨자의 「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>인지 여부가 판정된다(식(69)-(73)). GV∈span<MTTFV>이 아니면 암호문 C가 거절되고, GV∈span<MTTFV>이면 암호문 C가 받아들여진다.
(Dec-2) 암호문 C가 받아들여지면, SET⊆{1,...,λ|LIT(λ)=1}와 식(73)을 만족하는 계수 const(μ)(μ∈SET)가 계산된다.
(Dec-3) 이하의 공통 키가 생성된다.
[수 13]
Figure 112013001868551-pct00014
여기서, 식(37)(56)(83)으로부터, 이하의 관계가 만족된다.
[수 14]
Figure 112013001868551-pct00015
식(37)(56)(69)(76)(82)(84) 및 w1(λ)=1F로부터, 이하의 관계가 만족된다.
[수 15]
Figure 112013001868551-pct00016
식(37)(56)(70)(77)(82)(84)으로부터, 이하의 관계가 만족된다.
[수 16]
Figure 112013001868551-pct00017
식(73)(91)-(93)으로부터 이하의 관계가 만족된다.
[수 17]
Figure 112013001868551-pct00018
예를 들면, τ=τ'=1F의 경우, 이하의 관계가 만족된다.
K=gT υ'∈GT…(95)
(Dec-4) 공통 키 K를 사용하여 이하와 같이 평문 M'가 생성된다.
M'=DecK(C(Ψ+1))=DecK(C(Ψ+1))…(96)
예를 들면, 식(88)에 예시한 공통 키 암호 방식의 경우, 이하와 같이 평문 M'가 생성된다.
M'=C(Ψ+1)/K…(97)
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가 된다.
<전체 구성>
도 17은 제2 실시형태의 비밀 분산 시스템의 전체 구성을 설명하기 위한 블록도이다.
도 17에 예시하는 바와 같이, 본 형태의 비밀 분산 시스템(6)은 분산 장치(610)와, Σα=1 Lh(α)개의 분산 관리 장치(〔PA(α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)〕 620-α-h(α))와, 취득 장치(630)와, 공유값 생성 장치(640-1~L, 650)를 가지고, 그들은 네트워크(150)를 통하여 통신 가능하다. 설명을 간략화하기 위해서, 본 형태에서는 분산 장치(610) 및 취득 장치(630)가 1개씩 존재하는 구성을 예시하는데, 분산 장치(610) 및/또는 취득 장치(630)가 2개 이상 존재해도 된다. 마찬가지의 이유에 의해, 본 형태에서는 Σα=1 Lh(α)개의 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))로 이루어지는 집합이 1개만 존재하는 구성을 예시하는데, 이러한 집합이 복수 존재하고 있어도 된다.
도 17에 예시하는 바와 같이, Σα=1 Lh(α)개의 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))로 이루어지는 집합은 H(α)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 복수의 부분 집합 SUB(α)마다 구분된다. 각 부분 집합 SUB(α)에는 공유값 생성 장치(640-α)가 각각 대응한다.
도 18은 제2 실시형태의 분산 장치(610)의 구성을 설명하기 위한 블록도이다. 또, 도 19a 및 19b는 공유값 생성 장치(640-1~L, 650)의 구성을 설명하기 위한 블록도이다. 도 20은 제2 실시형태의 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))의 구성을 설명하기 위한 블록도이다. 도 21은 제2 실시형태의 취득 장치(630)의 구성을 설명하기 위한 블록도이다. 또한, 이들 도면에 있어서 제1 실시형태와 공통되는 부분에 대해서는, 제1 실시형태와 동일한 부호를 붙이고 설명을 간략화한다.
<분산 장치(610)>
도 18에 예시하는 바와 같이, 본 형태의 분산 장치(610)는 일시 기억부(111)와, 기억부(112)와, 제어부(113)와, 비밀 분산부(614-α(α=1,...,L))와, 송신부(115)를 가진다. 또한, 본 형태의 분산 장치(610)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지의 컴퓨터에 소정의 프로그램이 읽어들여져 실행됨으로써 구성된다.
<공유값 생성 장치(640-α, 650)>
도 19a에 예시하는 바와 같이, 본 형태의 공유값 생성 장치(640-α)는 계수 설정부(641-α)와 송신부(642-α)를 가진다. 도 19b에 예시하는 바와 같이, 본 형태의 공유값 생성 장치(650)는 기억부(651)와 공통 정보 생성부(652, 653)와 송신부(654)를 가진다.
<분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))>
도 20에 예시하는 바와 같이, 본 형태의 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))는 일시 기억부(121-α-h(α))와, 기억부(122-α-h(α))와, 제어부(123-α-h(α))와, 분산 비밀값 생성부(621-α-h(α), 622-α-h(α), 623-α-h(α))와, 선택부(624-α-h(α))와, 송신부(125-α-h(α))와, 수신부(126-α-h(α))를 가진다. 또한, 본 형태의 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지의 컴퓨터에 소정의 프로그램이 읽어들여져 실행됨으로써 구성된다.
<취득 장치(630)>
도 21에 예시하는 바와 같이, 본 형태의 취득 장치(630)는 일시 기억부(131)와, 기억부(132)와, 제어부(133)와, 복원부(634-α, 636-α(α=1,...,L))와, 합성부(635, 637)와, 수신부(136)를 가진다. 또한, 본 형태의 취득 장치(630)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지의 컴퓨터에 소정의 프로그램이 읽어들여져 실행됨으로써 구성된다.
<비밀 분산 처리>
다음에, 본 형태의 비밀 분산 처리를 설명한다.
본 형태에서는 제1 실시형태를 응용하여, 액세스 구조를 사용한 함수 암호 방식의 마스터 키 정보인 기저 벡터 bi *(ψ)(식(55))를 비밀 분산하고, 그들의 쉐어 정보에 대한 연산 결과로부터 키 정보 D*(ψ)를 복원한다. 이하에서는 식(74)(76)(77)과 같이 일반화된 키 정보 D*(ψ)를 복원하는 예를 나타낸다. 그러나, 마찬가지의 처리가 식(75)(78)(79)과 같이 구체화된 키 정보 D*(ψ)의 경우에도 적용 가능한 것은 말할 필요도 없다.
식(55)에 나타낸 기저 벡터 bi *(ψ)를 구성하는 식(98)에 나타내는 각 요소를 식(99)과 같이 표현한다.
χi,β *(ψ)·κ2·g2∈G2(i=1,...,n(ψ)+ζ(ψ),β=1,...,n(ψ)+ζ(ψ))…(98)
θ(ψ,i,β)·g2∈G2…(99)
단, 이하가 만족된다.
θ(ψ,i,β)=χi,β *(ψ)·κ2∈Fq…(100)
즉, 식(55)의 기저 벡터 bi *(ψ)를 이하와 같이 표현한다.
bi *=(ψ,θ(i,1)·g2,...,θ(ψ,i,n(ψ)+ζ(ψ))·g2)∈G2 n (ψ)+ζ(ψ)…(101)
이 식으로부터 제1 실시형태를 다차원으로 확장함으로써 기저 벡터 bi *(ψ)를 비밀 분산할 수 있는 것을 알 수 있다. 비밀 정보는 쉐어 정보의 선형의 연산에 의해 복원되기 때문에, 다차원의 비밀 분산에 의해 얻어진 각 차원의 쉐어 정보에 대하여 선형의 연산을 시행한 결과를 쉐어 정보로 간주하여 복원 처리를 행하는 것도 가능하다. 그 때문에 제1 실시형태를 다차원으로 확장함으로써 키 정보 D*(ψ)의 복원 처리를 실행할 수 있는 것도 알 수 있다.
이하에서는 제1 실시형태와의 상이점을 중심으로 설명하고, 그들과 공통되는 사항에 대해서는 설명을 생략한다.
[사전처리]
본 형태의 비밀 분산 처리의 사전처리로서, 각 기저 벡터 bi *(ψ)의 요소인 비밀 정보 θ(ψ, i, β)·g2∈G2(i=1,...,n(ψ)+ζ(ψ), β=1,...,n(ψ)+ζ(ψ))를 특정하기 위한 정보 θ(ψ, i, β)∈Fq가 분산 장치(610)의 기억부(112)에 격납된다. 공유값 생성 장치(650)의 기억부(651)에 식(63)-(67)을 만족하는 비밀 정보 SE와 쉐어 정보 share(λ)(λ=1,...,Ψ)가 격납된다. 식(60)의 n(λ)차원 벡터 v(λ)의 집합 {v(λ)}λ=1,...,Ψ인 제1 정보에 대응하는 라벨이 붙은 행렬 LMT(MT, LAB)이 각 분산 관리 장치(620-α-h(α))의 기억부(122-α-h(α))에 각각 격납된다. 또한, 라벨이 붙은 행렬 LMT(MT, LAB)은 모든 분산 관리 장치(PA(α, h(α)) 620-α-h(α))에 공통이다.
[비밀 분산 처리의 전체]
도 22 및 도 23은 제2 실시형태의 비밀 분산 처리의 전체를 설명하기 위한 도면이다. 이하, 도 22 및 도 23을 사용하여, 본 형태의 비밀 분산 처리의 전체를 설명한다.
본 형태에서는, 우선, 분산 장치(610)(도 17)가 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값을 각각 H(α)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 부분 집합 SUB(α)마다 독립적으로 소정의 비밀 분산 방식에 따라서 비밀 분산하고, 각 요소 θ(ψ, i, β)·g2에 따른 값의 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))를 생성한다. 본 형태에서의 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값은 θ(ψ, i, β)이며, 비밀 분산하는 대상이 복수인 것 이외에, 비밀 분산의 구체적인 방법은 제1 실시형태의 변형예 1, 2, 4의 어느 하나와 동일하다. 본 형태의 모든 θ(ψ, i, β)는 제1 실시형태의 변형예 1, 2, 4의 어느 하나와 동일한 방법으로 비밀 분산된다. 즉, 본 형태에서는, 제1 실시형태의 변형예 1, 2, 4의 어느 하나의 비밀 분산 방법의 θ를 θ(ψ, i, β)로 치환한 비밀 분산 방법이 실행된다. 예를 들면, 이하와 같은 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))가 생성된다.
SH(ψ,i,β,α,h(α))=(φ(h(α)), f(α,φ(h(α))))∈Fq
단, f(α, ω)=θ(ψ, i, β)를 만족하고, ω∈Fq는 미리 정해진 유한체 Fq의 원소이다.
각 쉐어 정보 SH(ψ, i, β, α, h(α))는 각각 네트워크(150) 경유로 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α)(α=1,...,L))로 분산되어 송신된다(스텝 S61 및 S61').
각 쉐어 정보 SH(ψ, i, β, α, h(α))가 송신된 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α)(α=1,...,L))는 각각 부분 집합 SUB(α)마다 공유되는 공통 정보와, 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))에 대하여, 부분 집합 SUB(α)마다 공통인 공통 연산을 행하여 분산 비밀값 DSH(ψ, α, h(α))을 생성한다. 서로 상이한 부분 집합 SUB(α)에서 각각 공유되는 공통 정보는 서로 독립이다. 공통 연산은 선형성을 가진 연산이다. 본 형태의 공통 정보는 예를 들면 비밀 정보 SE로부터 얻어진 SE(α)(FNC2-1(SE)→SE(1) ,...,SE(α) ,...,SE(L)), 쉐어 정보 share(λ)로부터 얻어진 share(λ, α)(FNC2'-1(share(λ))→share(λ,1) ,...,share(λ, α) ,...,share(λ, L)), 및 상수 또는 난수인 coefι(0,α), coef(λ, α), coefι(λ, α)∈Fq를 포함한다. FNC2-1은 선형 연산 함수 FNC2의 역함수를 나타낸다. FNC2'-1은 선형 연산 함수 FNC2'의 역함수를 나타낸다. 선형 연산 함수 FNC2는 입력된 L개의 값의 선형 연산 결과를 출력하는 함수이며, 선형 연산 함수 FNC2의 예는 L개의 값의 선형 결합값을 출력하는 함수이다. 어느 ι에 대한 coefι(0,α)이나 coefι(λ, α)이 공통 정보가 되는지, 및 coefι(0,α), coef(λ, α), coefι(λ, α), SE(α), share(λ, α)가 상수인지 난수인지는 생성되는 키 정보 D*(ψ)의 구조에 의존한다. 본 형태의 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))는 예를 들면 이하와 같이 ψ=0에 대응하는 분산 비밀값 DSH(0,α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)을 생성한다(FNC1).
SHbi *(0,α,h(α))=(SH(0,i,1,α,h(α)),...,SH(0,i,I,α,h(α)))…(102)
DSH(0,α,h(α))
=-SE(α)·SHb1 *(0,α,h(α))·g2ι=2 Icoefι(0,α)·SHbι *(0,α,h(α))·g2…(103)
또한, 본 형태의 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))는 예를 들면 이하의 식(104)-(106)과 같이 각 λ(λ=1,...,Ψ)에 대응하는 분산 비밀값 DSH(λ, α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)을 생성한다(FNC1').
SHbi *(λ,α,h(α))
=(SH(λ,i,1,α,h(α)),...,SH(λ,i,n(λ)+ζ(λ),α,h(α)))…(104)
DSH(λ,α,h(α))
=(share(λ,α)+coef(λ,α)·v1(λ))·SHb1 *(λ,α,h(α))·g2
ι=2 n(λ)coef(λ,α)·vι(λ)·SHbι *(λ,α,h(α))·g2
ι=n(λ)+1 n(λ)+ζ(λ)coefι(λ,α)·SHbι *(λ,α,h(α))·g2…(105)
DSH(λ,α,h(α))
=share(λ,α)·Σι=1 n(λ)vι(λ)·SHb1 *(λ,α,h(α))·g2
ι=n(λ)+1 n(λ)+ζ(λ)coefι(λ,α)·SHbι *(λ,α,h(α))·g2…(106)
각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))로부터 출력된 각 분산 비밀값 DSH(ψ, α, h(α))은 각각 네트워크(150) 경유로 취득 장치(630)에 송신된다(스텝 S62 및 S62').
취득 장치(630)는 동일한 부분 집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(ψ, α, h(α))을 사용하고, 상기 서술한 스텝 S61 및 S61'의 비밀 분산 방식에 따른 부분 집합 SUB(α)마다의 복원 처리에 의해, 당해 부분 집합 SUB(α)마다의 비밀 복원값 SUBSK(ψ, α)(ψ=0,...,Ψ, α=1,...,L)을 생성한다.
본 형태의 취득 장치(630)는 예를 들면 이하의 SUBSK(0,α)를 ψ=0에 대응하는 비밀 복원값으로 한다.
SUBSK(0,α)=-SE(α)·b1 *(0)+Σι=2 Icoefι(0,α)·bι *(0)…(107)
본 형태의 취득 장치(630)는 예를 들면, 이하의 식(108) 또는 (109)을 각 λ=1,...,Ψ에 대응하는 비밀 복원값 SUBSK(λ, α)으로 한다.
SUBSK(λ,α)=(share(λ,α)+coef(λ,α)·v1(λ))·b1 *(λ)
ι=2 n(λ)coef(λ,α)·vι(λ)·bι *(λ)
ι=n(λ)+1 n(λ)+ζ(λ)coefι(λ,α)·bι *(λ)…(108)
SUBSK(λ,α)=share(λ,α)·Σι=1 n(λ)vι(λ)·b1 *(λ)
ι=n(λ)+1 n(λ)+ζ(λ)coefι(λ,α)·bι *(λ)…(109)
이들 처리는 분산 비밀값 DSH(ψ, α, h(α))의 각 차원(차수)에 대하여 제1 실시형태에서 나타낸 복원 처리를 실행함으로써 실현할 수 있다. 즉, 각 분산 비밀값 DSH(ψ, α, h(α))은 벡터이지만, 그들의 각 차원(차수)에 대하여 제1 실시형태에서 나타낸 복원 처리(스텝 S134)를 각각 실행함으로써 상기 서술한 복원 처리를 실현할 수 있다. 예를 들면, 이 복원 처리에 이용되는 벡터인 분산 비밀값 DSH(ψ, α, h(α))의 ι차원째의 요소를 이하와 같이 표현한다.
1(α), dsh1(α))
R(α)(α), dshR(α)(α))
이 경우에 식(11)의 연산이 행해져 각 계수 λρ(x)(ρ=1,...,R(α))가 얻어지고, 이하의 계산이 행해짐으로써 ψ에 대응하는 비밀 복원값 SUBSK(ψ, α)의 ι차원째가 얻어진다.
λ1(ω)·dsh1(α)+...+λR(α)(ω)·dshR(α)(α)
따라서, 각 ψ 및 ι에 대하여 각각 마찬가지의 처리를 행함으로써 비밀 복원값 SUBSK(ψ, α)이 얻어진다(스텝 S63 및 S63').
취득 장치(630)는 각 부분 집합 SUB(α)에 대해서 각각 생성된 비밀 복원값 SUBSK(ψ, α)(ψ=0,...,Ψ, α=1,...,L)을 사용하여 생성 정보 D*(ψ)(ψ=0,...,Ψ)를 생성하고, 당해 생성 정보 D*(ψ)를 출력한다(D*(ψ)=FNC2(SUBSK(ψ,1) ,...,(SUBSK(ψ, α) ,...,(SUBSK(ψ, L))).
예를 들면, 취득 장치(630)는 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 생성 정보 D*(ψ)를 생성한다. 예를 들면, 이하의 식(110-1)(110-2)을 만족하도록 비밀 분산되어 있었다면, 취득 장치(630)는 이하의 식(111)에 따라서 D*(ψ)(ψ=0,...,Ψ)를 생성한다(스텝 S64 및 S64').
FNC2(SUBSK(0,1),...,(SUBSK(0,α),..., (SUBSK(0,L)))
=SUBSK(0,1)+...+SUBSK(0,α)+...+SUBSK(0,L)…(110-1)
FNC2’(SUBSK(λ,1),...,(SUBSK(λ,α),..., (SUBSK(λ,L)))
=SUBSK(λ,1)+...+SUBSK(λ,α)+...+SUBSK(λ,L)…(110-2)
D*(ψ)=SUBSK(ψ,1)+...+SUBSK(ψ,α)+...+SUBSK(ψ,L)…(111)
[분산 장치의 처리(스텝 S61 및 S61')]
도 24는 제2 실시형태의 분산 장치의 처리를 예시하기 위한 도면이다. 이하, 이 도면을 사용하여, 분산 장치(610)의 처리의 상세를 설명한다.
우선, 분산 장치(610)(도 18)의 제어부(113)가 ψ=0로 설정하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S6101). 제어부(113)가 α=1, β=1로 설정하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S6102). 다음에, 분산 장치(610)의 제어부(113)가 i=1으로 설정하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S6103).
다음에, 기억부(112)로부터 비밀 정보 θ(ψ, i, β)·g2∈G2(i=1,...,n(ψ)+ζ(ψ), β=1,...,n(ψ,) +ζ(ψ,))를 특정하기 위한 정보 θ(ψ, i, β)∈Fq가 각각 독출되어, 비밀 분산부(614-α(α=1,...,L))에 입력된다. 비밀 분산부(614-α)는 각 정보 θ(ψ, i, β)∈Fq를 비밀 분산하고, 이하와 같이, 정보 θ(ψ, i, β)마다 부분 집합 SUB(α)에 대한 H(α)개의 쉐어 정보를 생성하여 출력한다(스텝 S6104).
SH(ψ,i,β,α,1),...,SH(ψ,i,β,α,H(α))…(112)
예를 들면, 정보 θ(ψ, i, β)마다 제1 실시형태의 스텝 S112의 처리를 실행함으로써 스텝 S6104의 처리가 실행된다.
다음에, 제어부(113)는 일시 기억부(111)에 격납된 β가 n(ψ)+ζ(ψ)인지 여부를 판정한다(스텝 S6105). 여기서, β=n(ψ)+ζ(ψ)이 아니라고 판정된 경우, 제어부(113)는 β+1을 새로운 β로 하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S6106). 스텝 S6106 뒤에 스텝 S6104로 되돌아간다.
한편, 스텝 S6105에서 β=n(ψ)+ζ(ψ)라고 판정된 경우, 제어부(113)는 β=1로 설정하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S6107). 다음에, 제어부(113)는 일시 기억부(111)에 격납된 i가 n(ψ)+ζ(ψ)인지 여부를 판정한다(스텝 S6108). 여기서, i=n(ψ)+ζ(ψ)가 아니라고 판정된 경우, 제어부(113)는 i+1을 새로운 i로 하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S6109). 스텝 S6109 뒤에 스텝 S6104로 되돌아간다.
한편, 스텝 S6108에서 i=n(ψ)+ζ(ψ)라고 판정된 경우, 제어부(113)는 일시 기억부(111)에 격납된 α가 L인지 여부를 판정한다(스텝 S6110). 여기서, α=L이 아니라고 판정된 경우, 제어부(113)는 α+1을 새로운 α로 하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S6111). 스텝 S6111 뒤에 스텝 S6103으로 되돌아간다.
한편, 스텝 S6110에서 α=L이라고 판정된 경우, 제어부(113)는 일시 기억부(111)에 격납된 ψ가 Ψ인지 여부를 판정한다(스텝 S6112). 여기서, ψ=Ψ가 아니라고 판정된 경우, 제어부(113)는 ψ+1을 새로운 ψ로 하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S6113). 스텝 S6113 뒤에 스텝 S6102로 되돌아간다.
한편, 스텝 S6112에서 ψ=Ψ라고 판정된 경우, 각 비밀 분산부(614-α)로부터 출력된 각 SH(ψ, i, β, α ,1) ,...,SH(ψ, i, β, α, H(α))가 송신부(115)에 보내진다. 송신부(115)는 네트워크(150) 경유로, 이하의 쉐어 정보를 각각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α)(α=1,...,L))에 송신한다(스텝 S6114).
SH(ψ,i,β,α,h(α)) (i=1,...,n(ψ)+ζ(ψ),β=1,...,n(ψ)+ζ(ψ))…(113)
즉, 각 쉐어 정보 SH(ψ, i, β, 1, h(1))는 분산 관리 장치(〔PA(1,1)〕 620-1-1)에, 각 쉐어 정보 SH(ψ, i, β, 2, h(2))는 분산 관리 장치(〔PA(1,2)〕 620-1-2)에, ···, 쉐어 정보 SH(ψ, i, β, L, H(L))는 분산 관리 장치(〔PA(L, H(L))〕 620-L-H(L))에 각각 송신된다.
[공유값 생성 장치의 처리]
각 공유값 생성 장치(640-α(α=1,...,L))(도 19a)는 스스로에 대응하는 부분 집합 SUB(α)을 구성하는 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α)(h(α)=1,...,H(α)))에서 공유하는 공통 정보 coefι(0,α), coef(λ, α), coefι(λ, α)를 생성한다. 본 형태에서는, 공통 정보 생성부(641-α)로부터 출력된 난수 또는 상수를 공통 정보 coefι(0,α), coef(λ, α), coefι(λ, α)로 하고, 송신부(642-α)가 공통 정보 coefι(0,α), coef(λ, α), coefι(λ, α)를 부분 집합 SUB(α)을 구성하는 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α)(h(α)=1,...,H(α)))에 송신한다.
공유값 생성 장치(650)(도 19b)는 비밀 정보 SE로부터 SE(α)(α=1,...,L)을 생성하고, 쉐어 정보 share(λ)로부터 share(λ, α)(α=1,...,L)를 생성한다. 본 형태에서는, 공통 정보 생성부(652)가 기억부(651)에 격납된 비밀 정보 SE를 사용하고, 이하를 만족하는 SE(1) ,...,SE(α) ,...,SE(L)을 생성한다.
FNC2-1(SE)→SE(1),...,SE(α),...,SE(L)…(114)
예를 들면, 공통 정보 생성부(652)는 이하를 만족하는 SE(1) ,...,SE(α) ,...,SE(L)을 생성한다.
SE=SE(1)+...+SE(α)+...+SE(L)…(115)
본 형태에서는, 공통 정보 생성부(653)가 기억부(651)에 격납된 쉐어 정보 share(λ)를 사용하고, 이하와 같이 share(λ,1) ,...,share(λ, α) ,...,share(λ, L)를 생성한다.
FNC2’-1(share(λ))→share(λ,1),...,share(λ,α),...,share(λ,L)…(116)
예를 들면, 공통 정보 생성부(653)는 이하의 관계를 만족하는 share(λ,1) ,...,share(λ, α) ,...,share(λ, L)를 생성한다.
share(λ)=share(λ,1)+...+share(λ,α)+...+share(λ,L)…(117)
SE(α) 및 share(λ, α)(α=1,...,L, λ=1,...,Ψ)는 송신부(654)에 보내지고, 송신부(654)는 SE(α) 및 share(λ, α)를 부분 집합 SUB(α)을 구성하는 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))에 송신한다.
[분산 관리 장치의 처리(스텝 S62)]
도 25는 제2 실시형태의 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α)(α=1,...,L))의 처리를 예시하기 위한 도면이다. 이하, 이 도면을 사용하여 본 형태의 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))의 처리를 설명한다.
우선, 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))(도 20)의 수신부(126-α-h(α))가 송신된 쉐어 정보 SH(ψ, i, β, α, h(α))를 수신하고, 그들을 기억부(122-α-h(α))에 격납한다(스텝 S6201). 또한, 과거에 스텝 S6201의 처리가 실행되고, 이미 쉐어 정보 SH(ψ, i, β, α, h(α))가 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))의 기억부(122-α-h(α))에 격납되어 있으면, 스텝 S6201의 처리를 생략해도 된다.
분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))의 수신부(126-α-h(α))는 공유값 생성 장치(640-α 및 650)로부터 송신된 공통 정보 coefι(0,α), coef(λ, α), coefι(λ, α), SE(α) 및 share(λ, α)를 수신하고, 그들을 기억부(122-α-h(α))에 격납한다(스텝 S6202).
다음에, 분산 비밀값 생성부(621-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(0,i, β, α, h(α))와 공통 정보 coefι(0,α), SE(α)를 읽어들인다. 분산 비밀값 생성부(621-α-h(α))는 이들을 사용하여 식(103)을 만족하는 분산 비밀값 DSH(0,α, h(α))을 생성하여 출력한다(스텝 S6203).
다음에 제어부(123-α-h(α))가 λ=1로 설정하고, 그 설정 내용을 일시 기억부(121-α-h(α))에 격납한다(스텝 S6204). 선택부(624-α-h(α))는 기억부(122-α-h(α))에 격납된 라벨이 붙은 행렬 LMT(MT, LAB)로부터 라벨 LAB(λ)을 참조하여 LAB(λ)=v(λ)인지 여부를 판정한다(스텝 S6205).
여기서, LAB(λ)=v(λ)이면, 분산 비밀값 생성부(622-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(λ, i, β, α, h(α))와 공통 정보 coef(λ, α), coefι(λ, α), share(α)와 라벨 LAB(λ)에 의해 특정되는 n(λ)차원 벡터 v(λ)를 읽어들인다. 분산 비밀값 생성부(622-α-h(α))는 이들을 사용하여 식(105)을 만족하는 분산 비밀값 DSH(λ, α, h(α))을 생성하여 출력한다(스텝 S6206). 한편, LAB(λ)=¬v(λ)이면, 분산 비밀값 생성부(623-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(λ, i, β, α, h(α))와 공통 정보 coefι(λ, α), share(α)와 라벨 LAB(λ)에 의해 특정되는 n(λ)차원 벡터 v(λ)을 읽어들인다. 분산 비밀값 생성부(623-α-h(α))는 이들을 사용하여 식(106)을 만족하는 분산 비밀값 DSH(λ, α, h(α))을 생성하여 출력한다(스텝 S6207).
λ에 대응하는 분산 비밀값 DSH(λ, α, h(α))이 생성되면, 제어부(123-α-h(α))는 일시 기억부(121-α-h(α))에 격납된 λ가 Ψ인지 여부를 판정(스텝 S6208)하고, λ=Ψ이 아니면 λ+1을 새로운 λ로 하고(스텝 S6209), 스텝 S6205의 처리로 이행한다. 한편, λ=Ψ이면, 생성된 각 분산 비밀값 DSH(0,α, h(α)), DSH(λ, α, h(α))(λ=1,...,Ψ)은 송신부(125-α-h(α))에 보내진다. 송신부(125-α-h(α))는 각 분산 비밀값 DSH(0,α, h(α)), DSH(λ, α, h(α))을 네트워크(150) 경유로 취득 장치(630)에 송신한다(스텝 S6210).
[취득 장치의 처리(스텝 S63, S63', S64, S64')]
도 26은 제2 실시형태의 취득 장치의 처리를 예시하기 위한 도면이다.
각 분산 관리 장치(PA(α, h(α)) 620-α-h(α)(α=1,...,L))로부터 송신된 분산 비밀값 DSH(0,α, h(α)), DSH(λ, α, h(α))(λ=1,...,Ψ)은 취득 장치(630)(도 21)의 수신부(136)에서 수신되어, 기억부(132)에 격납된다(스텝 S6301).
다음에, 제어부(133)가 비밀값의 복원에 필요한 수(이하 「필요수」라고 함) 이상의 분산 비밀값 DSH(0,α, h(α)), DSH(λ, α, h(α))이 기억부(132)에 격납되었는지 여부를 판정한다(스텝 S6302). 여기서, 필요수 이상의 분산 비밀값 DSH(0,α, h(α)), DSH(λ, α, h(α))이 기억부(132)에 격납되어 있지 않다고 판정된 경우에는, 스텝 S6301의 처리로 되돌아간다.
한편, 필요수 이상의 분산 비밀값 DSH(0,α, h(α)), DSH(λ, α, h(α))이 기억부(132)에 격납되었다고 판정된 경우, 제어부(133)가 α=1로 설정하고, 그 설정 내용을 일시 기억부(131)에 격납한다(스텝 S6303). 다음에, 기억부(132)로부터 부분 집합 SUB(α)에 대응하는 필요수 만큼의 분산 비밀값 DSH(0,α, h(α))(h(α)=1,...,H(α))이 독출되어, 각 복원부(634-α(α=1,...,L))에 입력된다. 각 복원부(634-α)는 입력된 분산 비밀값 DSH(0,α, h(α))(h(α)=1,...,H(α))을 사용하고, 부분 집합 SUB(α)마다의 복원 처리에 의해 식(107)을 만족하는 비밀 복원값 SUBSK(0,α)을 생성하고, 당해 부분 집합 SUB(α)(α=1,...,L)마다의 비밀 복원값 SUBSK(0,α)을 출력한다(스텝 S6304).
다음에 제어부(133)가 λ=1로 설정하고, 그 설정 내용을 일시 기억부(131)에 격납한다(스텝 S6305). 다음에, 기억부(132)로부터 부분 집합 SUB(α)에 대응하는 필요수 만큼의 분산 비밀값 DSH(λ, α, h(α))(h(α)=1,...,H(α))이 독출되어, 각 복원부(636-α(α=1,...,L))에 입력된다. 각 복원부(636-α)는 입력된 분산 비밀값 DSH(λ, α, h(α))(h(α)=1,...,H(α))을 사용하고, 부분 집합 SUB(α)마다의 복원 처리에 의해 식(108) 또는 (109)을 만족하는 비밀 복원값 SUBSK(λ, α)을 생성하고, 당해 부분 집합 SUB(α)마다의 비밀 복원값 SUBSK(λ, α)을 출력한다(스텝 S6306).
다음에, 제어부(133)는 일시 기억부(131)에 격납된 λ가 Ψ인지 여부를 판정한다(스텝 S6307). 여기서, λ=Ψ가 아니라고 판정된 경우, 제어부(133)는 λ+1을 새로운 λ로 하고, 그 설정 내용을 일시 기억부(131)에 격납한다(스텝 S6308). 스텝 S6308 뒤에 스텝 S6306으로 되돌아간다.
한편, λ=Ψ라고 판정된 경우, 제어부(133)는 일시 기억부(131)에 격납된 α가 L인지 여부를 판정한다(스텝 S6309). 여기서, α=L이 아니라고 판정된 경우, 제어부(133)는 α+1을 새로운 α로 하고, 그 설정 내용을 일시 기억부(131)에 격납한다(스텝 S6310). 스텝 S6310 뒤에 스텝 S6304로 되돌아간다.
한편, 스텝 S6309에서 α=L이라고 판정된 경우, 각 복원부(634-α(α=1,...,L))로부터 출력된 각 비밀 복원값 SUBSK(0,α)(α=1,...,L)이 합성부(635)에 보내진다. 합성부(635)는 각 비밀 복원값 SUBSK(0,α)(α=1,...,L)을 사용하여, 이하의 키 정보 D*(0)를 생성하여 출력한다.
D*(0)=FNC2(SUBSK(0,1),...,SUBSK(0,α),..., SUBSK(0,L))…(118)
예를 들면, ψ=0로 한 식(111)에 따라 키 정보 D*(0)가 생성되어 출력된다(스텝 S6311).
또한, 각 복원부(634-α(α=1,...,L))로부터 출력된 각 비밀 복원값 SUBSK(λ, α)(α=1,...,L)이 합성부(637)에 보내진다. 합성부(637)는 각 비밀 복원값 SUBSK(λ, α)(α=1,...,L)을 사용하여, 이하의 키 정보 D*(λ)(λ=1,...,Ψ)를 생성하여 출력한다.
D*(λ)=FNC2(SUBSK(λ,1),...,SUBSK(λ,α),..., SUBSK(λ,L))…(119)
예를 들면, ψ=λ(λ=1,...,Ψ)로 한 식(111)에 따라, 키 정보 D*(λ)(λ=1,...,Ψ)가 생성되어 출력된다(스텝 S6312).
<제2 실시형태의 변형예 1>
제2 실시형태의 변형예 1은 제2 실시형태에 제1 실시형태의 변형예 1을 적용한 것이다. 즉, 제2 실시형태의 변형예 1에서의 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값은 θ(ψ, i, β)·g2이며, 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))는 예를 들면 이하의 DSH(0,α, h(α))을 ψ=0에 대응하는 분산 비밀값으로서 생성한다(FNC1).
DSH(0,α,h(α))
=-SE(α)·SHb1 *(0,α,h(α))·g2ι=2 Icoefι(0,α)·SHbι *(0,α,h(α))…(120)
또한, 본 형태의 각 분산 관리 장치(〔PA(α, h(α))〕 620-α-h(α))는 예를 들면 이하의 식(121) 또는 (122)에 따라, 이하의 DSH(λ, α, h(α))(λ=1,...,Ψ)을 각 λ에 대응하는 분산 비밀값으로서 생성한다(FNC1').
DSH(λ,α,h(α))
=(share(λ,α)+coef(λ,α)·v1(λ))·SHb1 *(λ,α,h(α))
ι=2 n(λ)coef(λ,α)·vι(λ)·SHbι *(λ,α,h(α))
ι=n(λ)+1 n(λ)+ζ(λ)coefι(λ,α)·SHbι *(λ,α,h(α))…(121)
DSH(λ,α,h(α))
=share(λ,α)·Σι=1 n(λ)vι(λ)·SHb1 *(λ,α,h(α))
ι=n(λ)+1 n(λ)+ζ(λ)coefι(λ,α)·SHbι *(λ,α,h(α))…(122)
그 밖에는 제2 실시형태와 마찬가지이다.
제2 실시형태의 변형예 1의 비밀 분산 시스템(7)은 분산 장치(610)가 분산 장치(710)로 치환되고, 분산 관리 장치(620-α-h(α)(α=1,...,L))가 분산 관리 장치(720-α-h(α)(α=1,...,L))로 치환된다. 그 밖의 구성은 제2 실시형태와 마찬가지이다.
제2 실시형태의 변형예 1에서는, 스텝 S6104 대신에 기억부(112)로부터 정보 θ(ψ, i, β)·g2∈G2(i=1,...,n(ψ)+ζ(ψ), β=1,...,n(ψ)+ζ(ψ))가 각각 독출되어, 비밀 분산부(714-α(α=1,...,L))(도 27)에 입력된다. 비밀 분산부(714-α)는 각 정보 θ(ψ, i, β)·g2∈G2를 비밀 분산하고, 정보 θ(ψ, i, β)·g2∈G2마다 부분 집합 SUB(α)에 대한 이하의 H(α)개의 쉐어 정보를 생성하여 출력한다.
SH(ψ,i,β,α,1),...,SH(ψ,i,β,α,H(α))…(123)
각 정보 θ(ψ, i, β)·g2∈G2의 비밀 분산 방법은 제1 실시형태와 마찬가지이다. 즉, 본 형태에서는, 제1 실시형태의 비밀 분산 방법의 θ·g를 θ(ψ, i, β)·g2로 치환한 비밀 분산 방법이 실행된다. 예를 들면, 이하와 같은 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))가 생성된다.
SH(ψ,i,β,α,h(α))=(φ(h(α)), f(α,φ(h(α))))·g2∈G2
단, f(α, ω)=θ(ψ, i, β)를 만족하고, ω∈Fq는 미리 정해진 유한체 Fq의 원소이다(스텝 S7104).
제2 실시형태의 변형예 1에서는, 제2 실시형태의 스텝 S6203 대신에 분산 비밀값 생성부(721-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(0,i, β, α, h(α))와 공통 정보 coefι(0,α), SE(α)를 읽어들인다. 분산 비밀값 생성부(721-α-h(α))는 이들을 사용하여 식(120)을 만족하는 분산 비밀값 DSH(0,α, h(α))을 생성하여 출력한다(스텝 S7203).
제2 실시형태의 변형예 1에서는, 제2 실시형태의 스텝 S6206 대신에 분산 비밀값 생성부(722-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(λ, i, β, α, h(α))와 공통 정보 coef(λ, α), coefι(λ, α), share(α)와 라벨 LAB(λ)에 의해 특정되는 n(λ)차원 벡터 v(λ)를 읽어들인다. 분산 비밀값 생성부(722-α-h(α))는 이들을 사용하여 식(121)을 만족하는 분산 비밀값 DSH(λ, α, h(α))을 생성하여 출력한다(스텝 S7206). 또한, 제2 실시형태의 스텝 S6207 대신에 분산 비밀값 생성부(723-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(λ, i, β, α, h(α))와 공통 정보 coefι(λ, α), share(α)와 라벨 LAB(λ)에 의해 특정되는 n(λ)차원 벡터 v(λ)를 읽어들인다. 분산 비밀값 생성부(723-α-h(α))는 이들을 사용하여 식(122)을 만족하는 분산 비밀값 DSH(λ, α, h(α))을 생성하여 출력한다(스텝 S7207).
<제2 실시형태의 변형예 2>
그 밖에 제2 실시형태나 그 변형예 1에 있어서, 비밀 분산 방법이나 복원 방법을 예를 들면 제1 실시형태나 그 변형예 3과 같이 변형해도 된다.
〔그 밖의 변형예 등〕
본 발명은 상기 서술한 각 실시형태에 한정되는 것이 아니다. 예를 들면, 상기 서술한 유한체 Fq 상에서 정의된 각 연산을 위수 q의 유한환 Zq 상에서 정의된 연산으로 치환해도 된다. 유한체 Fq 상에서 정의된 각 연산을 유한환 Zq 상에서 정의된 연산으로 치환하는 방법의 일례는 소수나 그 멱승값 이외의 q를 허용하는 방법이다. 또, 제2 실시형태에서는 생성 정보로서 함수 암호의 키 정보를 생성하는 처리를 예시했지만, 그 이외의 생성 정보가 생성되어도 된다.
상기 서술한 각종 처리는 기재에 따라 시계열로 실행될 뿐만아니라, 처리를 실행하는 장치의 처리 능력 또는 필요에 따라서 병렬적으로 또는 개별적으로 실행되어도 된다. 그 밖에 본 발명의 취지를 일탈하지 않는 범위에서 적당히 변경이 가능한 것은 말할 필요도 없다.
상기 서술한 구성을 컴퓨터에 의해 실현하는 경우, 각 장치가 가져야 할 기능의 처리 내용은 프로그램에 의해 기술된다. 그리고, 이 프로그램을 컴퓨터로 실행함으로써, 상기 처리 기능이 컴퓨터 상에서 실현된다.
이 처리 내용을 기술한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록 매체로서는 예를 들면 자기 기록 장치, 광디스크, 광자기 기록 매체, 반도체 메모리 등 어떠한 것이어도 된다.
이 프로그램의 유통은 예를 들면 그 프로그램을 기록한 DVD, CD-ROM 등의 가반형 기록 매체를 판매, 양도, 대여하거나 함으로써 행한다. 또한, 이 프로그램을 서버 컴퓨터의 기억 장치에 격납해 두고, 네트워크를 통하여 서버 컴퓨터로부터 다른 컴퓨터에 그 프로그램을 전송함으로써, 이 프로그램을 유통시키는 구성으로 해도 된다.
이러한 프로그램을 실행하는 컴퓨터는 예를 들면 우선 가반형 기록 매체에 기록된 프로그램 혹은 서버 컴퓨터로부터 전송된 프로그램을 일단 자기의 기억 장치에 격납한다. 그리고, 처리의 실행시, 이 컴퓨터는 자기의 기록 매체에 격납된 프로그램을 판독하고, 판독한 프로그램에 따른 처리를 실행한다. 또, 이 프로그램의 다른 실행 형태로서, 컴퓨터가 가반형 기록 매체로부터 직접 프로그램을 판독하고, 그 프로그램에 따른 처리를 실행하는 것으로 해도 되고, 또한 이 컴퓨터에 서버 컴퓨터로부터 프로그램이 전송될 때마다 차례로 수취한 프로그램에 따른 처리를 실행하는 것으로 해도 된다. 또, 서버 컴퓨터로부터 이 컴퓨터로의 프로그램의 전송은 행하지 않고, 그 실행 지시와 결과 취득만에 의해 처리 기능을 실현하는, 소위 ASP(Application Service Provider)형의 서비스에 의해, 상기 서술한 처리를 실행하는 구성으로 해도 된다. 또한, 본 형태에 있어서의 프로그램에는 전자 계산기에 의한 처리의 용도에 제공하는 정보로서 프로그램에 준하는 것(컴퓨터에 대한 직접적인 지령은 아니지만 컴퓨터의 처리를 규정하는 성질을 가지는 데이터 등)을 포함하는 것으로 한다.
상기 서술한 각 실시형태에서는, 컴퓨터상에서 소정의 프로그램이 실행되어, 각 장치의 처리 내용이 실현되었지만, 이들 처리 내용의 적어도 일부가 하드웨어만에 의해 실현되어도 된다.
1~7…비밀 분산 시스템
110, 210, 410, 510, 610, 710…분산 장치
120~720…분산 관리 장치
130, 330, 430, 530, 630…취득 장치
140, 640, 650…공유값 생성 장치

Claims (33)

  1. 비밀 분산 시스템으로서,
    분산 장치와 Σα=1 Lh(α)개의 분산 관리 장치(PA(α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2))와 취득 장치를 가지고,
    상기 분산 장치는,
    Ψ를 1 이상의 정수로 하고, ψ를 0 이상 Ψ 이하의 정수 ψ=0,...,Ψ로 하고, n(ψ)을 1 이상의 정수로 하고, ζ(ψ)를 0 이상의 정수로 하고, 순회군 G2의 생성원을 g2로 하고, 유한체의 원소 θ(ψ, i, β)(i=1,...,n(ψ)+ζ(ψ), β=1,...,n(ψ)+ζ(ψ), n(ψ)≥1,ζ(ψ)≥0)에 대한 상기 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 bi *(ψ)=(θ(ψ, i,1)·g2,...,θ(ψ, i, n(ψ)+ζ(ψ))·g2)∈G2 n(ψ)+ζ(ψ)로 한 경우에 있어서의, 상기 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값을, 각각 H(α)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 부분 집합 SUB(α)마다 독립적으로, 소정의 비밀 분산 방식에 따라 비밀 분산하고, 각 요소 θ(ψ, i, β)·g2에 따른 값의 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))를 생성하는 비밀 분산부를 포함하고,
    상기 분산 관리 장치(PA(α, h(α)))는,
    상기 부분 집합 SUB(α)마다 공유되는 공통 정보와, 상기 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))에 대하여, 상기 부분 집합 SUB(α)마다 공통의 공통 연산을 행하여 분산 비밀값 DSH(ψ, α, h(α))을 생성하는 분산 비밀값 생성부를 포함하고,
    상기 취득 장치는,
    동일한 상기 부분 집합 SUB(α)에 대응하는 복수의 상기 분산 비밀값 DSH(ψ, α, h(α))을 사용하고, 상기 비밀 분산 방식에 따른 부분 집합 SUB(α)마다의 복원 처리에 의해, 당해 부분 집합 SUB(α)마다의 비밀 복원값 SUBSK(ψ, α)을 생성하는 복원부와,
    상기 비밀 복원값 SUBSK(ψ, α)을 사용하여 생성 정보 D*(ψ)를 생성하는 합성부를 포함하는 것을 특징으로 하는 비밀 분산 시스템.
  2. 제 1 항에 있어서,
    서로 상이한 상기 부분 집합 SUB(α)에서 각각 공유되는 상기 공통 정보는 서로 독립인 것을 특징으로 하는 비밀 분산 시스템.
  3. 제 1 항에 있어서,
    상기 공통 연산은 선형성을 가진 연산인 것을 특징으로 하는 비밀 분산 시스템.
  4. 제 2 항에 있어서,
    상기 공통 연산은 선형성을 가진 연산인 것을 특징으로 하는 비밀 분산 시스템.
  5. 제 1 항에 있어서,
    상기 합성부는 상기 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 상기 생성 정보 D*(ψ)를 생성하는 것을 특징으로 하는 비밀 분산 시스템.
  6. 제 2 항에 있어서,
    상기 합성부는 상기 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 상기 생성 정보 D*(ψ)를 생성하는 것을 특징으로 하는 비밀 분산 시스템.
  7. 제 3 항에 있어서,
    상기 합성부는 상기 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 상기 생성 정보 D*(ψ)를 생성하는 것을 특징으로 하는 비밀 분산 시스템.
  8. 제 4 항에 있어서,
    상기 합성부는 상기 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 상기 생성 정보 D*(ψ)를 생성하는 것을 특징으로 하는 비밀 분산 시스템.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값은 θ(ψ, i, β)이며,
    상기 공통 정보는 λ를 1 이상 Ψ 이하의 정수 λ=1,...,Ψ로 한 경우에 있어서의, coefι(0,α), coef(λ, α), coefι(λ, α), SE(α), share(λ, α)를 포함하고,
    coefι(0,α), coef(λ,α), coefι(λ,α)가 상기 유한체의 원소이며,
    상기 유한체의 원소인 비밀 정보 SE의 쉐어 정보가 상기 유한체의 원소인 share(λ)이며, FNC2-1(SE)→SE(1),...,SE(α),...,SE(L)이며, FNC2'-1(share(λ))→share(λ,1),...,share(λ,α),...,share(λ,L)이며, FNC2-1이 선형 연산 함수 FNC2의 역함수이며, FNC2'-1이 선형 연산 함수 FNC2'의 역함수이며,
    상기 분산 비밀값 생성부는,
    SHbi *(0,α,h(α))
    =(SH(0,i,1,α,h(α)),...,SH(0,i,I,α,h(α)))
    로 하고, I를 2 이상 n(0)+ζ(0) 이하의 상수로 한 경우에 있어서의,
    DSH(0,α,h(α))
    =-SE(α)·SHb1 *(0,α,h(α))·g2+
    Figure 112014051829587-pct00059
    coefι(0,α)·SHbι *(0,α,h(α))·g2
    를 ψ=0에 대응하는 상기 분산 비밀값으로서 생성하고, 또한
    SHbi *(λ,α,h(α))=(SH(λ,i,1,α,h(α)),...,SH(λ,i,n(λ)+ζ(λ),α,h(α)))
    로 하고, v(λ)=(v1(λ) ,...,vn(λ)(λ))를 n(λ)차원 벡터로 한 경우에 있어서의,
    DSH(λ,α,h(α))
    =(share(λ,α)+coef(λ,α)·v1(λ))·SHb1 *(λ,α,h(α))·g2
    +
    Figure 112014051829587-pct00060
    coef(λ,α)·vι(λ)·SHbι *(λ,α,h(α))·g2
    +
    Figure 112014051829587-pct00099
    coefι(λ,α)·SHbι *(λ,α,h(α))·g2
    또는,
    DSH(λ,α,h(α))
    =share(λ,α)·
    Figure 112014051829587-pct00062
    vι(λ)·SHb1 *(λ,α,h(α))·g2
    +
    Figure 112014051829587-pct00100
    coefι(λ,α)·SHbι *(λ,α,h(α))·g2
    를 각 λ에 대응하는 상기 분산 비밀값으로서 생성하는 것을 특징으로 하는 비밀 분산 시스템.
  10. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값은 θ(ψ, i, β)·g2이며,
    상기 공통 정보는 λ를 1 이상 Ψ 이하의 정수 λ=1,...,Ψ로 한 경우에 있어서의, coefι(0,α), coef(λ, α), coefι(λ, α), SE(α), share(λ, α)를 포함하고,
    coefι(0,α), coef(λ,α), coefι(λ,α)가 상기 유한체의 원소이며,
    상기 유한체의 원소인 비밀 정보 SE의 쉐어 정보가 상기 유한체의 원소인 share(λ)이며, FNC2-1(SE)→SE(1),...,SE(α),...,SE(L)이며, FNC2'-1(share(λ))→share(λ,1),...,share(λ,α),...,share(λ,L)이며, FNC2-1이 선형 연산 함수 FNC2의 역함수이며, FNC2'-1이 선형 연산 함수 FNC2'의 역함수이며,
    상기 분산 비밀값 생성부는,
    SHbi *(0,α,h(α))
    =(SH(0,i,1,α,h(α)),...,SH(0,i,I,α,h(α)))
    로 하고, I를 2 이상 n(0)+ζ(0) 이하의 상수로 한 경우에 있어서의,
    DSH(0,α,h(α))
    =-SE(α)·SHb1 *(0,α,h(α))
               +
    Figure 112014051829587-pct00064
    coefι(0,α)·SHbι *(0,α,h(α))
    를 ψ=0에 대응하는 상기 분산 비밀값으로서 생성하고, 또한,
    SHbi *(λ,α,h(α))=(SH(λ,i,1,α,h(α)),...,SH(λ,i,n(λ)+ζ(λ),α,h(α)))
    로 하고, v(λ)=(v1(λ) ,...,vn(λ)(λ))를 n(λ)차원 벡터로 한 경우에 있어서의,
    DSH(λ,α,h(α))
    =(share(λ,α)+coef(λ,α)·v1(λ))·SHb1 *(λ,α,h(α))
    +
    Figure 112014051829587-pct00065
    coef(λ,α)·vι(λ)·SHbι *(λ,α,h(α))
    +
    Figure 112014051829587-pct00101
    coefι(λ,α)·SHbι *(λ,α,h(α))
    또는,
    DSH(λ,α,h(α))
    =share(λ,α)·
    Figure 112014051829587-pct00067
    vι(λ)·SHb1 *(λ,α,h(α))
    +
    Figure 112014051829587-pct00102
    coefι(λ,α)·SHbι *(λ,α,h(α))
    를 각 λ에 대응하는 상기 분산 비밀값으로서 생성하는 것을 특징으로 하는 비밀 분산 시스템.
  11. 제 9 항에 있어서,
    상기 복원부는,
    SUBSK(0,α)=-SE(α)·b1 *(0)+
    Figure 112014051829587-pct00069
    coefι(0,α)·bι *(0)
    를 ψ=0에 대응하는 상기 비밀 복원값으로서 생성하고,
    SUBSK(λ,α)=(share(λ,α)+coef(λ,α)·v1(λ))·b1 *(λ)
    +
    Figure 112014051829587-pct00070
    coef(λ,α)·vι(λ)·bι *(λ)
    +
    Figure 112014051829587-pct00103
    coefι(λ,α)·bι *(λ)
    또는,
    SUBSK(λ,α)=share(λ,α)·
    Figure 112014051829587-pct00072
    vι(λ)·b1 *(λ)
           +
    Figure 112014051829587-pct00104
    coefι(λ,α)·bι *(λ)
    를 각 λ에 대응하는 상기 비밀 복원값으로서 생성하는 것을 특징으로 하는 비밀 분산 시스템.
  12. 제 10 항에 있어서,
    상기 복원부는,
    SUBSK(0,α)=-SE(α)·b1 *(0)+
    Figure 112014051829587-pct00074
    coefι(0,α)·bι *(0)
    를 ψ=0에 대응하는 상기 비밀 복원값으로서 생성하고,
    SUBSK(λ,α)=(share(λ,α)+coef(λ,α)·v1(λ))·b1 *(λ)
    +
    Figure 112014051829587-pct00075
    coef(λ,α)·vι(λ)·bι *(λ)
    +
    Figure 112014051829587-pct00105
    coefι(λ,α)·bι *(λ)
    또는,
    SUBSK(λ,α)=share(λ,α)·
    Figure 112014051829587-pct00077
    vι(λ)·b1 *(λ)
           +
    Figure 112014051829587-pct00106
    coefι(λ,α)·bι *(λ)
    를 각 λ에 대응하는 상기 비밀 복원값으로서 생성하는 것을 특징으로 하는 비밀 분산 시스템.
  13. Ψ를 1 이상의 정수로 하고, ψ를 0 이상 Ψ 이하의 정수 ψ=0,...,Ψ로 하고, n(ψ)을 1 이상의 정수로 하고, ζ(ψ)를 0 이상의 정수로 하고, 순회군 G2의 생성원을 g2로 하고, 유한체의 원소 θ(ψ, i, β)(i=1,...,n(ψ)+ζ(ψ), β=1,...,n(ψ)+ζ(ψ), n(ψ)≥1, ζ(ψ)≥0)에 대한 상기 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 bi *(ψ)=(θ(ψ, i,1)·g2,...,θ(ψ, i, n(ψ)+ζ(ψ))·g2)∈G2 n(ψ)+ζ(ψ)로 한 경우에 있어서의, 상기 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값을, 각각 H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 부분 집합 SUB(α)마다 독립적으로, 소정의 비밀 분산 방식에 따라 비밀 분산하고, 각 요소 θ(ψ, i, β)·g2에 따른 값의 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))를 생성하는 것을 특징으로 하는 분산 장치.
  14. H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 부분 집합 SUB(α)마다 공유되는 공통 정보와, Ψ를 1 이상의 정수로 하고, ψ를 0 이상 Ψ 이하의 정수 ψ=0,...,Ψ로 하고, n(ψ)을 1 이상의 정수로 하고, ζ(ψ)를 0 이상의 정수로 하고, 순회군 G2의 생성원을 g2로 하고, 유한체의 원소 θ(ψ, i, β)(i=1,...,n(ψ)+ζ(ψ), β=1,...,n(ψ)+ζ(ψ), n(ψ)≥1, ζ(ψ)≥0)에 대한 상기 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 bi *(ψ)=(θ(ψ, i,1)·g2,...,θ(ψ, i, n(ψ)+ζ(ψ))·g2)∈G2 n(ψ)+ζ(ψ)로 한 경우에 있어서의, 상기 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값을 각각 상기 부분 집합 SUB(α)마다 독립적으로 비밀 분산하여 얻어진 각 요소 θ(ψ, i, β)·g2에 따른 값의 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))에 대하여, 상기 부분 집합 SUB(α)마다 공통의 공통 연산을 행하여 분산 비밀값 DSH(ψ, α, h(α))를 생성하는 것을 특징으로 하는 분산 관리 장치.
  15. Ψ를 1 이상의 정수로 하고, ψ를 0 이상 Ψ 이하의 정수 ψ=0,...,Ψ로 하고, H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 부분 집합을 SUB(α)로 한 경우에 있어서의, 동일한 상기 부분 집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(ψ, α, h(α))을 사용하고, 소정의 비밀 분산 방식에 따른 부분 집합 SUB(α)마다의 복원 처리에 의해, 당해 부분 집합 SUB(α)마다의 비밀 복원값 SUBSK(ψ, α)을 생성하는 복원부와,
    상기 비밀 복원값 SUBSK(ψ, α)을 사용하여 생성 정보 D*(ψ)를 생성하는 합성부를 가지는 것을 특징으로 하는 취득 장치.
  16. 분산 장치와 Σα=1 Lh(α)개의 분산 관리 장치(PA(α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2))와 취득 장치에 의해 행해지는 비밀 분산 방법으로서,
    (A) 상기 분산 장치가 Ψ를 1 이상의 정수로 하고, ψ를 0 이상 Ψ 이하의 정수 ψ=0,...,Ψ로 하고, n(ψ)을 1 이상의 정수로 하고, ζ(ψ)를 0 이상의 정수로 하고, 순회군 G2의 생성원을 g2로 하고, 유한체의 원소 θ(ψ,i,β)(i=1,...,n(ψ)+ζ(ψ), β=1,...,n(ψ)+ζ(ψ), n(ψ)≥1, ζ(ψ)≥0)에 대한 상기 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 bi *(ψ)=(θ(ψ,i,1)·g2,...,θ(ψ,i,n(ψ)+ζ(ψ))·g2)∈G2 n(ψ)+ζ(ψ)로 한 경우에 있어서의 상기 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값을, 각각 H(α)개의 분산 관리 장치(PA(α,1) ,...,PA(α, H(α)))로 이루어지는 부분 집합 SUB(α)마다 독립적으로, 소정의 비밀 분산 방식에 따라 비밀 분산하고, 각 요소 θ(ψ, i, β)·g2에 따른 값의 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))를 생성하는 스텝과,
    (B) 상기 분산 관리 장치(PA(α, h(α)))가 상기 부분 집합 SUB(α)마다 공유되는 공통 정보와, 상기 쉐어 정보 SH(ψ, i, β, α, h(α))(h(α)=1,...,H(α))에 대하여, 상기 부분 집합 SUB(α)마다 공통의 공통 연산을 행하여 분산 비밀값 DSH(ψ, α, h(α))를 생성하는 스텝과,
    (C) 상기 취득 장치가 동일한 상기 부분 집합 SUB(α)에 대응하는 복수의 상기 분산 비밀값 DSH(ψ, α, h(α))을 사용하고, 상기 비밀 분산 방식에 따른 부분 집합 SUB(α)마다의 복원 처리에 의해, 당해 부분 집합 SUB(α)마다의 비밀 복원값 SUBSK(ψ, α)을 생성하는 스텝과,
    (D) 상기 취득 장치가 상기 비밀 복원값 SUBSK(ψ, α)을 사용하여 생성 정보 D*(ψ)를 생성하는 스텝을 가지는 것을 특징으로 하는 비밀 분산 방법.
  17. 제 16 항에 있어서,
    서로 상이한 상기 부분 집합 SUB(α)에서 각각 공유되는 상기 공통 정보는 서로 독립인 것을 특징으로 하는 비밀 분산 방법.
  18. 제 16 항에 있어서,
    상기 공통 연산은 선형성을 가진 연산인 것을 특징으로 하는 비밀 분산 방법.
  19. 제 17 항에 있어서,
    상기 공통 연산은 선형성을 가진 연산인 것을 특징으로 하는 비밀 분산 방법.
  20. 제 16 항에 있어서,
    상기 스텝(D)은 상기 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 상기 생성 정보 D*(ψ)를 생성하는 스텝을 포함하는 것을 특징으로 하는 비밀 분산 방법.
  21. 제 17 항에 있어서,
    상기 스텝(D)은 상기 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 상기 생성 정보 D*(ψ)를 생성하는 스텝을 포함하는 것을 특징으로 하는 비밀 분산 방법.
  22. 제 18 항에 있어서,
    상기 스텝(D)은 상기 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 상기 생성 정보 D*(ψ)를 생성하는 스텝을 포함하는 것을 특징으로 하는 비밀 분산 방법.
  23. 제 19 항에 있어서,
    상기 스텝(D)은 상기 비밀 복원값 SUBSK(ψ, α)을 선형 결합하여 상기 생성 정보 D*(ψ)를 생성하는 스텝을 포함하는 것을 특징으로 하는 비밀 분산 방법.
  24. 제 16 항 내지 제 23 항 중 어느 한 항에 있어서,
    상기 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값은 θ(ψ, i, β)이며,
    상기 공통 정보는 λ를 1 이상 Ψ 이하의 정수 λ=1,...,Ψ로 한 경우에 있어서의, coefι(0,α), coef(λ, α), coefι(λ, α), SE(α), share(λ, α)을 포함하고,
    coefι(0,α), coef(λ,α), coefι(λ,α)가 상기 유한체의 원소이며,
    상기 유한체의 원소인 비밀 정보 SE의 쉐어 정보가 상기 유한체의 원소인 share(λ)이며, FNC2-1(SE)→SE(1),...,SE(α),...,SE(L)이며, FNC2'-1(share(λ))→share(λ,1),...,share(λ,α),...,share(λ,L)이며, FNC2-1이 선형 연산 함수 FNC2의 역함수이며, FNC2'-1이 선형 연산 함수 FNC2'의 역함수이며,
    상기 스텝(B)은,
    (B-1) SHbi *(0,α,h(α))=(SH(0,i,1,α,h(α)),...,SH(0,i,I,α,h(α)))
    로 하고, I를 2 이상 n(0)+ζ(0) 이하의 상수로 한 경우에 있어서의,
    DSH(0,α,h(α))
    =-SE(α)·SHb1 *(0,α,h(α))·g2+
    Figure 112014051829587-pct00079
    coefι(0,α)·SHbι *(0,α,h(α))·g2
    를 ψ=0에 대응하는 상기 분산 비밀값으로서 생성하는 스텝과,
    (B-2) SHbi *(λ,α,h(α))=(SH(λ,i,1,α,h(α)),...,SH(λ,i,n(λ)+ζ(λ),α,h(α)))
    로 하고, v(λ)=(v1(λ) ,...,vn(λ)(λ))을 n(λ)차원 벡터로 한 경우에 있어서의,
    DSH(λ,α,h(α))
    =(share(λ,α)+coef(λ,α)·v1(λ))·SHb1 *(λ,α,h(α))·g2
    +
    Figure 112014051829587-pct00080
    coef(λ,α)·vι(λ)·SHbι *(λ,α,h(α))·g2
    +
    Figure 112014051829587-pct00107
    coefι(λ,α)·SHbι *(λ,α,h(α))·g2
    또는,
    DSH(λ,α,h(α))
    =share(λ,α)·
    Figure 112014051829587-pct00082
    vι(λ)·SHb1 *(λ,α,h(α))·g2
    +
    Figure 112014051829587-pct00108
    coefι(λ,α)·SHbι *(λ,α,h(α))·g2
    를 각 λ에 대응하는 상기 분산 비밀값으로서 생성하는 스텝을 포함하는 것을 특징으로 하는 비밀 분산 방법.
  25. 제 16 항 내지 제 23 항 중 어느 한 항에 있어서,
    상기 기저 벡터 bi *(ψ)의 각 요소 θ(ψ, i, β)·g2에 따른 값은 θ(ψ, i, β)·g2이며,
    상기 공통 정보는 λ를 1 이상 Ψ 이하의 정수 λ=1,...,Ψ로 한 경우에 있어서의, coefι(0,α), coef(λ, α), coefι(λ, α), SE(α), share(λ, α)을 포함하고,
    coefι(0,α), coef(λ,α), coefι(λ,α)가 상기 유한체의 원소이며,
    상기 유한체의 원소인 비밀 정보 SE의 쉐어 정보가 상기 유한체의 원소인 share(λ)이며, FNC2-1(SE)→SE(1),...,SE(α),...,SE(L)이며, FNC2'-1(share(λ))→share(λ,1),...,share(λ,α),...,share(λ,L)이며, FNC2-1이 선형 연산 함수 FNC2의 역함수이며, FNC2'-1이 선형 연산 함수 FNC2'의 역함수이며,
    상기 스텝(B)은,
    (B-1) SHbi *(0,α,h(α))=(SH(0,i,1,α,h(α)),...,SH(0,i,I,α,h(α)))
    로 하고, I를 2 이상 n(0)+ζ(0) 이하의 상수로 한 경우에 있어서의,
    DSH(0,α,h(α))
    =-SE(α)·SHb1 *(0,α,h(α))+
    Figure 112014051829587-pct00084
    coefι(0,α)·SHbι *(0,α,h(α))
    를 ψ=0에 대응하는 상기 분산 비밀값으로서 생성하는 스텝과,
    (B-2) SHbi *(λ,α,h(α))=(SH(λ,i,1,α,h(α)),...,SH(λ,i,n(λ)+ζ(λ),α,h(α)))
    로 하고, v(λ)=(v1(λ),...,vn(λ)(λ))를 n(λ)차원 백터로 한 경우에 있어서의,
    DSH(λ,α,h(α))
    =(share(λ,α)+coef(λ,α)·v1(λ))·SHb1 *(λ,α,h(α))
    +
    Figure 112014051829587-pct00085
    coef(λ,α)·vι(λ)·SHbι *(λ,α,h(α))
    +
    Figure 112014051829587-pct00109
    coefι(λ,α)·SHbι *(λ,α,h(α))
    또는,
    DSH(λ,α,h(α))
    =share(λ,α)·
    Figure 112014051829587-pct00087
    vι(λ)·SHb1 *(λ,α,h(α))
    +
    Figure 112014051829587-pct00110
    coefι(λ,α)·SHbι *(λ,α,h(α))
    를 각 λ에 대응하는 상기 분산 비밀값으로서 생성하는 스텝을 포함하는 것을 특징으로 하는 비밀 분산 방법.
  26. 제 24 항에 있어서,
    상기 스텝(C)은,
    (C-1) SUBSK(0,α)=-SE(α)·b1 *(0)+
    Figure 112014051829587-pct00089
    coefι(0,α)·bι *(0)
    를 ψ=0에 대응하는 상기 비밀 복원값으로서 생성하는 스텝과,
    (C-2) SUBSK(λ,α)=(share(λ,α)+coef(λ,α)·v1(λ))·b1 *(λ)
    +
    Figure 112014051829587-pct00090
    coef(λ,α)·vι(λ)·bι *(λ)
    +
    Figure 112014051829587-pct00111
    coefι(λ,α)·bι *(λ)
    또는,
    SUBSK(λ,α)=share(λ,α)·
    Figure 112014051829587-pct00092
    vι(λ)·b1 *(λ)
           +
    Figure 112014051829587-pct00112
    coefι(λ,α)·bι *(λ)
    를 각 λ에 대응하는 상기 비밀 복원값으로서 생성하는 스텝을 포함하는 것을 특징으로 하는 비밀 분산 방법.
  27. 제 25 항에 있어서,
    상기 스텝(C)은,
    (C-1) SUBSK(0,α)=-SE(α)·b1 *(0)+
    Figure 112014051829587-pct00094
    coefι(0,α)·bι *(0)
    를 ψ=0에 대응하는 상기 비밀 복원값으로서 생성하는 스텝과,
    (C-2) SUBSK(λ,α)
    =(share(λ,α)+coef(λ,α)·v1(λ))·b1 *(λ)
    +
    Figure 112014051829587-pct00095
    coef(λ,α)·vι(λ)·bι *(λ)
    +
    Figure 112014051829587-pct00113
    coefι(λ,α)·bι *(λ)
    또는,
    SUBSK(λ,α)=share(λ,α)·
    Figure 112014051829587-pct00097
    vι(λ)·b1 *(λ)
           +
    Figure 112014051829587-pct00114
    coefι(λ,α)·bι *(λ)
    를 각 λ에 대응하는 상기 비밀 복원값으로서 생성하는 스텝을 포함하는 것을 특징으로 하는 비밀 분산 방법.
  28. 제 13 항의 분산 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 기록 매체.
  29. 제 14 항의 분산 관리 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 기록 매체.
  30. 제 15 항의 취득 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 기록 매체.
  31. 삭제
  32. 삭제
  33. 삭제
KR1020137000486A 2010-07-23 2011-07-22 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체 KR101456579B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2010-166407 2010-07-23
JP2010166407 2010-07-23
PCT/JP2011/066693 WO2012011565A1 (ja) 2010-07-23 2011-07-22 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
KR20130036044A KR20130036044A (ko) 2013-04-09
KR101456579B1 true KR101456579B1 (ko) 2014-10-31

Family

ID=45496983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137000486A KR101456579B1 (ko) 2010-07-23 2011-07-22 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체

Country Status (6)

Country Link
US (1) US8964988B2 (ko)
EP (1) EP2562736B1 (ko)
JP (1) JP5379914B2 (ko)
KR (1) KR101456579B1 (ko)
CN (1) CN103003857B (ko)
WO (1) WO2012011565A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5814880B2 (ja) * 2012-07-31 2015-11-17 三菱電機株式会社 暗号システム、暗号方法、暗号プログラム及び復号装置
CN102855422B (zh) * 2012-08-21 2015-03-04 飞天诚信科技股份有限公司 一种盗版加密锁的识别方法和装置
KR102084733B1 (ko) * 2013-05-09 2020-03-05 삼성전자주식회사 파일 분산 관리 장치 및 제어 방법
US10074293B2 (en) * 2014-01-17 2018-09-11 Nippon Telegraph And Telephone Corporation Secret calculation method, secret calculation system, sorting device, and program
US9141814B1 (en) * 2014-06-03 2015-09-22 Zettaset, Inc. Methods and computer systems with provisions for high availability of cryptographic keys
US20170148357A1 (en) * 2014-07-02 2017-05-25 Mitsubishi Electric Corporation Matrix generation apparatus, matrix generation method, and non-transitory computer-readable recording medium storing matrix generation program
US10091000B2 (en) * 2014-09-24 2018-10-02 Intel Corporation Techniques for distributing secret shares
US10097522B2 (en) * 2015-05-21 2018-10-09 Nili Philipp Encrypted query-based access to data
JP6034927B1 (ja) * 2015-07-27 2016-11-30 日本電信電話株式会社 秘密計算システム、秘密計算装置、およびプログラム
JP6799012B2 (ja) * 2016-01-18 2020-12-09 日本電信電話株式会社 秘匿決定木計算システム、装置、方法及びプログラム
US10158651B1 (en) * 2016-04-20 2018-12-18 Wells Fargo Bank, N.A. Verifying secure transactions through distributed nodes
US11456862B2 (en) * 2017-07-05 2022-09-27 Nippon Telegraph And Telephone Corporation Secure computation system, secure computation apparatus, secure computation method, and recording medium
CN108712261B (zh) * 2018-05-10 2021-02-26 杭州智块网络科技有限公司 一种基于区块链的密钥生成方法、装置及介质
JP7087965B2 (ja) * 2018-11-29 2022-06-21 日本電信電話株式会社 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
CN111049644B (zh) * 2019-10-22 2021-03-23 贵州财经大学 一种基于混淆激励机制的理性公平秘密信息共享方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020025630A (ko) * 1999-09-29 2002-04-04 가나이 쓰토무 비밀 정보의 처리 장치, 프로그램 또는 시스템
KR20050052944A (ko) * 2003-12-01 2005-06-07 한국전자통신연구원 합성수 차원을 가지는 유한체에서 정의된 타원곡선의상수배 연산 방법 및 그 프로그램을 기록한 컴퓨터로 읽을수 있는 기록매체

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485474A (en) * 1988-02-25 1996-01-16 The President And Fellows Of Harvard College Scheme for information dispersal and reconstruction
JP3604737B2 (ja) * 1994-07-29 2004-12-22 キヤノン株式会社 複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム
EP0695056B1 (en) * 1994-07-29 2005-05-11 Canon Kabushiki Kaisha A method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatuses and a communication system that employs such a method
US6012159A (en) * 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
JPH10198272A (ja) * 1996-12-27 1998-07-31 Canon Inc 階層を有する鍵管理方法及び暗号システム、分散デジタル署名システム
US7359507B2 (en) * 2000-03-10 2008-04-15 Rsa Security Inc. Server-assisted regeneration of a strong secret from a weak secret
JP4292835B2 (ja) * 2003-03-13 2009-07-08 沖電気工業株式会社 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
US7945784B1 (en) * 2005-08-19 2011-05-17 Adobe Systems Incorporated Method and system to perform secret sharing
JP2008098894A (ja) 2006-10-11 2008-04-24 Kddi Corp 情報管理システム、情報管理方法、情報管理プログラム
JP4334582B2 (ja) * 2007-06-26 2009-09-30 株式会社東芝 秘密分散装置、方法及びプログラム
US8422681B2 (en) * 2008-03-06 2013-04-16 International Business Machines Corporation Non-interactive hierarchical identity-based key-agreement
JP2010118968A (ja) * 2008-11-13 2010-05-27 Hiroshima Ichi 秘密情報分散装置及び秘密情報復元装置
WO2010123114A1 (ja) * 2009-04-24 2010-10-28 日本電信電話株式会社 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020025630A (ko) * 1999-09-29 2002-04-04 가나이 쓰토무 비밀 정보의 처리 장치, 프로그램 또는 시스템
KR20050052944A (ko) * 2003-12-01 2005-06-07 한국전자통신연구원 합성수 차원을 가지는 유한체에서 정의된 타원곡선의상수배 연산 방법 및 그 프로그램을 기록한 컴퓨터로 읽을수 있는 기록매체

Also Published As

Publication number Publication date
KR20130036044A (ko) 2013-04-09
US8964988B2 (en) 2015-02-24
EP2562736A4 (en) 2015-03-11
JP5379914B2 (ja) 2013-12-25
CN103003857B (zh) 2015-03-11
EP2562736B1 (en) 2016-06-29
EP2562736A1 (en) 2013-02-27
JPWO2012011565A1 (ja) 2013-09-09
CN103003857A (zh) 2013-03-27
US20130114815A1 (en) 2013-05-09
WO2012011565A1 (ja) 2012-01-26

Similar Documents

Publication Publication Date Title
KR101456579B1 (ko) 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체
KR101478766B1 (ko) 암호화 장치, 복호 장치, 암호화 방법, 복호 방법, 프로그램, 및 기록 매체
KR101246241B1 (ko) 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체
KR101362443B1 (ko) 함수 암호 응용 시스템, 정보 출력 장치, 정보 처리 장치, 암호 프로토콜 실행 방법, 정보 출력 방법, 정보 처리 방법, 프로그램, 및 기록 매체
JP5562475B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム
JP5612494B2 (ja) 関数暗号を用いた時限暗号システム、時限暗号方法、装置、プログラム

Legal Events

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