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

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

Info

Publication number
KR101344353B1
KR101344353B1 KR1020117023961A KR20117023961A KR101344353B1 KR 101344353 B1 KR101344353 B1 KR 101344353B1 KR 1020117023961 A KR1020117023961 A KR 1020117023961A KR 20117023961 A KR20117023961 A KR 20117023961A KR 101344353 B1 KR101344353 B1 KR 101344353B1
Authority
KR
South Korea
Prior art keywords
secret
information
value
dispersion
distributed
Prior art date
Application number
KR1020117023961A
Other languages
English (en)
Other versions
KR20120034156A (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 KR20120034156A publication Critical patent/KR20120034156A/ko
Application granted granted Critical
Publication of KR101344353B1 publication Critical patent/KR101344353B1/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/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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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)

Abstract

안전한 비밀 분산 방식을 실현한다. 부분집합 SUB(α)마다 독립적으로 비밀 정보를 비밀 분산하여 쉐어 정보 SH(α, h(α))를 생성하고, 분산 관리 장치 PA(α, h(α))에 있어서, 부분집합 SUB(α)마다 공유되는 공유값 σ(α)을 포함하는 공통 정보와, 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 취득 장치에 있어서, 동일한 부분집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(α, h(α))을 사용하고, 부분집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성한다.

Description

비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 그들의 처리 방법, 비밀 분산 방법, 및 프로그램을 기록한 기록 매체{SECRET SHARING SYSTEM, SHARING APPARATUS, SHARE MANAGEMENT APPARATUS, ACQUISITION APPARATUS, PROCESSING METHODS THEREOF, SECRET SHARING METHOD, AND RECORDING MEDIUM STORING PROGRAM}
본 발명은 비밀 분산 기술에 관한 것이다.
비밀 정보를 보관하는 경우, 비밀 정보의 분실이나 파괴의 리스크와 도난의 리스크가 있다. 분실이나 파괴의 리스크는 비밀 정보를 복수 보관해 둠으로써 저감할 수 있다. 그러나, 이 경우에는 도난의 리스크가 증가한다. 이들 리스크를 함께 해결하는 방법의 하나로서 비밀 분산법(SSS : Secret Sharing Scheme)이 있다(예를 들면, 비특허문헌 1, 2 참조).
비밀 분산법은 비밀 정보 MSK로부터 복수의 쉐어 정보 SH(1) ,...,SH(N)를 생성하고, 이들을 복수의 분산 관리 장치 PA(1) ,...,PA(N)에 분산하여 관리시키고, 이들 쉐어 정보 SH(1) ,...,SH(N) 중 소정수 이상의 쉐어 정보를 얻을 수 있었던 경우에만, 비밀 정보 MSK를 복원할 수 있는 방식이다. 이하에, 비밀 분산법의 대표적인 방식을 나타낸다.
〔(N, N) 임계값 비밀 분산법〕
(N, N) 임계값 비밀 분산법은 모든 쉐어 정보 SH(1) ,...,SH(N)가 주어지면 비밀 정보 MSK를 복원할 수 있지만, 임의의 N-1개의 쉐어 정보 SH(φ1) ,...,SH(φN-1)가 주어져도 비밀 정보 MSK의 정보는 전혀 얻을 수 없는 방식이다. 이하에, 그 일례를 나타낸다.
·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)
가 얻어진다.
〔(K, N) 임계값 비밀 분산법〕
(K, N) 임계값 비밀 분산법은 임의의 상이한 K개의 쉐어 정보 SH(φ1) ,...,SH(φK)가 주어지면 비밀 정보 MSK를 복원할 수 있지만, 임의의 K-1개의 쉐어 정보 SH(φ1) ,...,SH(φK-1)가 주어져도 비밀 정보 MSK의 정보는 전혀 얻을 수 없는 방식이다. 이하에 그 일례를 나타낸다.
·f(0)=MSK를 만족하는 K-1차의 다항식 f(x)=ξ01·x+ξ2·x2+...+ξK-1·xK-1을 랜덤으로 선택한다. 즉, ξ0=MSK로 하고, ξ1,...,ξK-1을 랜덤으로 선택한다. 쉐어 정보를 SHρ= (ρ, f(ρ))(ρ=1,...,N)로 한다.
·임의의 상이한 K개의 쉐어 정보 SH(φ1) ,...,SH(φK)((φ1,...,φK)⊂(1,...,N))가 얻어진 경우, 예를 들면, 라그랑주(Lagrange)의 보간공식을 사용하여, 이하와 같은 복원 처리에 의해 비밀 정보 MSK를 복원할 수 있다.
MSK=f(0)=λ1·f(φ1)+...+λK·f(φK)…(3)
[수 1]
Figure 112011079635185-pct00001
는 선두부터 ρ번째의 피연산자 〔분모의 요소(φρρ), 분자의 요소(x-φρ)〕가 존재하지 않는 것을 의미한다. 즉, 식 (4)의 분모는,
ρ1)·...·(φρρ-1)·(φρρ+1)·...·(φρK)
이며, 식 (4)의 분자는
(x-φ1)·...·(x-φρ-1)·(x-φρ+1)·...·(x-φK)
이다. 이들의 관계는 체상에서도 성립한다.
또, 식 (3)의 연산은 선형이다. 그 때문에, 각 쉐어 정보 SH(φ1) ,...,SH(φK)와 값 σ을 피연산자로 하고, 쉐어 정보마다 동일한 선형연산 CALC을 행한 결과를 각 쉐어 정보 SH'(φ1) ,...,SH'(φK)로 하여 복원된 값은, 비밀 정보 MSK와 값 σ을 피연산자로 하여 선형연산 CALC을 행한 결과와 동일하게 된다. 한편, 각 쉐어 정보 SH(φ1) ,...,SH(φK)와, 서로 독립적인 값 σ(φ1) ,...,σ(φK)을 피연산자로 하고, 쉐어 정보마다 동일한 선형연산 CALC을 행한 결과를 각 쉐어 정보 SH'(φ1) ,...,SH'(φK)로 하여 복원 처리가 실행된 경우에는, 통상적으로 비밀 정보 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와 임의의 값 σ을 피연산자에 포함하는 연산의 결과와 동일한 생성 정보 SK를 얻을 수 있다.
그러나, 이러한 방식을 실현하는 것은 용이하지 않다. 즉, 각 분산 관리 장치 PA(1) ,...,PA(N)가 각각 서로 독립적인 값 σ(1) ,...,σ(N)을 사용하여 연산을 실행한 것에서는, 취득 장치는 각 분산 관리 장치의 연산 결과를 쉐어 정보로 한 복원 처리에 의해 생성 정보 SK를 생성할 수 없다. 한편, 값 σ은 생성 정보 SK를 추측하기 위한 정보가 될 수 있기 때문에, 모든 분산 관리 장치 PA(1) ,...,PA(N)가 값 σ 그 자체를 공유하는 것은 안전성의 관점에서 바람직하지 못하다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 상기 조건 1 내지 3을 만족하는 방식을 안전하게 실현하는 것을 목적으로 한다.
본 발명에서는, 우선, 분산 장치에 있어서, Σα=1 Lh(α)개의 분산 관리 장치 PA(α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)로 이루어지는 집합에 속하는 H(α)개의 분산 관리 장치 PA(α,1) ,...,PA(α, H(α))로 이루어지는 부분집합 SUB(α)마다 독립적으로 비밀 정보를 비밀 분산하여 쉐어 정보 SH(α, h(α))를 생성하고, 당해 쉐어 정보 SH(α, h(α))를 출력한다. 다음에, 분산 관리 장치 PA(α, h(α))에 있어서, 부분집합 SUB(α)마다 공유되는 공유값 σ(α)을 포함하는 공통 정보와, 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 당해 분산 비밀값 DSH(α, h(α))을 출력한다. 또한, 동일한 상기 부분집합 SUB(α)에 속하는 분산 관리 장치 PA(α, h(α))의 분산 비밀값 생성부가 각각 사용하는 공통 정보는 서로 동일하며, 동일한 부분집합 SUB(α)에 속하는 분산 관리 장치 PA(α, h(α))의 분산 비밀값 생성부가 각각 행하는 공통 연산은 서로 동일하다.
다음에, 취득 장치에 있어서, 동일한 부분집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(α, h(α))을 사용하고, 부분집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 당해 부분집합 SUB(α)마다의 비밀 복원값 SUBSK(α)을 출력한다. 그리고, 취득 장치에 있어서, 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성하고, 당해 생성 정보 SK를 출력한다.
여기서, 본 발명에서는, 부분집합 SUB(α)마다 독립적으로 비밀 정보를 비밀 분산하고, 부분집합 SUB(α)마다 공유되는 공유값 σ(α)을 포함하는 공통 정보를 사용하고, 분산 비밀값 DSH(α, h(α))을 생성한다. 이 경우, 부분집합 SUB(α)마다의 복원 처리에 의해 얻어지는 비밀 복원값 SUBSK(α)은 비밀 정보와 공유값 σ(α)을 포함하는 공통 정보를 피연산자에 포함하는 연산의 결과와 동일하게 된다. 따라서, 복원후의 비밀 복원값 SUBSK(α)을 사용하여 생성되는 생성 정보 SK는 비밀 정보와 임의의 값 σ을 피연산자에 포함하는 연산의 결과와 동일하게 된다. 또, 본 발명에서는, 모든 분산 관리 장치 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는, 제2 실시형태의 분산 장치의 구성을 설명하기 위한 블록도이다.
도 16은, 제2 실시형태의 분산 관리 장치의 구성을 설명하기 위한 블록도이다.
도 17은, 제2 실시형태의 취득 장치의 구성을 설명하기 위한 블록도이다.
도 18은, 도 17의 합성부의 구성을 설명하기 위한 블록도이다.
도 19는, 제2 실시형태의 비밀 분산 처리의 전체를 설명하기 위한 도면이다.
도 20은, 제2 실시형태의 분산 장치의 처리를 예시하기 위한 도면이다.
도 21은, 제2 실시형태의 분산 관리 장치의 처리를 예시하기 위한 도면이다.
도 22는, 제2 실시형태의 취득 장치의 처리를 예시하기 위한 도면이다.
이하, 도면을 참조하여 본 발명의 실시형태를 설명한다.
〔제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 방정식
y2+a1·x·y+a3·y=x3+a2·x2+a4·x+a6
(단, a1, a2, a3, a4, a6∈Fq)를 만족하는 x, y∈Fq로 이루어지는 점(x, y)의 집합에 무한원점이라고 불리는 특별한 점 O를 부가한 것으로 정의된다. 타원곡선 E상의 임의의 2점에 대하여 타원가산이라고 불리는 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에 예시하는 바와 같이, 본 형태의 비밀 분산 시스템(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(α))를 생성하고, 당해 쉐어 정보 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(α))에 공통의 제공 정보 w를 포함한다. 또, 동일한 부분집합 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(α))를 생성한다.
도 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가 얻어지고 있는 경우에는, 스텝 S112의 처리는 생략되어도 된다.
다음에, 분산 처리부(114c-α)가 다항식 f(α, x)∈Fq와 인덱스 φ(h(α))∈Fq를 사용하고, 쉐어 정보
SH(α, h(α))= (φ(h(α)), f(α, φ(h(α)))·g∈G)…(5)
를 생성하여 출력한다(스텝 S112c/《스텝 S112의 상세》의 설명끝).
다음에, 제어부(113)는 일시 기억부(111)에 격납된 α가 L인지 여부를 판정한다(스텝 S113). 여기서, α=L이 아니라고 판정된 경우, 제어부(113)는 α+1을 새로운 α로 하고, 그 설정 내용을 일시 기억부(111)에 격납하고(스텝 S114), 새로운 α에 의해 스텝 S112의 처리를 실행시킨다. 한편, 스텝 S113에서 α=L이라고 판정된 경우, 각 비밀 분산부(114-α)로부터 출력된 각 쉐어 정보 SH(α, h(α))가 송신부(115)에 보내진다. 송신부(115)는 각 쉐어 정보 SH(α, h(α))를 각각 네트워크(150) 경유로 분산 관리 장치 〔PA(α, h(α))〕(120-α-h(α))에 송신한다(스텝 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)로부터 읽어낸 제공 정보 w가 송신부(135)로부터 네트워크(150) 경유로 각 분산 관리 장치 〔PA(α, h(α))〕(120-α-h(α))에 송신된다. 이 제공 정보 w는 모든 분산 관리 장치 PA(α, h(α))(120-α-h(α))에 공통이다. 제공 정보 w는 분산 관리 장치 〔PA(α, h(α))〕(120-α-h(α))(도 3A)의 수신부(126-α-h(α))에서 수신되어, 기억부(122-α-h(α))에 격납된다(스텝 S123).
다음에, 분산 비밀값 생성부(124-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(α, h(α))와 공유값 σ(α)과 제공 정보 w를 읽어들인다. 분산 비밀값 생성부(124-α-h(α))는 공유값 σ(α)과 제공 정보 w를 포함하는 공통 정보와, 쉐어 정보 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(α))에, 공유값 σ(α)과 제공 정보 w와 쉐어 정보 SH(α, h(α))=(φ(h(α)), f(α, φ(h(α)))·g)의 f(α, φ(h(α)))·g가 입력된다. 선형 연산부(124a-α-h(α))는
dsh(α, φ(h(α)))=σ(α)·w·f(α, φ(h(α)))·g∈G…(6)
의 연산을 행하고, 그 연산 결과 dsh(α, φ(h(α)))를 출력한다(스텝 S124a).
출력된 연산 결과 dsh(α, φ(h(α)))는 분산 비밀값 합성부(124b-α-h(α))에 입력된다. 분산 비밀값 합성부(124b-α-h(α))에는 또한 쉐어 정보 SH(α, h(α))=(φ(h(α)), f(α, φ(h(α)))·g)의 인덱스 φ(h(α))가 입력되고, 분산 비밀값 합성부(124b-α-h(α))는,
DSH(α, h(α))=(φ(h(α)), dsh(α, φ(h(α))))…(7)
의 연산에 의해 분산 비밀값 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(α))을 사용하고, 부분집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 당해 부분집합 SUB(α)마다의 비밀 복원값 SUBSK(α)을 출력한다(스텝 S134).
《스텝 S134의 상세》
본 형태의 분산 비밀값 DSH(α, h(α))은 식 (7)에 나타내는 것이다. 또, 복원부(134-α)(도 6)에는 α마다 R(α)개씩의 상이한 분산 비밀값 DSH(α, h(α))이 입력된다. 이하에서는, 복원부(134-α)에 입력되는 각 α에 대응하는 분산 비밀값 DSH(α, h(α))을 이하와 같이 표현한다.
DSH(α, φ1(α))=(φ1(α), dsh(α, φ1(α)))
···… (8)
DSH(α, φR(α)(α))=(φR(α)(α), dsh(α, φR(α)(α))
단,
1(α) ,...,φR(α)(α))⊂(φ(1) ,...,φ(H(α)))…(9)
(dsh1(α) ,...,dshR(α)(α))⊂(dsh(α, φ(1)) ,...,dsh(α, φ(H(α))))
… (10)
이다.
우선, 도 10B에 예시하는 바와 같이, 식 (8)에 나타내는 DSH(α, φ1(α)) ,...,DSH(α, φR(α)(α))의 각 인덱스 φ1(α) ,...,φR(α)(α)가 계수 산출부(134a-α)에 입력되고, 계수 산출부(134a-α)는 각 ρ=1,...,R(α)에 대해서, 각각,
[수 2]
Figure 112011079635185-pct00002
의 연산을 행하고, 각 계수 λρ(x)(ρ=1,...,R (α))를 생성하여 출력한다(스텝 S134a).
다음에, 생성된 각 계수 λρ(x)와, 식 (8)에 나타내는 DSH(α, φ1(α)) ,...,DSH(α, φR(α)(α))의 dsh1(α) ,...,dshR(α)(α)가 다항식 연산부(134b-α)에 입력된다. 다항식 연산부(134b-α)는,
SUBSK(α)=λ1(ω)·dsh1(α)+...+λR(α)(ω)·dshR(α)(α)∈G…(12)
의 연산에 의해, 부분집합 SUB(α)의 비밀 복원값 SUBSK(α)을 생성하여 출력한다(스텝 S134b/《스텝 S134의 상세》의 설명끝).
다음에, 제어부(133)는 일시 기억부(131)에 격납된 α가 L인지 여부를 판정한다(스텝 S135). 여기서, α=L이 아니라고 판정된 경우, 제어부(133)는 α+1을 새로운 α로 하고, 그 설정 내용을 일시 기억부(131)에 격납하고(스텝 S136), 새로운 α에 의해 스텝 S134의 처리를 실행시킨다.
한편, 스텝 S135에서 α=L이라고 판정된 경우, 각 복원부(134-α)로부터 출력된 각 비밀 복원값 SUBSK(α)이 합성부(137)에 보내진다. 합성부(137)는 각 부분집합 SUB(α)에 대해서 각각 생성된 각 비밀 복원값 SUBSK(α)을 사용하여 생성 정보
SK=FNC2(SUBSK(1) ,...,SUBSK(L))…(13)
을 생성하고, 당해 생성 정보 SK를 출력한다(스텝 S141).
《스텝 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(α))가 공유값 σ(α)과 제공 정보 w를 포함하는 공통 정보와 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 취득 장치(13)가 동일한 부분집합 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에서는, 도 5A의 비밀 분산부(114-α)가 비밀 분산부(214-α)로 치환되고, 도 5B의 분산 비밀값 생성부(124-α-h(α))가 분산 비밀값 생성부(224-α-h(α))로 치환된다. 그 밖의 구성은, 제1 실시형태와 마찬가지이다.
《제1 실시형태의 변형예 1에 있어서의 스텝 S112의 변형》
제1 실시형태의 변형예 1에서는, 도 8B에 나타낸 스텝 S112의 처리가 이하와 같이 변형된다.
우선, 도 8B에 나타낸 스텝 S112a 및 S112b가 실행된다. 다음에, 스텝 S112c 대신에 비밀 분산부(214-α)의 분산 처리부(214c-α)(도 11A)가 다항식 f(α, x)∈Fq와 인덱스 φ(h(α))∈Fq를 사용하고, 쉐어 정보
SH(α, h(α))=(φ(h(α)), f(α, φ(h(α))))…(16)
을 생성하여 출력한다(《제1 실시형태의 변형예 1에 있어서의 스텝 S112의 변형》의 설명끝).
《제1 실시형태의 변형예 1에 있어서의 스텝 S124의 변형》
제1 실시형태의 변형예 1에서는, 도 9B에 나타낸 스텝 S124의 처리가 이하와 같이 변형된다.
우선, 스텝 S124a 대신에 선형 연산부(224a-α-h(α))(도 11B)에, 공유값 σ(α)과 제공 정보 w와 쉐어 정보 SH(α, h(α))=(φ(h(α)), f(α, φ(h(α))))의 f(α, φ(h(α)))가 입력되고, 선형 연산부(224a-α-h(α))는,
dsh(α, φ(h(α)))=σ(α)·w·f(α, φ(h(α)))·g∈G…(17)
의 연산을 행하고, 그 연산 결과 dsh(α, φ(h(α)))∈G를 출력한다. 연산 결과 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에서는, 도 5B의 분산 비밀값 생성부(124-α-h(α))가 분산 비밀값 생성부(324-α-h(α))로 치환되고, 도 6의 복원부(134-α)가 복원부(334-α)로 치환된다. 또, 제1 실시형태의 변형예 1과 마찬가지로 도 5A의 분산 처리부(114c-α)가 분산 처리부(214c-α)로 치환된다. 그 밖의 구성은, 제1 실시형태와 마찬가지이다.
《제1 실시형태의 변형예 2에 있어서의 스텝 S112의 변형》
제1 실시형태의 변형예 1에 있어서의 스텝 S112의 변형과 동일하다.
《제1 실시형태의 변형예 2에 있어서의 스텝 S124의 변형》
제1 실시형태의 변형예 2에서는, 도 9B에 나타낸 스텝 S124의 처리가 이하와 같이 변형된다.
우선, 스텝 S124a 대신에, 선형 연산부(324a-α-h(α))(도 12A)에, 공유값 σ(α)과 제공 정보 w와 쉐어 정보 SH(α, h(α))=(φ(h(α)), f(α, φ(h(α))))의 f(α, φ(h(α)))가 입력되고, 선형 연산부(324a-α-h(α))가,
dsh(α, φ(h(α)))=σ(α)·w·f(α, φ(h(α)))∈Fq…(18)
의 연산을 행하고, 그 연산 결과 dsh(α, φ(h(α)))∈Fq를 출력한다. 연산 결과 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-α)가,
SUBSK(α)={λ1(ω)·dsh1(α)+...+λR(α)(ω)·dshR(α)(α)}·g∈G…(19)
의 연산에 의해, 부분집합 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에서는, 도 5A의 비밀 분산부(114-α)가 비밀 분산부(414-α)로 치환되고, 도 5B의 분산 비밀값 생성부(124-α-h(α))가 분산 비밀값 생성부(424-α-h(α))로 치환되며, 도 6의 복원부(134-α)가 복원부(434-α)로 치환된다. 그 밖의 구성은, 제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(α))=θ·g-{SH(α,1)+...+SH(α, H(α)-1)}∈G…(21)
의 연산에 의해, SH(α, h(α))를 생성하여 출력한다.
그리고, 비밀 분산부(414-α)는,
SH(α,1) ,...,SH(α, H(α))∈G
를 부분집합 SUB(α)의 쉐어 정보로서 출력한다. 이들 쉐어 정보는,
SH(α,1)+SH(α,2)+...+SH(α, H(α))=θ·g∈G…(22)
를 만족한다(《제1 실시형태의 변형예 3에 있어서의 스텝 S112의 변형》의 설명끝).
《제1 실시형태의 변형예 3에 있어서의 스텝 S124의 변형》
제1 실시형태의 변형예 3에서는, 도 9B에 나타낸 스텝 S124의 처리가 이하와 같이 변형된다.
우선, 분산 비밀값 생성부(424-α-h(α))(도 13B)에, 공유값 σ(α)과 제공 정보 w와 쉐어 정보 SH(α,1) ,...,SH(α, H(α))가 입력된다. 분산 비밀값 생성부(424-α-h(α))는,
DSH(α, h(α))=σ(α)·w·SH(α, h(α))∈G…(23)
의 연산에 의해, 분산 비밀값 DSH(α, h(α))을 생성하여 출력한다(《제1 실시형태의 변형예 3에 있어서의 스텝 S124의 변형》의 설명끝).
《제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-α)는,
SUBSK(α)=DSH(α,1)+...+DSH(α, H(α))∈G…(24)
의 연산에 의해, 부분집합 SUB(α)의 비밀 복원값 SUBSK(α)을 생성하여 출력한다(《제1 실시형태의 변형예 3에 있어서의 스텝 S134의 변형》의 설명끝). 그 밖의 처리는, 제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에서는, 도 5A의 비밀 분산부(114-α)가 비밀 분산부(514-α)로 치환되고, 도 5B의 분산 비밀값 생성부(124-α-h(α))가 분산 비밀값 생성부(524-α-h(α))로 치환되며, 도 6의 복원부(134-α)가 복원부(534-α)로 치환된다. 그 밖의 구성은, 제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(α,1)+...+SH(α, H(α)-1)}∈Fq…(26)
의 연산에 의해, SH(α, h(α))를 생성하여 출력한다.
그리고, 비밀 분산부(514-α)는,
SH(α,1) ,...,SH(α, H(α))∈Fq…(27)
을 부분집합 SUB(α)의 쉐어 정보로서 출력한다. 이들 쉐어 정보는,
SH(α,1)+SH(α,2)+...+SH(α, H(α))=θ∈Fq…(28)
을 만족한다(《제1 실시형태의 변형예 4에 있어서의 스텝 S112의 변형》의 설명끝).
《제1 실시형태의 변형예 4에 있어서의 스텝 S124의 변형》
제1 실시형태의 변형예 4에서는, 도 9B에 나타낸 스텝 S124의 처리가 이하와 같이 변형된다.
우선, 분산 비밀값 생성부(524-α-h(α))(도 14B)에, 공유값 σ(α)과 제공 정보 w와 쉐어 정보 SH(α,1) ,...,SH(α, H(α))가 입력된다. 분산 비밀값 생성부(524-α-h(α))는,
DSH(α, h(α))=σ(α)·w·SH(α, h(α))∈Fq…(29)
의 연산에 의해, 분산 비밀값 DSH(α, h(α))을 생성하여 출력한다(《제1 실시형태의 변형예 4에 있어서의 스텝 S124의 변형》의 설명끝).
《제1 실시형태의 변형예 4에 있어서의 스텝 S132의 변형》
제1 실시형태의 변형예 3과 동일하다.
《제1 실시형태의 변형예 4에 있어서의 스텝 S134의 변형》
제1 실시형태의 변형예 4에서는, 도 10B에 나타낸 스텝 S134의 처리가 이하와 같이 변형된다.
이 변형예 4의 분산 비밀값 DSH(α, h(α))은 식 (29)에 나타내는 것이다. 또, 복원부(534-α)(도 14C)에는 α에 대응하는 모든 분산 비밀값 DSH(α, h(α)) (h(α)=1,...,H(α))이 입력된다. 그리고, 복원부(534-α)는,
SUBSK(α)={DSH(α,1)+...+DSH(α, H(α))}·g∈G…(30)
의 연산에 의해, 부분집합 SUB(α)의 비밀 복원값 SUBSK(α)을 생성하여 출력한다(《제1 실시형태의 변형예 4에 있어서의 스텝 S134의 변형》의 설명끝). 그 밖의 처리는, 제1 실시형태와 마찬가지이다.
〔제1 실시형태의 그 밖의 변형예〕
그 밖에 본 발명의 취지를 일탈하지 않는 범위에서 적당히 변경이 가능하다. 예를 들면, 제1 실시형태의 변형예 4의 식 (29) 대신에
DSH(α, h(α))=σ(α)·w·SH(α, h(α))∈Fq…(31)
의 연산을 행하고, 식 (30) 대신에 식 (24)의 연산을 행해도 된다. 또, 비밀 복원값 SUBSK(α)이 유한체 Fq의 원소가 되는 구성이어도 된다.
또, 본 형태에서는, 각 부분집합 SUB(α)에 대하여 각각 동일한 비밀 분산법을 사용하여 비밀 분산을 행했지만, 서로 상이한 각 부분집합 SUB에 대하여 서로 상이한 비밀 분산법을 사용해도 된다.
또, 본 형태에서는, 각 부분집합 SUB(α)마다 공유값 생성 장치(140-α)를 마련했지만, 각 부분집합 SUB(α)의 어느 하나의 분산 관리 장치가 공유값 생성 장치의 기능을 가지고 있어도 된다. 이 경우에는, 공유값 생성 장치(140-α)는 불필요하게 된다.
또, 본 형태에서는, 공유값 σ(α)과 제공 정보 w를 포함하는 공통 정보와, 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산 FNC1을 행하여 분산 비밀값 DSH(α, h(α))을 생성하는 것으로 했다. 그러나, 제공 정보 w를 사용하지 않고, 공유값 σ(α)을 공통 정보로 하여 분산 비밀값 DSH(α, h(α))을 생성해도 된다. 또, 공통 정보가 공유값 σ(α)과 제공 정보 w와 그 밖의 정보를 포함하는 것으로 해도 된다.
또, 분산 비밀값 DSH(α, h(α))을 구하기 위한 공통 연산은 부분집합 SUB(α)마다 통일할 필요는 있지만, 반드시 서로 상이한 부분집합 SUB(α) 사이에서 동일한 공통 연산을 행할 필요는 없다.
〔제2 실시형태〕
다음에, 본 발명의 제2 실시형태를 설명한다. 본 형태는 제1 실시형태를 내적 술어 암호의 키 생성에 응용한 형태이다.
〔정의〕
우선, 본 형태에서 사용하는 용어나 기호를 정의한다.
행렬 : 「행렬」은 연산이 정의된 집합의 원소를 직사각형으로 늘어놓은 것을 나타낸다. 환의 원소를 요소로 하는 것 뿐만아니라, 군의 원소를 요소로 하는 것도 「행렬」이라고 표현한다.
(·)T : (·)T는 ·의 전치 행렬을 나타낸다.
(·)-1 : (·)-1은 ·의 역행렬을 나타낸다.
∧ : ∧은 논리적을 나타낸다.
∨ : ∨는 논리합을 나타낸다.
Z : Z는 정수집합을 나타낸다.
k : k는 시큐리티 파라미터(k∈Z, k>0)를 나타낸다.
Fq : Fq는 위수 q의 유한체를 나타낸다. 위수 q는 1 이상의 정수이며, 예를 들면, 소수나 소수의 멱승값을 위수 q로 한다. 즉, 유한체 Fq의 예는 소체나 그것을 기초체로 한 확대체이다.
0F : 0F는 유한체 Fq의 가법단위원을 나타낸다.
1F : 1F는 유한체 Fq의 승법단위원을 나타낸다.
δ(i, j) : δ(i, j)는 크로네커의 델타 함수를 나타낸다. i=j인 경우에 δ(i, j)=1F를 만족하고, i≠j인 경우에 δ(i, j)=0F를 만족한다.
E : E는 유한체 Fq상에서 정의된 타원곡선을 나타낸다.
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에 대한 χ·Ω∈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로 정의된 연산을 행하는 것을 의미한다.
n : n은 1 이상의 정수를 나타낸다.
ζ : ζ는 1 이상의 정수를 나타낸다. ζ의 일례는 2 또는 3이다.
G1 n+ζ : G1 n+ζ는 n+ζ개의 순회군 G1의 직적을 나타낸다.
G2 n+ζ : G2 n+ζ는 n+ζ개의 순회군 G2의 직적을 나타낸다.
g1, g2,gT : g1, g2, gT는 순회군 G, G1, G2, GT의 생성원을 나타낸다.
V : V는 n+ζ개의 순회군 G1의 직적으로 이루어지는 n+ζ차원의 벡터공간을 나타낸다.
V* : V*는 n+ζ개의 순회군 G2의 직적으로 이루어지는 n+ζ차원의 벡터공간을 나타낸다.
e : e는 직적 G1 n+ζ과 직적 G2 n+ζ의 직적 G1 n+ζ×G2 n+ζ를 순회군 GT에 그리는 비퇴화한 쌍선형 사상(bilinear map)을 계산하기 위한 함수(「쌍선형 함수」라고 함)을 나타낸다. 쌍선형 함수 e는 순회군 G1의 n+ζ개의 원소 γβ(β=1,...,n+ζ)와 순회군 G2의 n+ζ개의 원소 γβ *(β=1,...,n+ζ)를 입력하는 것으로 하고, 순회군 GT의 1개의 원소를 출력한다.
e : G1 n+ζ×G2 n+ζ→GT…(32)
쌍선형 함수 e는 이하의 성질을 만족한다.
[쌍선형성] 모든 Γ1∈G1 n+ζ, Γ2∈G2 n+ζ 및 ν, κ∈Fq에 대해서 이하의 관계를 만족한다.
e(ν·Γ1,κ·Γ2)=e(Γ12)ν·κ…(33)
[비퇴화성] 모든 Γ1∈G1 n+ζ, Γ2∈G2 n+ζ를 순회군 GT의 단위원에 그리는 함수가 아니다.
[계산 가능성] 모든
Γ1∈G1 n+ζ, Γ2∈G2 n+ζ…(34)
에 대해서 e(Γ12)를 효율적으로 계산하는 알고리즘이 존재한다.
본 형태에서는, 순회군 G1과 순회군 G2의 직적 G1×G2를 순회군 GT에 그리는 비퇴화한 쌍선형 사상을 계산하기 위한 함수
Pair:G1×G2→GT…(35)
를 사용하여 쌍선형 함수 e를 구성한다. 본 형태의 쌍선형 함수 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개의 원소를 출력하는 함수이며, 이하의 성질을 만족한다.
[쌍선형성] 모든 Ω1∈G12∈G2 및 ν, κ∈Fq에 대해서 이하의 관계를 만족한다.
Pair(ν·Ω1,κ·Ω2)=Pair(Ω12)ν·κ…(37)
[비퇴화성] 모든
Ω1∈G12∈G2…(38)
을 순회군 GT의 단위원에 그리는 함수가 아니다.
[계산 가능성] 모든 Ω1∈G12∈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개의 요소를 순회군 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+ζ) : 순회군 G2의 n+ζ개의 원소를 요소로 하는 n+ζ차원의 기저 벡터를 나타낸다. 기저 벡터 ai *의 일례는 κ2·g2∈G2를 i차원째의 요소로 하고, 나머지 n개의 요소를 순회군 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 τ
를 만족한다. 한편, 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 : 기저 벡터 ai(i=1,...,n+ζ)를 요소로 하는 n+ζ행n+ζ열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai(i=1,...,n+ζ)가 식 (39)에 의해 표현되는 경우, 행렬 A는,
[수 3]
Figure 112011079635185-pct00003
이 된다.
A* : 기저 벡터 ai *(i=1,...,n+ζ)를 요소로 하는 n+ζ행n+ζ열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai *(i=1,...,n+ζ)가 식 (40)에 의해 표현되는 경우, 행렬 A*는,
[수 4]
Figure 112011079635185-pct00004
가 된다.
X : 유한체 Fq의 원소를 요소로 하는 n+ζ행n+ζ열의 행렬을 나타낸다. 기저 벡터 ai의 좌표 변환에 사용된다. 행렬 X의 i행j열(i=1,...,n+ζ, j=1,...,n+ζ)의 요소를 χi,j∈Fq로 하면, 행렬 X는,
[수 5]
Figure 112011079635185-pct00005
가 된다. 또한, 행렬 X의 각 요소 χi, j를 변환 계수라고 한다.
X* : X*는 행렬 X의 역행렬의 전치행렬 X*=(X-1)T를 나타낸다. 기저 벡터 ai *의 좌표 변환에 사용된다. 행렬 X*의 i행j열의 요소를 χi, j *∈Fq로 하면, 행렬 X*는,
[수 6]
Figure 112011079635185-pct00006
이 된다. 또한, 행렬 X*의 각 요소 χi, j *를 변환 계수라고 한다.
이 경우, n+ζ행n+ζ열의 단위행렬을 I로 하면 X·(X*)T=I를 만족한다. 즉, 단위행렬
[수 7]
Figure 112011079635185-pct00007
에 대하여,
[수 8]
Figure 112011079635185-pct00008
을 만족한다. 여기서, 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+ζ차원의 기저 벡터를 나타낸다. 행렬 X를 사용하여 기저 벡터 ai(i=1,...,n+ζ)를 좌표 변환함으로써 얻어진다. 구체적으로는, 기저 벡터 bi는,
bij=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+ζ차원의 기저 벡터를 나타낸다. 행렬 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 112011079635185-pct00009
를 만족한다. 특히, τ=κ1·κ2=1F인 경우(예를 들면, κ12=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 112011079635185-pct00010
이 된다.
B* : B*는 기저 벡터 bi *(i=1,...,n+ζ)를 요소로 하는 n+ζ행n+ζ열의 행렬을 나타낸다. B*=X*·A*를 만족한다. 예를 들면, 기저 벡터 bi *(i=1,...,n+ζ)가 식 (55)에 의해 표현되는 경우, 행렬 B*는,
[수 11]
Figure 112011079635185-pct00011
가 된다.
w : w는 유한체 Fq의 원소를 요소로 하는 n차원 벡터를 나타낸다.
w=(w1,...,wn)∈Fq n…(60)
wμ : wμ는 n차원 벡터의 μ(μ=1,...,n)번째의 요소를 나타낸다.
v : v는 유한체 Fq의 원소를 요소로 하는 n차원 벡터를 나타낸다.
v=(v1,...,vn)∈Fq n…(61)
vμ : vμ는 n차원 벡터의 μ(μ=1,...,n)번째의 요소를 나타낸다.
〔내적 술어 암호〕
다음에, 내적 술어 암호의 기본적인 구성에 대해서 설명한다.
<술어 암호>
술어 암호(「함수 암호」라고 하는 경우도 있음)는 「속성 정보」라고 불리는 정보와 「술어 정보」라고 불리는 정보의 조합이 소정의 논리식을 「참」으로 하는 경우에 암호문을 복호할 수 있는 방식이다. 「속성 정보」와 「술어 정보」의 일방이 암호문에 메워넣어지고, 타방이 키정보에 메워넣어진다. 종래의 술어 암호의 구성은, 예를 들면, 참고문헌 9 「”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」 등에 개시되어 있다.
<내적 술어 암호>
내적 술어 암호는 속성 정보나 술어 정보로서 벡터를 사용하고, 그들의 내적이 0이 되는 경우에 암호문이 복호되는 술어 암호이다. 내적 술어 암호에서는, 내적이 0이 되는 것과 논리식이 「참」이 되는 것이 등가이다.
[논리식과 다항식의 관계]
내적 술어 암호에서는, 논리합이나 논리적으로 이루어지는 논리식을 다항식으로 표현한다.
우선, 「x가 η1이다」라는 명제 1과 「x가 η2이다」라는 명제 2의 논리합 (x=η1)∨(x=η2)을
(x-η1)·(x-η2)…(62)
라는 다항식으로 표현한다. 그러면, 각 진리값과 식 (62)의 함수값의 관계는 이하와 같게 된다.
Figure 112011079635185-pct00012
[표 1]로부터 알 수 있는 바와 같이, 논리합 (x=η1)∨(x=η2)이 참인 경우, 식 (62)의 함수값은 0이 되고, 논리합 (x=η1)∨(x=η2)이 거짓인 경우, 식 (62)의 함수값은 0 이외의 값이 된다. 즉, 논리합 (x=η1)∨(x=η2)이 참인 것과, 식 (62)의 함수값이 0이 되는 것은 등가이다. 따라서, 논리합은 식 (62)로 표현할 수 있다.
또, 「x가 η1이다」라는 명제 1과 「x가 η2이다」라는 명제 2의 논리적 (x=η1)∧(x=η2)을
ι1·(x-η1)+ι2·(x-η2)…(63)
이라는 다항식으로 표현한다. 단, ι1 및 ι2는 난수이다. 그러면, 진리값과 식 (63)의 함수값은 이하의 관계가 된다.
Figure 112011079635185-pct00013
[표 2]로부터 알 수 있는 바와 같이, 논리적 (x=η1)∧(x=η2)이 참인 경우, 식 (63)의 함수값은 0이 되고, 논리적 (x=η1)∧(x=η2)이 거짓인 경우, 식 (63)의 함수값은 0 이외의 값이 된다. 즉, 논리적 (x=η1)∧(x=η2)이 참인 것과, 식 (63)의 함수값이 0이 되는 것은 등가이다. 따라서, 논리적은 식 (63)으로 표현할 수 있다.
이상과 같이, 식 (62)와 식 (63)을 사용함으로써 논리합이나 논리적으로 이루어지는 논리식을 다항식 f(x)로 표현할 수 있다. 예를 들면, 논리식 {(x=η1)∨(x=η2)∨(x=η3)}∧(x=η4)∧(x=η5)는 다항식
f(x)=ι1·{(x-η1)·(x-η2)·(x-η3)}+ι2·(x-η4)+ι3·(x-η5)…(64)
로 표현할 수 있다.
또한, 식 (62)에서는, 1개의 부정원 x를 사용하여 논리합을 표현했지만, 복수의 부정원을 사용하여 논리합을 표현하는 것도 가능하다. 예를 들면, 2개의 부정원 x0 및 x1을 사용하고, 「x0가 η0이다」라는 명제 1과 「x1이 η1이다」라는 명제 2의 논리합 (x00)∨(x11)을
(x00)·(x11)
이라는 다항식으로 표현하는 것도 가능하며, 3개 이상의 부정원을 사용하고, 논리합을 다항식으로 표현하는 것도 가능하다.
또, 식 (63)에서는, 1개의 부정원 x를 사용하여 논리적을 표현했지만, 복수의 부정원을 사용하여 논리적을 표현하는 것도 가능하다. 예를 들면, 또, 「x0가 η0이다」라는 명제 1과 「x1이 η1이다」라는 명제 2의 논리적 (x00)∧(x11)을
ι0·(x00)+ι1·(x11)
이라는 다항식으로 표현하는 것도 가능하며, 3개 이상의 부정원을 사용하고, 논리적을 다항식으로 표현하는 것도 가능하다.
논리합 및/또는 논리적을 포함하는 논리식을 H(H≥1)종류의 부정원 x0,...,xH-1을 사용하여 표현한 다항식을 f(x0,...,xH-1)로 표현한다. 또, 각 부정원 x0,...,xH-1에 대응하는 명제를 「xh가 ηh이다」로 한다. 단, ηh(h=0,...H-1)은 명제마다 정해지는 상수이다. 이 경우, 당해 논리식을 나타내는 다항식 f(x0,...,xH-1)는 부정원 xh와 상수 ηh의 차를 취하는 다항식에 의해 당해 부정원 xh가 당해 상수 ηh라는 명제를 표현하고, 명제를 각각 표현하는 다항식의 적에 의해 당해 명제의 논리합을 표현하고, 명제 또는 명제의 논리합을 각각 표현하는 다항식의 선형합에 의해 당해 명제 또는 명제의 논리합의 논리적을 표현하고, 그것에 의해 논리식을 표현한 다항식이 된다. 예를 들면, 5개의 부정원 x0,...,x4를 사용하고, 논리식 {(x00)∨(x11)∨(x22)}∧(x33)∧(x44)을 다항식으로 표현하면,
f(x0,...,x4)
0·{(x00)·(x11)·(x22)}+ι1·(x3-η3)+ι2·(x4-η4)
가 된다.
[다항식과 내적의 관계]
논리식을 나타내는 다항식 f(x0,...,xH-1)은 2개의 n차원 벡터의 내적으로 표현할 수 있다. 즉, 다항식 f(x0,...,xH-1)은 당해 다항식 f(x0,...,xH-1)의 각 항의 부정원 성분을 각 요소로 하는 벡터
v=(v1,...,vn)
와, 당해 다항식 f(x0,...,xH-1)의 각 항의 계수 성분을 각 요소로 하는 벡터
w=(w1,...,wn)
와의 내적
f(x0,...,xH-1)=w·v
와 동등하다. 즉, 논리식을 나타내는 다항식 f(x0,...,xH-1)이 0인지 여부와, 다항식 f(x0,...,xH-1)의 각 항의 부정원 성분을 각 요소로 하는 벡터 v와, 다항식 f(x0,...,xH-1)의 각 항의 계수 성분을 각 요소로 하는 벡터 w와의 내적이 0인지 여부는 등가이다.
f(x0,...,xH-1)=0←→ w·v=0
예를 들면, 1개의 부정원 x로 표현된 다항식 f(x)=θ0·x01·x+...+θn-1·xn-1은 2개의 n차원 벡터
w=(w1,...,wn)=(θ0,...,θn-1)…(65)
v=(v1,...,vn)=(x0,...,xn-1)…(66)
의 내적
f(x)=w·v…(67)
로 표현할 수 있다. 즉, 논리식을 나타내는 다항식 f(x)가 0인지 여부와, 식 (67)의 내적이 0인지 여부는 등가이다.
f(x)=0←→ w·v=0…(68)
또, 다항식 f(x0,...,xH-1)의 각 항의 부정원 성분을 각 요소로 하는 벡터를
w=(w1,...,wn)
로 하고, 다항식 f(x0,...,xH-1)의 각 항의 계수 성분을 각 요소로 하는 벡터
v=(v1,...,vn)
로 해도, 논리식을 나타내는 다항식 f(x0,...,xH-1)이 0인지 여부와, 벡터 w와 벡터 v와의 내적이 0인지 여부는 등가이다.
예를 들면, 식 (65) (66) 대신에
w=(w1,...,wn)=(x0,...,xn-1)…(69)
v=(v1,...,vn)=(θ1,...,θn-1)…(70)
으로 해도, 논리식을 나타내는 다항식 f(x)가 0인지 여부와, 식 (67)의 내적이 0인지 여부는 등가이다.
내적 술어 암호에서는, 벡터 v=(v0,...,vn-1) 및 w=(w0,...,wn-1)의 어느 일방을 속성 정보로 하고, 타방을 술어 정보로 하고, 속성 정보와 술어 정보의 일방이 암호문에 메워넣어지고, 타방이 키정보에 메워넣어진다. 예를 들면, n차원 벡터(θ0,...,θn-1)가 술어 정보가 되고, n차원 벡터(x0,...,xn-1)가 속성 정보가 되고, 속성 정보와 술어 정보의 일방이 암호문에 메워넣어지고, 타방이 키정보에 메워넣어진다. 또한, 이하에서는, 키정보에 메워넣어지는 n차원 벡터를 w=(w1,...,wn)로 하고, 암호문에 메워넣어지는 n차원 벡터를 v=(v1,...,vn)로 한다. 예를 들면,
술어 정보 : w=(w1,...,wn)=(θ0,...,θn-1)
속성 정보 : v=(v1,...,vn)=(x0,...,xn-1)
이거나,
술어 정보 : v=(v1,...,vn)=(θ0,...,θn-1)
속성 정보 : w=(w1,...,wn)=(x0,...,xn-1)
이다.
[내적 술어 암호의 기본 구성]
이하에서는, 내적 술어 암호를 사용하여 키 캡슐화 메커니즘 KEM(Key Encapsulation Mechanisms)을 구성하는 경우의 기본 구성을 예시한다. 이 구성은 Setup(1k), GenKey(MSK, w), Enc(PA, v), Dec(SKw, C2)를 포함한다.
《Setup(1k) : 셋업》
-입력 : 시큐리티 파라미터 k
-출력 : 마스터키 정보 MSK, 공개 파라미터 PK
Setup(1k)의 일례에서는, 우선, 시큐리티 파라미터 k를 n으로 하고, n+ζ차원의 기저 벡터 ai(i=1,...,n+ζ)를 요소로 하는 n+ζ행n+ζ열의 행렬 A와, 기저 벡터 ai *(i=1,...,n+ζ)를 요소로 하는 n+ζ행n+ζ열의 행렬 A*와, 좌표 변환을 위한 n+ζ행n+ζ열의 행렬 X, X*가 선택된다. 다음에, 식 (52)에 따라 좌표 변환된 n+ζ차원의 기저 벡터 bi(i=1,...,n+ζ)가 산출되고, 식 (54)에 따라 좌표 변환된 n+ζ차원의 기저 벡터 bi *(i=1,...,n+ζ)가 산출된다. 그리고, 기저 벡터 bi *(i=1,...,n+ζ)를 요소로 하는 n+ζ행n+ζ열의 행렬 B*가 마스터키 정보 MSK로서 출력되고, 벡터공간 V, V*, 기저 벡터 bi(i=1,...,n+ζ)를 요소로 하는 n+ζ행n+ζ열의 행렬 B, 시큐리티 파라미터 k, 유한체 Fq, 타원곡선 E, 순회군 G1, G2, GT, 생성원 g1, g2, gT, 쌍선형 함수 e 등이 공개 파라미터 PK로서 출력된다.
《GenKey(MSK, w) : 키정보 생성》
-입력 : 마스터키 정보 MSK, 벡터 w
-출력 : 벡터 w에 대응하는 키정보 D*
GenKey(MSK, w)의 일례에서는, 우선, 유한체 Fq로부터 원소 σ∈Fq가 선택된다. 그리고, 마스터키 정보 MSK인 행렬 B*를 사용하고, 벡터 w에 대응하는 키정보
D*=σ·(Σμ=1 nwμ·bμ *)+bn+1 *∈G2 n+1…(71)
이 생성되어 출력된다. 또한, 순회군 G2 상에서의 이산대수 문제의 해를 구하는 것이 곤란한 경우, 키정보 D*로부터 bμ *의 성분을 분리 추출하는 것은 곤란하다.
《Enc(PA, v) : 암호화》
-입력 : 공개 파라미터 PK, 벡터 v
-출력 : 암호문 C2, 공통키 K
Enc(PA, v)의 일례에서는, 우선, 공통키 K와 유한체 Fq의 원소인 난수 υ0가 생성된다. 그리고, 행렬 B 등의 공개 파라미터 PK와, 유한체 Fq의 원소 υ1,...,υζ와, 벡터 v와, 난수 υ0를 사용하고, 암호문
C20·(Σμ=1 nvμ·bμ)+Σμ=n+1 n+ζυμ-n·bμ∈G1 n+ζ…(72)
가 생성된다. 그리고, 암호문 C2와 공통키 K가 출력된다. 공통키 K의 일례는 K=gT τ·υ1∈GT이다. 여기서, 첨자의 υ1은 υ1을 의미한다. 또, 상기 서술한 바와 같이 τ의 일례는 τ=1F이다. 또한, 순회군 G1 상에서의 이산대수 문제의 해를 구하는 것이 곤란한 경우, 암호문 C2로부터 bμ의 성분을 분리 추출하는 것은 곤란하다.
《Dec(SKw, C2) : 복호·키공유》
-입력 : 벡터 w에 대응하는 키정보 D1 *, 암호문 C2
-출력 : 공통키 K
Dec(SKw, C2)의 일례에서는, 우선, 암호문 C2와 키정보 D1 *가 식 (32)의 쌍선형 함수 e에 입력된다. 그러면, 식 (33) (56)의 성질로부터,
[수 12]
Figure 112011079635185-pct00014
을 만족한다.
여기서, 내적 w·v=0이면, 식 (73)은,
[수 13]
로 변형할 수 있다. 이 결과로부터 공통키 K가 생성되어 출력된다. 공통키 K의 일례는 K=gT τ·υ1∈GT이다.
<전체 구성>
도 15는, 제2 실시형태의 분산 장치(810)의 구성을 설명하기 위한 블록도이다. 또, 도 16은, 제2 실시형태의 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))의 구성을 설명하기 위한 블록도이다. 도 17은, 제2 실시형태의 취득 장치(830)의 구성을 설명하기 위한 블록도이다. 도 18은, 도 17의 합성부(835)의 구성을 설명하기 위한 블록도이다. 또한, 이들 도면에 있어서 제1 실시형태와 공통되는 부분에 대해서는, 제1 실시형태와 동일한 부호를 붙이고 설명을 간략화한다.
본 형태의 비밀 분산 시스템은 도 1의 분산 장치(110)가 분산 장치(810)로 치환되고, 분산 관리 장치 〔PA(α, h(α))〕(120-α-h(α))가 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))로 치환되며, 취득 장치(130)가 취득 장치(830)로 치환된 것이다.
<분산 장치(810)>
도 15에 예시하는 바와 같이, 본 형태의 분산 장치(810)는 일시 기억부(111)와, 기억부(112)와, 제어부(113)와, 비밀 분산부(814-α(α=1,...,L))와, 송신부(115)를 가진다. 또한, 본 형태의 분산 장치(810)는, 예를 들면, CPU, RAM, ROM 등을 구비하는 공지의 컴퓨터에 소정의 프로그램이 읽어들여져 실행됨으로써 구성된다.
<분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))>
도 16에 예시하는 바와 같이, 본 형태의 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))는 일시 기억부(121-α-h(α))와, 기억부(122-α-h(α))와, 제어부(123-α-h(α))와, 분산 비밀값 생성부(824-α-h(α))와, 송신부(125-α-h(α))와, 수신부(126-α-h(α))를 가진다. 또한, 본 형태의 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))는, 예를 들면, CPU, RAM, ROM 등을 구비하는 공지의 컴퓨터에 소정의 프로그램이 읽어들여져 실행됨으로써 구성된다.
<공유값 생성 장치(140-α)>
제1 실시형태와 마찬가지이다.
<취득 장치(830)>
도 17에 예시하는 바와 같이, 본 형태의 취득 장치(830)는 일시 기억부(131)와, 기억부(132)와, 제어부(133)와, 복원부(834-α(α=1,...,L))와, 합성부(835)와, 송신부(135)와, 수신부(136)를 가진다. 또, 도 18에 예시하는 바와 같이, 합성부(835)는 제1 연산부(835a)와 제2 연산부(835b)를 가진다. 또한, 본 형태의 취득 장치(830)는, 예를 들면, CPU, RAM, ROM 등을 구비하는 공지의 컴퓨터에 소정의 프로그램이 읽어들여져 실행됨으로써 구성된다.
<비밀 분산 처리>
다음에, 본 형태의 비밀 분산 처리를 설명한다.
본 형태에서는, 제1 실시형태를 응용하여, 내적 술어 암호의 마스터키 정보 MSK인 행렬 B*(식 (59))를 비밀 분산하고, 식 (71)에 예시한 바와 같은 키정보 D*를 복원한다. 이하에서는, 식 (71)의 키정보 D*를 생성 정보
SK=σ(α)·{Σμ=1 nwμ·bμ *}+Σμ=n+1 n+ζbμ *∈Gn+ζ…(75)
에 일반화하여 설명한다. 식 (71)은 ζ=1의 예이다.
우선, 식 (55)에 나타낸 행렬 B*를 구성하는 각 요소
χi, β·κ2·g2∈G2(i=1,...,n+ζ, β=1,...,n+ζ)…(76)
θ(i, β)·g2∈G2…(77)
θ(i, β)=χi, β·κ2∈Fq…(78)
이라고 표현한다. 즉, 식 (55)의 기저 벡터 bi *
bi *=(θ(i,1)·g2,...,θ(i, n+ζ)·g2)∈G2 n+ζ…(79)
라고 표현한다. 그러면, 제1 실시형태 또는 그 변형예를 다차원으로 확장함으로써, 행렬 B*의 비밀 분산이나 생성 정보 SK의 복원을 실행할 수 있는 것을 알 수 있다.
이하에서는, 제1 실시형태 및 그 변형예의 상이점을 중심으로 설명하고, 그들과 공통되는 사항에 대해서는 설명을 생략한다.
[사전처리]
본 형태의 비밀 분산 처리의 사전처리로서, 각 기저 벡터 bi *의 요소인 비밀 정보 θ(i, β)·g2∈G2(i=1,...,n+ζ, β=1,...,n+ζ)를 특정하기 위한 정보 θ(i, β)∈Fq가 분산 장치(810)의 기억부(112)에 격납된다.
[비밀 분산 처리의 전체]
도 19는, 제2 실시형태의 비밀 분산 처리의 전체를 설명하기 위한 도면이다. 이하, 도 19를 사용하여, 본 형태의 비밀 분산 처리의 전체를 설명한다.
본 형태에서는, 우선, 분산 장치(810)(도 15)가 부분집합 SUB(α)마다 독립적으로 각 기저 벡터 bi *의 요소인 비밀 정보 θ(i, β)·g2∈G2를 비밀 분산하여 쉐어 정보 SH(i, β, α, h(α))를 생성하고, 당해 쉐어 정보 SH(i, β, α, h(α))를 출력한다(스텝 S81). 또한, 비밀 분산의 구체적인 방법은 제1 실시형태와 마찬가지이다. 또, 쉐어 정보 SH(i, β, α, h(α))∈G2(i=1,...,n+ζ, β=1,...,n+ζ)의 집합을 쉐어 정보 SH(α, h(α))라고 한다. 각 쉐어 정보 SH(α, h(α))는 각각 네트워크(150) 경유로 각 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))에 분산되어 송신된다.
각 쉐어 정보 SH(α, h(α))가 송신된 각 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))는 각각 쉐어 정보 SH(α, h(α))를 구성하는 쉐어 정보 SH(i, β, α, h(α))와, 부분집합 SUB(α)마다 공유되는 공유값 σ(α)과, 유한체 Fq의 원소를 요소 wμ(μ=1,...,n)로 하는 n차원 벡터 w=(w1,...,wn)를 사용하고, 분산 비밀값 DSH(α, h(α))을 생성한다(스텝 S82). 본 형태의 분산 비밀값 DSH(α, h(α))은 n+ζ개의 쉐어 정보 SH(i,1,α, h(α)) ,...,SH(i, n+ζ, α, h(α))를 요소로 하는 n+ζ차원의 쉐어 기저 벡터
SHbi *(α, h(α))=(SH(i,1,α, h(α)) ,...,SH(i, n+ζ, α, h(α))∈Gn+ζ…(80)
에 대한,
DSH(α, h(α))
=σ(α)·{Σμ=1 nwμ·SHbμ *(α, h(α))}+Σμ=n+1 n+ζSHbμ *(α, h(α))∈Gn+ζ…(81)
이다. 본 형태의 경우, 서로 상이한 부분집합 SUB(α)에서 각각 공유되는 공유값 σ(α)은 서로 독립이다.
각 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))로부터 출력된 각 분산 비밀값 DSH(α, h(α))은 각각 네트워크(150) 경유로 취득 장치(830)에 송신된다. 취득 장치(830)는 동일한 부분집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(α, h(α))을 사용하고, 부분집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값
SUBSK(α)=σ(α)·{Σμ=1 nwμ·bμ *}+Σμ=n+1 n+ζbμ *∈Gn+ζ…(82)
를 생성한다(스텝 S83). 이 처리는 분산 비밀값 DSH(α, h(α))의 차원 μ마다 제1 실시형태 또는 그 변형예에서 나타낸 복원 처치를 실행함으로써 실현할 수 있다.
다음에, 취득 장치(830)는 각 부분집합 SUB(α)에 대해서 각각 생성된 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성하고, 당해 생성 정보 SK를 출력한다(스텝 S84).
또한, 본 형태에서는, 취득 장치(830)가 비밀 복원값 SUBSK(α)을 선형 결합하여 생성 정보 SK를 생성한다. 생성 정보의 구체예는,
SK={(σ(1)+...+σ(L))/L}·{Σμ=1 nwμ·bμ *}+Σμ=n+1 n+ζbμ *∈Gn+ζ…(83)
이다.
[분산 장치의 처리(스텝 S81)]
도 20은, 제2 실시형태의 분산 장치의 처리를 예시하기 위한 도면이다. 이하, 이 도면을 사용하여, 분산 장치(810)의 처리의 상세를 설명한다.
우선, 분산 장치(810)(도 15)의 제어부(113)가 α=1,β=1로 설정하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S811). 다음에, 분산 장치(810)의 제어부(113)가 i=1로 설정하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S812).
다음에, 기억부(112)로부터 비밀 정보 θ(i, β)·g2∈G2(i=1,...,n+ζ, β=1,...,n+ζ)를 특정하기 위한 정보 θ(i, β)∈Fq 각각 읽어내어져, 비밀 분산부(814-α)에 입력된다. 비밀 분산부(814-α)는 각 정보 θ(i, β)∈Fq를 사용하여 각 비밀 정보 θ(i, β)·g2를 비밀 분산하고, 부분집합 SUB(α)에 대한 H(α)개의 쉐어 정보
SH(i, β, α ,1) ,...,SH(i, β, α, H(α))…(84)
를 생성하여 출력한다(스텝 S813). 이 처리는 제1 실시형태의 스텝 S112 또는 그 변형과 마찬가지의 방법으로 실행할 수 있다.
다음에, 제어부(113)는 일시 기억부(111)에 격납된 β가 n+ζ인지 여부를 판정한다(스텝 S814). 여기서, β=n+ζ가 아니라고 판정된 경우, 제어부(113)는 β+1을 새로운 β로 하고, 그 설정 내용을 일시 기억부(111)에 격납하고(스텝 S815), 새로운 β에 의해 스텝 S813의 처리를 실행시킨다.
한편, 스텝 S814에서 β=n+ζ라고 판정된 경우, 제어부(113)는 β=1로 설정하고, 그 설정 내용을 일시 기억부(111)에 격납한다(스텝 S816). 그리고 다음에 제어부(113)는 일시 기억부(111)에 격납된 i가 n+ζ인지 여부를 판정한다(스텝 S817). 여기서, i=n+ζ가 아니라고 판정된 경우, 제어부(113)는 i+1을 새로운 i로 하고, 그 설정 내용을 일시 기억부(111)에 격납하고(스텝 S818), 새로운 i에 의해 스텝 S813의 처리를 실행시킨다.
한편, 스텝 S817에서 i=n+ζ라고 판정된 경우, 제어부(113)는 일시 기억부(111)에 격납된 α가 L인지 여부를 판정한다(스텝 S113). 여기서, α=L이 아니라고 판정된 경우, 제어부(113)는 α+1을 새로운 α로 하고, 그 설정 내용을 일시 기억부(111)에 격납하고(스텝 S114), 새로운 α에 의해 스텝 S812의 처리를 실행시킨다.
한편, 스텝 S113에서 α=L이라고 판정된 경우, 각 비밀 분산부(814-α)로부터 출력된 각 쉐어 정보SH(α, h(α))가 송신부(115)에 보내진다. 송신부(115)는 네트워크(150) 경유로 (n+ζ)2개씩의 쉐어 정보
SH(i, β, α, h(α))(i=1,...,n+ζ, β=1,...,n+ζ)…(85)
를 각각 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))에 송신한다(스텝 S819). 즉, (n+ζ)2개의 쉐어 정보 SH(i, β ,1,1)(i=1,...,n+ζ, β=1,...,n+ζ)로 이루어지는 쉐어 정보 SH(1,1)는 분산 관리 장치 〔PA(1,1)〕(820-1-1)에, (n+ζ)2개의 쉐어 정보 SH(i, β ,1,2)(i=1,...,n+ζ, β=1,...,n+ζ)로 이루어지는 쉐어 정보 SH(1,2)는 분산 관리 장치 〔PA(1,2)〕(820-1-2)에, ···, (n+ζ)2개의 쉐어 정보 SH(i, β, L, H(L))(i=1,...,n+ζ, β=1,...,n+ζ)로 이루어지는 쉐어 정보 SH(L, H(L))는 분산 관리 장치 〔PA(L, H(L))〕(820-L-H(L))에 각각 송신된다.
[공유값 생성 장치의 처리]
각 공유값 생성 장치(140-α)(도 3B)는 스스로에 대응하는 부분집합 SUB(α)을 구성하는 각 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))에서 공유하는 공유값 σ(α)을 생성한다. 본 형태에서는, 난수 생성부(141-α)가 생성한 난수를 공유값 σ(α)으로 하고, 송신부(142-α)가 공유값 σ(α)을 부분집합 SUB(α)을 구성하는 각 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))에 송신한다.
[분산 관리 장치의 처리(스텝 S82)]
도 21은, 제2 실시형태의 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))의 처리를 예시하기 위한 도면이다. 이하, 이 도면을 사용하여, 본 형태의 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))의 처리를 설명한다.
우선, 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))(도 16)의 수신부(126-α-h(α))가 송신된 (n+ζ)2개의 쉐어 정보 SH(i, β, α, h(α))(i=1,...,n+ζ, β=1,...,n+ζ)로 이루어지는 쉐어 정보 SH(α, h(α))를 수신하고, 그것을 기억부(122-α-h(α))에 격납한다(스텝 S821). 또한, 과거에 스텝 S821의 처리가 실행되어, 이미 쉐어 정보 SH(α, h(α))가 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))의 기억부(122-α-h(α))에 격납되어 있는 것이라면, 스텝 S821의 처리를 생략해도 된다.
또, 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))의 수신부(126-α-h(α))는 공유값 생성 장치(140-α)로부터 송신된 공유값 σ(α)을 수신하고, 그것을 기억부(122-α-h(α))에 격납한다(스텝 S122).
또, 본 형태에서는, 취득 장치(830)(도 17)의 기억부(132)로부터 읽어낸 제공 정보인 n차원 벡터 w=(w1,...,wn)가 송신부(135)로부터 네트워크(150) 경유로 각 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))에 송신된다. 이 n차원 벡터 w=(w1,...,wn)는 모든 분산 관리 장치 PA(α, h(α))(820-α-h(α))에 공통이다. n차원 벡터 w=(w1,...,wn)는 분산 관리 장치 〔PA(α, h(α))〕(820-α-h(α))(도 16)의 수신부(126-α-h(α))에서 수신되어, 기억부(122-α-h(α))에 격납된다(스텝 S823).
다음에, 분산 비밀값 생성부(824-α-h(α))가 기억부(122-α-h(α))로부터 쉐어 정보 SH(α, h(α))와 공유값 σ(α)과 n차원 벡터 w=(w1,...,wn)를 읽어들인다. 분산 비밀값 생성부(824-α-h(α))는 공유값 σ(α)과 w=(w1,...,wn)를 포함하는 공통 정보와, 쉐어 정보 SH(α, h(α))를 사용하고, 식 (81)에 나타내는 분산 비밀값 DSH(α, h(α))을 생성하고, 당해 분산 비밀값 DSH(α, h(α))을 출력한다(스텝 S824).
생성된 분산 비밀값 DSH(α, h(α))은 송신부(125-α-h(α))에 보내진다. 송신부(125-α-h(α))는 분산 비밀값 DSH(α, h(α))을 네트워크(150) 경유로 취득 장치(830)에 송신한다(스텝 S125).
[취득 장치의 처리(스텝 S83, S84)]
도 22는, 제2 실시형태의 취득 장치의 처리를 예시하기 위한 도면이다.
각 분산 관리 장치 PA(α, h(α))(820-α-h(α))로부터 송신된 분산 비밀값 DSH(α, h(α))은 취득 장치(830)(도 17)의 수신부(136)에서 수신되어, 기억부(132)에 격납된다(스텝 S131).
다음에, 제어부(133)가 필요수 이상의 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되었는지 여부를 판정한다(스텝 S132). 여기서, 필요수 이상의 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되어 있지 않다고 판정된 경우에는, 스텝 S131의 처리로 되돌아간다.
한편, 필요수 이상의 분산 비밀값 DSH(α, h(α))이 기억부(132)에 격납되었다고 판정된 경우, 제어부(133)가 α=1로 설정하고, 그 설정 내용을 일시 기억부(131)에 격납한다(스텝 S133). 다음에, 기억부(132)로부터 부분집합 SUB(α)에 대응하는 필요수만큼의 분산 비밀값 DSH(α, h(α))이 읽어내어져, 복원부(834-α)에 입력된다. 복원부(834-α)는 입력된 분산 비밀값 DSH(α, h(α))을 사용하고, 부분집합 SUB(α)마다의 복원 처리에 의해 식 (82)에 나타내는 비밀 복원값 SUBSK(α)을 생성하고, 당해 부분집합 SUB(α)마다의 비밀 복원값 SUBSK(α)을 출력한다(스텝 S834).
다음에, 제어부(133)는 일시 기억부(131)에 격납된 α가 L인지 여부를 판정한다(스텝 S135). 여기서, α=L이 아니라고 판정된 경우, 제어부(133)는 α+1을 새로운 α로 하고, 그 설정 내용을 일시 기억부(131)에 격납하고(스텝 S136), 새로운 α에 의해 스텝 S834의 처리를 실행시킨다.
한편, 스텝 S135에서 α=L이라고 판정된 경우, 각 복원부(134-α)로부터 출력된 각 비밀 복원값 SUBSK(α)이 합성부(835)에 보내진다. 합성부(835)의 제1 연산부(835a)(도 18)는 선형합
SUBSK(1)+...+SUBSK(L)
=(σ(1)+...+σ(L))·{Σμ=1 nwμ·bμ *}+L·Σμ=n+1 n+ζbμ *∈Gn+ζ…(86)
을 생성하여 출력한다(스텝 S841).
선형합 SUBSK(1)+...+SUBSK(L)은 제2 연산부(835b)에 입력된다. 제2 연산부(835b)는 생성 정보
SK={(σ(1)+...+σ(L))/L}·{Σμ=1 nwμ·bμ *}+Σμ=n+1 n+ζbμ *∈Gn+ζ…(87)
을 생성하고, 당해 생성 정보 SK를 출력한다(스텝 S842).
<제2 실시형태의 변형예>
본 형태에서도, 제1 실시형태의 각 변형예를 적용할 수 있다.
〔그 밖의 변형예 등〕
본 발명은 상기 서술한 각 실시형태에 한정되는 것은 아니다. 예를 들면, 상기 서술한 유한체 Fq 상에서 정의된 각 연산을 위수 q의 유한환 Zq 상에서 정의된 연산으로 치환해도 된다. 유한체 Fq 상에서 정의된 각 연산을 유한환 Zq 상에서 정의된 연산으로 치환하는 방법의 일례는, 소수나 그 멱승값 이외의 q를 허용하는 방법이다.
또, 식 (71) 대신에
D*=σ·(Σμ=1 nwμ·bμ *)+Σι=n+1 n+ζυι·bι *∈G2 n+ζ
를 사용해도 된다. 단, υι는 상수나 변수(난수 등) 등이다. 또, 상기 서술한 각종 처리는 기재에 따라 시계열로 실행될 뿐만아니라, 처리를 실행하는 장치의 처리 능력 또는 필요에 따라서 병렬적으로 또는 개별로 실행되어도 된다. 그 밖에 본 발명의 취지를 일탈하지 않는 범위에서 적당히 변경이 가능한 것은 말할 필요도 없다.
또, 상기 서술한 구성을 컴퓨터에 의해 실현하는 경우, 각 장치가 가져야 할 기능의 처리 내용은 프로그램에 의해 기술된다. 그리고, 이 프로그램을 컴퓨터로 실행함으로써, 상기 처리 기능이 컴퓨터 상에서 실현된다.
이 처리 내용을 기술한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록 매체로서는, 예를 들면, 자기 기록 장치, 광디스크, 광자기 기록 매체, 반도체 메모리 등 어떠한 것이어도 된다.
또, 이 프로그램의 유통은, 예를 들면, 그 프로그램을 기록한 DVD, CD-ROM 등의 가반형 기록 매체를 판매, 양도, 대여하거나 하여 행한다. 또한, 이 프로그램을 서버 컴퓨터의 기억 장치에 격납해 두고, 네트워크를 통하여, 서버 컴퓨터로부터 다른 컴퓨터에 그 프로그램을 전송함으로써, 이 프로그램을 유통시키는 구성으로 해도 된다.
이러한 프로그램을 실행하는 컴퓨터는, 예를 들면, 우선, 가반형 기록 매체에 기록된 프로그램 혹은 서버 컴퓨터로부터 전송된 프로그램을 일단 자신의 기억 장치에 격납한다. 그리고, 처리의 실행시, 이 컴퓨터는 자신의 기록 매체에 격납된 프로그램을 판독하고, 판독한 프로그램에 따른 처리를 실행한다. 또, 이 프로그램의 다른 실행 형태로서, 컴퓨터가 가반형 기록 매체로부터 직접 프로그램을 판독하고, 그 프로그램에 따른 처리를 실행하는 것으로 해도 되고, 또한, 이 컴퓨터에 서버 컴퓨터로부터 프로그램이 전송될 때마다, 차차, 수취한 프로그램에 따른 처리를 실행하는 것으로 해도 된다. 또, 서버 컴퓨터로부터, 이 컴퓨터로의 프로그램의 전송은 행하지 않고, 그 실행 지시와 결과 취득만에 의해 처리 기능을 실현하는, 소위 ASP(Application Service Provider)형의 서비스에 의해, 상기 서술한 처리를 실행하는 구성으로 해도 된다. 또한, 본 형태에 있어서의 프로그램에는 전자계산기에 의한 처리의 용도에 제공하는 정보로서 프로그램에 준하는 것(컴퓨터에 대한 직접적인 지령은 아니지만 컴퓨터의 처리를 규정하는 성질을 가지는 데이터 등)을 포함하는 것으로 한다.
또, 이 형태에서는, 컴퓨터 상에서 소정의 프로그램을 실행시킴으로써, 본 장치를 구성하는 것으로 했지만, 이들 처리 내용의 적어도 일부를 하드웨어적으로 실현하는 것으로 해도 된다.
1…비밀 분산 시스템 110, 810…분산 장치
120, 820…분산 관리 장치 130, 830…취득 장치
140…공유값 생성 장치

Claims (37)

  1. 분산 장치와, Σα=1 Lh(α)개의 분산 관리 장치 PA(α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)와, 취득 장치를 가지고,
    상기 분산 장치는,
    어느 비밀 분산 방식을 사용하여, H(α)개의 분산 관리 장치 PA(α,1),...,PA(α, H(α))로 이루어지는 부분집합 SUB(α)마다 독립적으로 비밀 정보를 비밀 분산하여 쉐어 정보 SH(α, h(α))를 생성하고, 당해 쉐어 정보 SH(α, h(α))를 출력하도록 구성된 비밀 분산부를 포함하고,
    상기 분산 관리 장치 PA(α, h(α))는,
    상기 부분집합 SUB(α)마다 공유되는 공유값 σ(α)을 포함하는 공통 정보와, 상기 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 당해 분산 비밀값 DSH(α, h(α))을 출력하도록 구성된 분산 비밀값 생성부를 포함하고,
    동일한 상기 부분집합 SUB(α)에 속하는 상기 분산 관리 장치 PA(α, h(α))가 각각 사용하는 상기 공통 정보는 서로 동일하며,
    동일한 상기 부분집합 SUB(α)에 속하는 상기 분산 관리 장치 PA(α, h(α))가 각각 행하는 상기 공통 연산은 서로 동일하며,
    상기 취득 장치는,
    동일한 상기 부분집합 SUB(α)에 대응하는 복수의 상기 분산 비밀값 DSH(α, h(α))을 사용하고, 부분집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 당해 부분집합 SUB(α)마다의 상기 비밀 복원값 SUBSK(α)을 얻도록 구성되고, 상기 복원 처리가 상기 비밀 분산 방식에 따른 처리인 복원부와,
    상기 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성하고, 당해 생성 정보 SK를 출력하도록 구성된 합성부를 포함하는 것을 특징으로 하는 비밀 분산 시스템.
  2. 제 1 항에 있어서,
    서로 상이한 상기 부분집합 SUB(α)에서 각각 공유되는 상기 공유값 σ(α)은 서로 독립인 것을 특징으로 하는 비밀 분산 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 분산 관리 장치 PA(α, h(α))(α=1,...,L)의 상기 분산 비밀값 생성부가 각각 행하는 상기 공통 연산은 모두 동일한 것을 특징으로 하는 비밀 분산 시스템.
  4. 제 3 항에 있어서,
    상기 공통 연산은 선형성을 가진 연산이며,
    상기 합성부는 상기 비밀 복원값 SUBSK(α)을 선형 결합하여 상기 생성 정보 SK를 생성하도록 구성되는 것을 특징으로 하는 비밀 분산 시스템.
  5. 제 1 항에 있어서,
    상기 공통 정보는 상기 공유값 σ(α)과, 상기 취득 장치로부터 제공된 모든 상기 분산 관리 장치 PA(α, h(α))에 공통의 제공 정보를 포함하는 것을 특징으로 하는 비밀 분산 시스템.
  6. 제 1 항에 있어서,
    상기 합성부는 상기 비밀 복원값 SUBSK(α)을 선형 결합하여 상기 생성 정보 SK를 생성하도록 구성되는 것을 특징으로 하는 비밀 분산 시스템.
  7. 제 1 항에 있어서,
    상기 공통 연산은 선형성을 가진 연산인 것을 특징으로 하는 비밀 분산 시스템.
  8. 제 1 항에 있어서,
    상기 비밀 분산부는,
    적어도 일부의 상기 부분집합 SUB(α)에 대하여, (R(α), H(α)) 임계값 비밀 분산법(단, 2≤R(α)<H(α))을 사용하고, 상기 비밀 정보를 비밀 분산한 쉐어 정보 SH(α, h(α))를 생성하도록 구성되고,
    상기 복원부는 동일한 상기 부분집합 SUB(α)에 대응하는 R(α)개 이상의 상기 분산 비밀값 DSH(α, h(α))을 사용하고, 당해 부분집합 SUB(α)마다의 비밀 복원값 SUBSK(α)을 생성하도록 구성되는 것을 특징으로 하는 비밀 분산 시스템.
  9. 제 8 항에 있어서,
    상기 비밀 정보는 g를 순회군 G의 생성원으로 하고, θ를 유한체 Fq의 원소로 한 경우에 있어서의, 상기 순회군 G의 원소 θ·g∈G를 포함하고,
    상기 비밀 정보를 특정하는 정보는 θ∈Fq이며,
    (R(α), H(α)) 임계값 비밀 분산법을 사용하여 비밀 분산된 상기 쉐어 정보 SH(α, h(α))는 상기 유한체 Fq의 원소로 이루어지는 변수를 x로 하고, 미리 정해진 상기 유한체 Fq의 원소 ω∈Fq에 대하여 f(α, ω)=θ를 만족하는 R(α)-1차의 다항식을 f(α, x)∈Fq로 하고, h(α)에 대응하는 인덱스를 φ(h(α))로 한 경우에 있어서의, 상기 순회군 G의 원소 f(α, φ(h(α)))·g∈G를 포함하는 것을 특징으로 하는 비밀 분산 시스템.
  10. 제 8 항에 있어서,
    상기 비밀 정보는 유한체 Fq의 원소 θ를 포함하고,
    (R(α), H(α)) 임계값 비밀 분산법을 사용하여 비밀 분산된 상기 쉐어 정보 SH(α, h(α))는 상기 유한체 Fq의 원소로 이루어지는 변수를 x로 하고, 미리 정해진 상기 유한체 Fq의 원소 ω∈Fq에 대하여 f(α, ω)=θ를 만족하는 R(α)-1차의 다항식을 f(α, x)∈Fq로 하고, h(α)에 대응하는 인덱스를 φ(h(α))로 한 경우에 있어서의, 상기 유한체 Fq의 원소 f(α, φ(h(α)))∈Fq를 포함하는 것을 특징으로 하는 비밀 분산 시스템.
  11. 제 1 항에 있어서,
    상기 비밀 분산부는 적어도 일부의 상기 부분집합 SUB(α)에 대하여, (H(α), H(α)) 임계값 비밀 분산법을 사용하고, 상기 비밀 정보를 비밀 분산한 쉐어 정보 SH(α, h(α))를 생성하도록 구성되고,
    상기 복원부는 동일한 상기 부분집합 SUB(α)에 대응하는 H(α)개의 상기 분산 비밀값 DSH(α, h(α))을 사용하고, 당해 부분집합 SUB(α)마다의 비밀 복원값 SUBSK(α)을 생성하도록 구성되는 것을 특징으로 하는 비밀 분산 시스템.
  12. 제 11 항에 있어서,
    상기 비밀 정보는 g를 순회군 G의 생성원으로 하고, θ를 유한체 Fq의 원소로 한 경우에 있어서의, 상기 순회군 G의 원소 θ·g∈G를 포함하고,
    (H(α), H(α)) 임계값 비밀 분산법을 사용하여 비밀 분산된 상기 쉐어 정보 SH(α, h(α))는 SH(α,1)+SH(α,2)+...+SH(α, H(α))=θ·g∈G를 만족하는 상기 순회군 G의 원소인 것을 특징으로 하는 비밀 분산 시스템.
  13. 제 11 항에 있어서,
    상기 비밀 정보는 유한체 Fq의 원소 θ를 포함하고,
    (H(α), H(α)) 임계값 비밀 분산법을 사용하여 비밀 분산된 상기 쉐어 정보 SH(α, h(α))는 SH(α,1)+SH(α,2)+...+SH(α, H(α))=θ∈Fq를 만족하는 상기 유한체 Fq의 원소인 것을 특징으로 하는 비밀 분산 시스템.
  14. 제 5 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 비밀 정보는 순회군 G의 생성원을 g로 하고, θ(i, β)(i=1,...,n+ζ, β=1,...,n+ζ, n≥1,ζ≥1)를 유한체 Fq의 원소로 하고, 상기 순회군 G의 n+ζ개의 원소를 요소로 하는 n+ζ차원의 기저 벡터를 bi *=(θ(i,1)·g ,...,θ(i, n+ζ)·g)∈Gn+ζ로 한 경우에 있어서의, 당해 기저 벡터 bi *의 집합 (b1 *, ...,bn+ζ *)이며,
    상기 비밀 분산부는 각 기저 벡터 bi *의 요소 θ(i, β)·g∈G를 각각 상기 부분집합 SUB(α)마다 독립적으로 비밀 분산한 쉐어 정보 SH(i, β, α, h(α))∈G를 생성하도록 구성되고, 상기 쉐어 정보 SH(α, h(α))는 상기 쉐어 정보 SH(i, β, α, h(α))∈G(i=1,...,n+ζ, β=1,...,n+ζ)의 집합이며,
    상기 제공 정보는 상기 유한체 Fq의 원소를 요소 wμ(μ=1,...,n)로 하는 n차원 벡터 w=(w1,...,wn)이며,
    상기 분산 비밀값 생성부는 상기 쉐어 정보 SH(i, β, α, h(α))(i=1,...,n+ζ, β=1,...,n+ζ)와 상기 공유값 σ(α)과 상기 n차원 벡터 w를 사용하고, 상기 분산 비밀값 DSH(α, h(α))을 생성하고, 상기 분산 비밀값 DSH(α, h(α))은 n+ζ개의 쉐어 정보 SH(i,1,α, h(α)) ,...,SH(i, n+ζ, α, h(α))를 요소로 하는 n+ζ차원의 쉐어 기저 벡터 SHbi *(α, h(α))=(SH(i,1,α, h(α)) ,...,SH(i, n+ζ, α, h(α))∈Gn+ζ에 대한, DSH(α, h(α))=σ(α)·{Σμ=1 nwμ·SHbμ *(α, h(α))}+Σμ=n+1 n+ζSHbμ *(α, h(α))∈Gn+ζ이며,
    상기 비밀 복원값 SUBSK(α)은 SUBSK(α)=σ(α)·{Σμ=1 nwμ·bμ *}+Σμ=n+1 n+ζbμ *∈Gn+ζ인 것을 특징으로 하는 비밀 분산 시스템.
  15. 제 14 항에 있어서,
    상기 합성부는 상기 생성 정보 SK={(σ(1)+...+σ(L))/L}·{Σμ=1 nwμ·bμ *}+Σμ=n+1 n+ζbμ *를 산출하도록 구성되는 것을 특징으로 하는 비밀 분산 시스템.
  16. 비밀 정보를 입력하는 것으로 하고, H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치 PA(α,1) ,...,PA(α, H(α))로 이루어지는 부분집합 SUB(α)마다 독립적으로 상기 비밀 정보를 비밀 분산하여 쉐어 정보 SH(α, h(α))를 생성하고, 당해 쉐어 정보 SH(α, h(α))를 출력하도록 구성된 비밀 분산부를 가지는 것을 특징으로 하는 분산 장치.
  17. 제 16 항에 있어서,
    상기 비밀 분산부는 적어도 일부의 상기 부분집합 SUB(α)에 대하여, (R(α), H(α)) 임계값 비밀 분산법(단, 2≤R(α)<H(α))을 사용하고, 상기 비밀 정보를 비밀 분산한 쉐어 정보 SH(α, h(α))를 생성하도록 구성되는 것을 특징으로 하는 분산 장치.
  18. 제 17 항에 있어서,
    상기 비밀 정보는 g를 순회군 G의 생성원으로 하고, θ를 유한체 Fq의 원소로 한 경우에 있어서의, 상기 순회군 G의 원소 θ·g∈G를 포함하고,
    상기 비밀 정보를 특정하는 정보는 θ∈Fq이며,
    (R(α), H(α)) 임계값 비밀 분산법을 사용하여 비밀 분산된 상기 쉐어 정보 SH(α, h(α))는 상기 유한체 Fq의 원소로 이루어지는 변수를 x로 하고, 미리 정해진 상기 유한체 Fq의 원소 ω∈Fq에 대하여 f(α, ω)=θ를 만족하는 R(α)-1차의 다항식을 f(α, x)∈Fq로 하고, h(α)에 대응하는 인덱스를 φ(h(α))로 한 경우에 있어서의, 상기 순회군 G의 원소 f(α, φ(h(α)))·g∈G를 포함하는 것을 특징으로 하는 분산 장치.
  19. 제 16 항 내지 제 18 항 중 어느 한 항에 있어서,
    상기 비밀 정보는 순회군 G의 생성원을 g로 하고, θ(i, β)(i=1,...,n+ζ, β=1,...,n+ζ, n≥1,ζ≥1)를 유한체 Fq의 원소로 하고, 상기 순회군 G의 n+ζ개의 원소를 요소로 하는 n+ζ차원의 기저 벡터를 bi *=(θ(i,1)·g ,...,θ(i, n+ζ)·g)∈Gn+ζ로 한 경우에 있어서의, 당해 기저 벡터 bi *의 집합 (b1 *, ...,bn+ζ *)이며,
    상기 비밀 분산부는 각 기저 벡터 bi *의 요소 θ(i, β)·g∈G를 각각 상기 부분집합 SUB(α)마다 독립적으로 비밀 분산한 쉐어 정보 SH(i, β, α, h(α))∈G를 생성하도록 구성되고, 상기 쉐어 정보 SH(α, h(α))는 상기 쉐어 정보 SH(i, β, α, h(α))∈G(i=1,...,n+ζ, β=1,...,n+ζ)의 집합인 것을 특징으로 하는 분산 장치.
  20. H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치 PA(α,1) ,...,PA(α, H(α))로 이루어지는 부분집합 SUB(α)마다 공유되는 공유값 σ(α)을 포함하는 공통 정보와, 상기 부분집합 SUB(α)마다 독립적으로 비밀 정보를 비밀 분산하여 얻어진 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 당해 분산 비밀값 DSH(α, h(α))을 출력하도록 구성된 분산 비밀값 생성부를 가지고,
    동일한 상기 부분집합 SUB(α)에 속하는 상기 분산 관리 장치 PA(α, h(α))가 각각 사용하는 상기 공통 정보는 서로 동일하며,
    동일한 상기 부분집합 SUB(α)에 속하는 상기 분산 관리 장치 PA(α, h(α))가 각각 행하는 상기 공통 연산은 서로 동일한 것을 특징으로 하는 분산 관리 장치.
  21. 제 20 항에 있어서,
    서로 상이한 상기 부분집합 SUB(α)에서 각각 공유되는 상기 공유값 σ(α)은 서로 독립인 것을 특징으로 하는 분산 관리 장치.
  22. 제 20 항 또는 제 21 항에 있어서,
    상기 분산 관리 장치 PA(α, h(α))(α=1,...,L)의 상기 분산 비밀값 생성부가 각각 행하는 상기 공통 연산은 모두 동일한 것을 특징으로 하는 분산 관리 장치.
  23. 제 20 항에 있어서,
    상기 공통 정보는 상기 공유값 σ(α)과, 취득 장치로부터 제공된 모든 상기 분산 관리 장치 PA(α, h(α))에 공통의 제공 정보를 포함하는 것을 특징으로 하는 분산 관리 장치.
  24. 제 23 항에 있어서,
    상기 제공 정보는 유한체 Fq의 원소를 요소 wμ(μ=1,...,n)로 하는 n차원 벡터 w=(w1,...,wn)이며,
    상기 분산 비밀값 생성부는 상기 쉐어 정보 SH(i, β, α, h(α))와 상기 공유값 σ(α)과 상기 n차원 벡터 w를 사용하고, 상기 분산 비밀값 DSH(α, h(α))을 생성하고, 상기 분산 비밀값 DSH(α, h(α))은 n+ζ개(ζ≥1)의 쉐어 정보 SH(i,1,α, h(α)) ,...,SH(i, n+ζ, α, h(α))를 요소로 하는 n+ζ차원의 쉐어 기저 벡터 SHbi *(α, h(α))=(SH(i,1,α, h(α)) ,...,SH(i, n+ζ, α, h(α))∈Gn+ζ에 대한, DSH(α, h(α))=σ(α)·{Σμ=1 nwμ·SHbμ *(α, h(α))}+Σμ=n+1 n+ζSHbμ *(α, h(α))∈Gn+ζ인 것을 특징으로 하는 분산 관리 장치.
  25. H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치 PA(α,1) ,...,PA(α, H(α))로 이루어지는 부분집합을 SUB(α)로 한 경우에 있어서의, 동일한 상기 부분집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(α, h(α))을 사용하고, 당해 부분집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 당해 부분집합 SUB(α)마다의 상기 비밀 복원값 SUBSK(α)을 얻도록 구성되고, 상기 복원 처리가 어느 비밀 분산 방식에 따른 처리인 복원부와,
    상기 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성하고, 당해 생성 정보 SK를 출력하도록 구성된 합성부,
    를 가지는 것을 특징으로 하는 취득 장치.
  26. 제 25 항에 있어서,
    유한체 Fq의 원소를 요소 wμ(μ=1,...,n)로 하는 n차원 벡터 w=(w1,...,wn)를 출력하는 출력부를 또한 가지고,
    상기 비밀 복원값 SUBSK(α)은 상기 부분집합 SUB(α)마다 공유되는 공유값을 σ(α)로 하고, 순회군 G의 생성원을 g로 하고, θ(i, β)(i=1,...,n+ζ, β=1,...,n+ζ, n≥1,ζ≥1)를 유한체 Fq의 원소로 하고, 상기 순회군 G의 n+ζ개의 원소를 요소로 하는 n+ζ차원의 기저 벡터를 bi*=(θ(i,1)·g ,...,θ(i, n+ζ)·g)∈Gn+ζ로 한 경우에 있어서의, SUBSK(α)=σ(α)·{Σμ=1 nwμ·bμ *}+Σμ=n+1 n+ζbμ *∈Gn+ζ인 것을 특징으로 하는 취득 장치.
  27. 제 26 항에 있어서,
    상기 합성부는 상기 생성 정보 SK={(σ(1)+...+σ(L))/L}·{Σμ=1 nwμ·bμ *}+Σμ=n+1 n+ζbμ *를 산출하도록 구성되는 것을 특징으로 하는 취득 장치.
  28. (a) 분산 장치에 있어서, 어느 비밀 분산 방식을 사용하여, Σα=1 Lh(α)개의 분산 관리 장치 PA(α, h(α))(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)로 이루어지는 집합에 속하는 H(α)개의 분산 관리 장치 PA(α,1) ,...,PA(α, H(α))로 이루어지는 부분집합 SUB(α)마다 독립적으로 비밀 정보를 비밀 분산하여 쉐어 정보 SH(α, h(α))를 생성하고, 당해 쉐어 정보 SH(α, h(α))를 출력하는 스텝과,
    (b) 상기 분산 관리 장치 PA(α, h(α))에 있어서, 상기 쉐어 정보 SH(α, h(α))와, 상기 부분집합 SUB(α)마다 공유되는 공유값 σ(α)을 포함하는 공통 정보를 사용하고, 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하고, 당해 분산 비밀값 DSH(α, h(α))을 출력하는 스텝과,
    (c) 취득 장치에 있어서, 동일한 상기 부분집합 SUB(α)에 대응하는 복수의 상기 분산 비밀값 DSH(α, h(α))을 사용하고, 부분집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 당해 부분집합 SUB(α)마다의 상기 비밀 복원값 SUBSK(α)을 얻고, 상기 복원 처리가 상기 비밀 분산 방식에 따른 처리인 스텝과,
    (d) 상기 취득 장치에 있어서, 상기 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성하고, 당해 생성 정보 SK를 출력하는 스텝을 가지고,
    상기 스텝(b)에 있어서, 동일한 상기 부분집합 SUB(α)에 속하는 상기 분산 관리 장치 PA(α, h(α))가 각각 사용하는 상기 공통 정보는 서로 동일하며, 동일한 상기 부분집합 SUB(α)에 속하는 상기 분산 관리 장치 PA(α, h(α))가 각각 행하는 상기 공통 연산은 서로 동일한 것을 특징으로 하는 비밀 분산 방법.
  29. 분산 장치의 처리 방법으로서,
    비밀 정보가 분산 장치에 입력되는 스텝과,
    상기 분산 장치의 제1 수단에 있어서, H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치 PA(α,1) ,...,PA(α, H(α))로 이루어지는 부분집합 SUB(α)마다 독립적으로 상기 비밀 정보를 비밀 분산하여 쉐어 정보 SH(α, h(α))를 생성하는 스텝과,
    상기 분산 장치의 제2 수단에 있어서, 상기 쉐어 정보 SH(α, h(α))를 출력하는 스텝을 가지는 것을 특징으로 하는 처리 방법.
  30. 분산 관리 장치의 처리 방법으로서,
    상기 분산 관리 장치의 제1 수단에 있어서, H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치 PA(α,1) ,...,PA(α, H(α))로 이루어지는 부분집합 SUB(α)마다 공유되는 공유값 σ(α)을 포함하는 공통 정보와, 상기 부분집합 SUB(α)마다 독립적으로 비밀 정보를 비밀 분산하여 얻어진 쉐어 정보 SH(α, h(α))를 사용하고, 공통 연산을 행하여 분산 비밀값 DSH(α, h(α))을 생성하는 스텝과,
    상기 분산 관리 장치의 제2 수단에 있어서, 상기 분산 비밀값 DSH(α, h(α))을 출력하는 스텝을 가지고,
    동일한 상기 부분집합 SUB(α)에 속하는 상기 분산 관리 장치 PA(α, h(α))가 각각 사용하는 상기 공통 정보는 서로 동일하며, 동일한 상기 부분집합 SUB(α)에 속하는 상기 분산 관리 장치 PA(α, h(α))가 각각 행하는 상기 공통 연산은 서로 동일한 것을 특징으로 하는 처리 방법.
  31. 취득 장치의 처리 방법으로서,
    상기 취득 장치의 제1 수단에 있어서, H(α)(α=1,...,L, L≥2, h(α)=1,...,H(α), H(α)≥2)개의 분산 관리 장치 PA(α,1) ,...,PA(α, H(α))로 이루어지는 부분집합을 SUB(α)로 한 경우에 있어서의, 동일한 상기 부분집합 SUB(α)에 대응하는 복수의 분산 비밀값 DSH(α, h(α))을 사용하고, 당해 부분집합 SUB(α)마다의 복원 처리에 의해 비밀 복원값 SUBSK(α)을 생성하고, 당해 부분집합 SUB(α)마다의 상기 비밀 복원값 SUBSK(α)을 얻고, 상기 복원 처리가 어느 비밀 분산 방식에 따른 처리인 스텝과,
    상기 취득 장치의 제2 수단에 있어서, 상기 비밀 복원값 SUBSK(α)을 사용하여 생성 정보 SK를 생성하고, 당해 생성 정보 SK를 출력하는 스텝,
    을 가지는 것을 특징으로 하는 처리 방법.
  32. 제 16 항 내지 제 18 항 중 어느 한 항의 분산 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 것을 특징으로 하는 기록 매체.
  33. 제 20 항, 제 21 항, 제 23 항 및 제 24 항 중 어느 한 항의 분산 관리 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 것을 특징으로 하는 기록 매체.
  34. 제 22 항의 분산 관리 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 것을 특징으로 하는 기록 매체.
  35. 제 25 항 내지 제 27 항 중 어느 한 항의 취득 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 컴퓨터 판독 가능한 것을 특징으로 하는 기록 매체.
  36. 삭제
  37. 삭제
KR1020117023961A 2009-04-24 2010-04-23 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 그들의 처리 방법, 비밀 분산 방법, 및 프로그램을 기록한 기록 매체 KR101344353B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2009-106031 2009-04-24
JP2009106031 2009-04-24
PCT/JP2010/057274 WO2010123114A1 (ja) 2009-04-24 2010-04-23 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
KR20120034156A KR20120034156A (ko) 2012-04-10
KR101344353B1 true KR101344353B1 (ko) 2013-12-24

Family

ID=43011228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117023961A KR101344353B1 (ko) 2009-04-24 2010-04-23 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 그들의 처리 방법, 비밀 분산 방법, 및 프로그램을 기록한 기록 매체

Country Status (7)

Country Link
US (1) US8549290B2 (ko)
EP (1) EP2423904B1 (ko)
JP (2) JP5337238B2 (ko)
KR (1) KR101344353B1 (ko)
CN (1) CN102396012B (ko)
ES (1) ES2532332T3 (ko)
WO (1) WO2010123114A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602005010039D1 (de) * 2004-12-23 2008-11-13 Hewlett Packard Development Co Verbesserungen in der Anwendung von bilinearen Abbildungen bei kryptographischen Anwendungen
EP2242032B1 (en) * 2008-01-21 2013-10-02 Nippon Telegraph and Telephone Corporation Secure computing system, secure computing method, secure computing apparatus and program therefor
JP5424974B2 (ja) 2010-04-27 2014-02-26 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP5379914B2 (ja) * 2010-07-23 2013-12-25 日本電信電話株式会社 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体
US9432188B2 (en) * 2012-07-05 2016-08-30 Nippon Telegraph And Telephone Corporation Secret sharing system, data distribution apparatus, distributed data transform apparatus, secret sharing method and program
US9679149B2 (en) * 2012-07-05 2017-06-13 Nippon Telegraph And Telephone Corporation Secret sharing system, data distribution apparatus, distributed data transform apparatus, secret sharing method and program
KR101379848B1 (ko) * 2013-02-15 2014-04-04 서울대학교산학협력단 일정 수 이상의 파일 쉐어로 복구 가능한 파일 분산 관리 장치 및 그 방법
EP3096309B1 (en) * 2014-01-17 2018-10-31 Nippon Telegraph And Telephone Corporation Secret calculation method, secret calculation system, sorting device, and program
US10013682B2 (en) 2015-02-13 2018-07-03 International Business Machines Corporation Storage and recovery of digital data based on social network
JP5968484B1 (ja) * 2015-03-18 2016-08-10 日本電信電話株式会社 シェア復旧システム、シェア復旧方法、およびプログラム
AU2018321008B2 (en) * 2017-08-22 2021-05-20 Nippon Telegraph And Telephone Corporation Share generating device, reconstructing device, secure computation system, share generation method, reconstruction method, program, and recording medium
FR3080927B1 (fr) * 2018-05-03 2024-02-02 Proton World Int Nv Authentification d'un circuit electronique
TWI667909B (zh) * 2018-07-31 2019-08-01 國立高雄科技大學 數值資料保護方法與電腦程式產品
US11362816B2 (en) 2020-09-11 2022-06-14 Seagate Technology Llc Layered secret sharing with flexible access structures
US11316673B2 (en) 2020-09-11 2022-04-26 Seagate Technology Llc Privacy preserving secret sharing from novel combinatorial objects

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07334080A (ja) * 1994-06-13 1995-12-22 Nippon Telegr & Teleph Corp <Ntt> ディジタル情報保護装置及びその方法
US6363481B1 (en) * 1998-08-03 2002-03-26 Nortel Networks Limited Method and apparatus for secure data storage using distributed databases
JP4292835B2 (ja) * 2003-03-13 2009-07-08 沖電気工業株式会社 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
JP4300838B2 (ja) * 2003-03-25 2009-07-22 沖電気工業株式会社 分散計算装置及び分散計算システム
US7653199B2 (en) * 2004-07-29 2010-01-26 Stc. Unm Quantum key distribution
JP2006129340A (ja) * 2004-11-01 2006-05-18 Oki Electric Ind Co Ltd 秘密情報管理装置、秘密情報管理システム、及び秘密情報管理方法
US7940927B2 (en) * 2005-04-27 2011-05-10 Panasonic Corporation Information security device and elliptic curve operating device
US7983415B2 (en) * 2006-12-19 2011-07-19 King Fahd University Of Petroleum And Minerals Method for performing iterative scalar multiplication which is protected against address bit attack
JP2008250931A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 分散情報復元システム、情報利用装置、および、検証装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Chigusa KAWASHIMA et al ., "Seki Fugoka o Riyo shita Kaisoteki na Himitsu Bunsanho no Kento" (2008.01.22.) 1부.
Hachiro FUJITA et al ., "Sharing Multilevel Secrets among Groups Using Concatenation of Reed-Solomon Codes" (2009.03.02.) 1부.

Also Published As

Publication number Publication date
EP2423904A1 (en) 2012-02-29
EP2423904A4 (en) 2013-06-26
US20120030464A1 (en) 2012-02-02
EP2423904B1 (en) 2015-01-07
CN102396012A (zh) 2012-03-28
US8549290B2 (en) 2013-10-01
WO2010123114A1 (ja) 2010-10-28
KR20120034156A (ko) 2012-04-10
JP5562475B2 (ja) 2014-07-30
ES2532332T3 (es) 2015-03-26
JP2013178589A (ja) 2013-09-09
JPWO2010123114A1 (ja) 2012-10-25
JP5337238B2 (ja) 2013-11-06
CN102396012B (zh) 2014-05-07

Similar Documents

Publication Publication Date Title
KR101344353B1 (ko) 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 그들의 처리 방법, 비밀 분산 방법, 및 프로그램을 기록한 기록 매체
JP5379914B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体
KR101351787B1 (ko) 정보 생성 장치, 정보 생성 방법, 및 컴퓨터 판독가능 기록 매체
US8938068B2 (en) Functional encryption applied system, information output apparatus, information processing apparatus, encryption protocol execution method, information output method, information processing method, program and recording medium
US8515060B2 (en) Encryption apparatus, decryption apparatus, encryption method, decryption method, security method, program, and recording medium
KR101443553B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP5466763B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体
KR101606317B1 (ko) 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
CN104718566B (zh) 密码系统
Lee et al. Anonymous HIBE with short ciphertexts: full security in prime order groups

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
FPAY Annual fee payment

Payment date: 20161209

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171208

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191205

Year of fee payment: 7