ENCRYPTION PROCESSING SYSTEM, KEY GENERATION DEVICE, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION PROCESSING METHOD, AND ENCRYPTION PROCESSING PROGRAMThe object is to provide a secure functional encryption scheme having many cryptographic functions. An access structure is constituted by applying the inner-product of attribute vectors to a span program. The access structure has a degree of freedom in design of the span program and design of the attribute vectors, thus having a large degree of freedom in design of access control. A functional encryption process is implemented by imparting the access structure to each of a ciphertext and a decryption key.A cryptographic processing system comprising a key generation device, an encryption device, and a decryption device, and serving to execute a cryptographic process using a basis B0 and a basis B0*, a basis BtKP and a basis B*tKP for each integer t = 1, ..., (dKP is an integer of 1 or more), and a basis BtCP and a basis B*tCP for each integer t = 1, ..., dCP (dCP is an integer of 1 or more), wherein the key generation device includes a first KP information input part which takes as input, a variable ρKP(i) for each integer i = 1, ..., LKP {LKP is an integer of 1 or more), which variable ρKP(i) is either one of a positive tuple (t, v→iKP) and a negative tuple ¬{t, v→iKP) of identification information t (t is any one integer of t = 1, ..., dKP) and an attribute vector v→iKP := (vi,i'KP) (i' = 1, ..., ntKP where ntKP is an integer of 1 or more), and a predetermined matrix MKP having LKP rows and rKP columns (rKP is an integer of 1 or more), a first CP information input part which takes as input, an attribute set ΓCP having the identification information t and an attribute vector x→tCP := (Xt,i'CP) (i' = 1, ..., ntCP where ntCP is an integer of 1 or more) for at least one integer t = 1, ..., dCP, a main decryption key generation part which generates an element k*0 by setting a value -s0KP (s0KP := h→KP.(f→KP)T where h→KP and f→KP are vectors each having rKP pieces of elements) as a coefficient for a basis vector b*0,p (p is a predetermined value) of the basis B*0, by setting a random number δCP as a coefficient for a basis vector b*0,p' (p' is a predetermined value different from prescribed p), and by setting a predetermined value κ as a coefficient for a basis vector b*0,q (q is a predetermined value different from the prescribed p and prescribed p'), a KP decryption key generation part which generates an element k*iKP for each integer i = 1 ..., LKP, based on a column vector s→KP)T := (s1KP, ..., siKP)T := MKP·(f→KP)T (i = LKP) generated based on prescribed f→KP and the matrix MKP which is inputted by the first KP information input part; and a random number θiKP (i = 1, ..., LKP), the KP decryption key generation part being configured to generate the element k*iKP, when the variable ρKP(i) for each integer i = 1, ..., LKP is a positive tuple (t, v→iKP), by setting siKP+θiKPvi,lKP as a coefficient for a basis vector b*t,lKP of the basis B*tKP indicated by identification information t of the positive tuple, and by setting θiKPvi,i'KP as a coefficient for a basis vector b*t,i'KP indicated by the identification information t and by each integer i' = 2, ..., ntKP, and when the variable ρKP(i) is a negative tuple ¬(t, v→iKP), by setting siKPvi,i'KP as a coefficient for the basis vector b*t,i'KP indicated by the identification information t of the negative tuple and by each integer i' = 1, ..., ntKP, and a CP decryption key generation part which generates an element k*tCP concerning each identification information t included in the attribute set ΓCP inputted by the first CP information input part, the CP decryption key generation part being configured to generate the element k*tCP by setting xt,i'CP multiplied by the random number δCP as a coefficient for a basis vector b*t,i'CP (i' = 1, ..., ntCP) of the basis B*tCP, wherein the encryption device includes a second KP information input part which takes as input, an attribute set ΓKP having the identification information t and an attribute vector x→tKP := (xt,i'KP) (i' = 1, ..., ntKP) for at least one integer t = 1, ..., dKP, a second CP information input part which takes as input, a variable ρCP(i) for each integer i = 1, ..., LCP (LCP is an integer of 1 or more), which variable ρCP(i) is either one of a positive tuple (t, v→iCP) and a negative tuple ¬(t, v→iCP) of identification information t (t is any one integer of t = 1, ..., dCP) and an attribute vector v→iCP := (vi,i'CP) (i' = 1, ..., ntCP), and a predetermined matrix MCP having LCP rows and rCP columns (rCP is an integer of 1 or more), a main encrypted data generation part which generates an element c0 by setting a random number ωKP as a coefficient for a basis vector b0,p of the basis B0, by setting a value -s0CP (s0CP := h→CP·(f→CP)T where h→CP and f→CP are vectors each having rCP pieces of elements) as a coefficient for a basis vector b0,p' of the basis B0, and by setting a random number ζ as a coefficient for a basis vector b0,q, a KP encrypted data generation part which generates an element ctKP concerning each identification information t included in the attribute set ΓKP inputted by the second KP information input part, the KP encrypted data generation part being configured to generate the element ctKP by setting xt,i'KP multiplied by the random number ωKP as a coefficient for a basis vector bt,i'KP (i' = 1, ..., nt) of the basis BtKP, and a CP encrypted data generation part which generates an element ciCP for each integer i = 1 ..., LCP, based on a column vector (s→CP)T := (s1CP, ..., siCP)T := MCP·(f→...
암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 많은 암호 기능을 갖는 안전한 함수형 암호 방식을 제공하는 것을 목적으로 한다. 스팬 프로그램에 속성 벡터의 내적을 적용하는 것에 의해, 액세스 스트럭쳐를 구성했다. 이 액세스 스트럭쳐는, 스팬 프로그램의 설계와, 속성 벡터의 설계에 자유도가 있고, 액세스 제어의 설계에 큰 자유도를 갖는다. 이 액세스 스트럭쳐를, 암호문과 복호 키의 각각에 갖게 하여 함수형 암호 처리를 실현했다. 키 생성 장치와 암호화 장치와 복호 장치를 구비하고, 기저 B0 및 기저 B0*와, t=1, …, dKP(dKP는 1 이상의 정수)의 각 정수 t에 대한 기저 BtKP 및 기저 B*tKP와, t=1, …, dCP(dCP는 1 이상의 정수)의 각 정수 t에 대한 기저 BtCP 및 기저 B*tCP를 이용하여 암호 처리를 실행하는 암호 처리 시스템으로서,상기 키 생성 장치는,i=1, …, LKP(LKP는 1 이상의 정수)의 각 정수 i에 대한 변수 ρKP(i)로서, 식별 정보 t(t=1, …, dKP의 어느 하나의 정수)와, 속성 벡터 v→iKP:=(vi,i'KP)(i'=1, …, ntKP, ntKP는 1 이상의 정수)의 긍정형의 조(tuple) (t, v→iKP) 또는 부정형의 조 ￢(t, v→iKP)의 어느 하나인 변수 ρKP(i)와, LKP행 rKP열(rKP는 1 이상의 정수)의 소정의 행렬 MKP를 입력하는 제 1 KP 정보 입력부와,t=1, …, dCP의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x→tCP:=(xt,i'CP)(i'=1, …, ntCP, ntCP는 1 이상의 정수)를 갖는 속성 집합 ΓCP를 입력하는 제 1 CP 정보 입력부와,기저 B*0의 기저 벡터 b*0,p(p는 소정의 값)의 계수로서 값 -s0KP(s0KP:=h→KPㆍ(f→KP)T, h→KP 및 f→KP는 rKP개의 요소를 갖는 벡터)를 설정하고, 기저 벡터 b*0,p'(p'는 상기 p와는 다른 소정의 값)의 계수로서 난수 δCP를 설정하고, 기저 벡터 b*0,q(q는 상기 p 및 상기 p'와는 다른 소정의 값)의 계수로서 소정의 값 κ를 설정하여 요소 k*0을 생성하는 주 복호 키 생성부와,상기 f→KP와, 상기 제 1 KP 정보 입력부가 입력한 행렬 MKP에 근거하여 생성되는 열 벡터 (s→KP)T:=(s1KP, …, siKP)T:=MKPㆍ(f→KP)T(i=LKP)와, 난수 θiKP(i=1, …, LKP)에 근거하여, i=1, …, LKP의 각 정수 i에 대한 요소 k*iKP를 생성하는 KP 복호 키 생성부로서, i=1, …, LKP의 각 정수 i에 대하여, 변수 ρKP(i)가 긍정형의 조 (t, v→iKP)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 B*tKP의 기저 벡터 b*t,1KP의 계수로서 siKP+θiKPvi,1KP를 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, ntKP의 각 정수 i'가 나타내는 기저 벡터 b*t,i'KP의 계수로서 θiKPvi,i'KP를 설정하여 요소 k*iKP를 생성하고, 변수 ρKP(i)가 부정형의 조 ￢(t, v→iKP)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, ntKP의 각 정수 i'가 나타내는 기저 벡터 b*t,i'KP의 계수로서 siKPvi,i'KP를 설정하여 요소 k*iKP를 생성하는 KP 복호 키 생성부와,상기 제 1 CP 정보 입력부가 입력한 속성 집합 ΓCP에 포함되는 각 식별 정보 t에 대한 요소 k*tCP를 생성하는 CP 복호 키 생성부로서, 기저 B*tCP의 기저 벡터 b*t,i'CP(i'=1, …, ntCP)의 계수로서 상기 난수 δCP배 한 xt,i'CP를 설정하여 요소 k*tCP를 생성하는 CP 복호 키 생성부를 구비하고,상기 암호화 장치는,t=1, …, dKP의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x→tKP:=(xt,i'KP)(i'=1, …, ntKP)를 갖는 속성 집합 ΓKP를 입력하는 제 2 KP 정보 입력부와,i=1, …, LCP(LCP는 1 이상의 정수)의 각 정수 i에 대한 변수 ρCP(i)로서, 식별 정보 t(t=1, …, dCP의 어느 하나의 정수)와, 속성 벡터 v→iCP:=(vi,i'CP)(i'=1, …, ntCP)의 긍정형의 조 (t, v→iCP) 또는 부정형의 조 ￢(t, v→iCP)의 어느 하나인 변수 ρCP(i)와, LCP행 rCP열(rCP는 1 이상의 정수)의 소정의 행렬 MCP를 입력하는 제 2 CP 정보 입력부와,기저 B0의 기저 벡터 b0,p의 계수로서 난수 ωKP를 설정하고, 기저 벡터 b0,p'의 계수로서 값 -s0CP(s0CP:=h→CPㆍ(f→CP)T, h→CP 및 f→CP는 rCP개의 요소를 갖는 벡터)를 설정하고, 기저 벡터 b0,q의 계수로서 난수 ζ를 설정하여 요소 c0을 생성하는 주 암호화 데이터 생성부와,상기 제 2 KP 정보 입력부가 입력한 속성 집합 ΓKP에 포함되는 각 식별 정보 t에 대한 요소 ctKP를 생성하는 KP 암호화 데이터 생성부로서, 기저 BtKP의 기저 벡터 bt,i'KP(i'=1, …, nt)의 계수로서 상기 난수 ωKP배 한 xt,i'KP를 설정하여 요소 ctKP를 생성하는 KP 암호화 데이터 생성부와,상기 f→CP와, 상기 제 2 CP 정보 입력부가 입력한 행렬 MCP에 근거하여 생성되는 열 벡터 (s→CP)T:=(s1CP, …, siCP)T:=MCPㆍ(f→CP)T(i=LCP)와, 난수 θiCP(i=1, …, LCP)에 근거하여, i=1, …, LCP의 각 정수 i에 대한 요소 ciCP를 생성하는 CP 암호화 데이터 생성부로서, i=1, …, LCP의 각 정수 i에 대하여, 변수 ρCP(i)가 긍정형의 조 (t, v→iCP)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 BtCP의 기저 벡터 bt,1CP의 계수로서 siCP+θiCPvi,1CP를 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, ntCP의 각 정수 i'가 나타내는 기저 벡터 bt,i'CP의 계수로서 θiCPvi,i'CP를 설정하여 요소 ciCP를 생성하고, 변수 ρCP(i)가 부정형의 조 ￢(t, v→iCP)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, ntCP의 각 정수 i'가 나타내는 기저 벡터 bt,i'CP의 계수로서 siCPvi,i'CP를 설정하여 요소 ciCP를 생성하는 CP 암호화 데이터 생성부를 구비하고,상기 복호 장치는,상기 주 암호화 데이터 생성부가 생성한 요소 c0과, 상기 KP 암호화 데이터 생성부가 생성한 요소 ctKP와, 상기 CP 암호화 데이터 생성부가 생성한 요소 ciCP와, 상기 속성 집합 ΓKP와, 상기 변수 ρCP(i)를 포함하는 암호화 데이터 ct(ΓKP, SCP)를 취득하는 데이터 취득부와,상기 주 복호 키 생성부가 생성한 요소 k*0과, 상기 KP 복호 키 생성부가 생성한 요소 k*iKP와, 상기 CP 복호 키 생성부가 생성한 요소 k*tCP와, 상기 변수 ρKP(i)와, 상기 속성 집합 ΓCP를 포함하는 복호 키 sk(SKP, ΓCP)를 취득하는 복호 키 취득부와,상기 데이터 취득부가 취득한 암호화 데이터 ct(ΓKP, SCP)에 포함되는 속성 집합 ΓKP와, 상기 복호 키 취득부가 취득한 복호 키 sk(SKP, ΓCP)에 포함되는 변수 ρKP(i)에 근거하여, i=1, …, LKP의 각 정수 i 중, 변수 ρKP(i)가 긍정형의 조 (t, v→iKP)이고, 또한, 그 조의 v→iKP와, 그 조의 식별 정보 t가 나타내는 ΓKP에 포함되는 x→tKP의 내적이 0이 되는 i와, 변수 ρKP(i)가 부정형의 조 ￢(t, v→iKP)이고, 또한, 그 조의 v→iKP와, 그 조의 식별 정보 t가 나타내는 ΓKP에 포함되는 x→tKP의 내적이 0이 되지 않는 i의 집합 IKP를 특정함과 아울러, 특정한 집합 IKP에 포함되는 i에 대하여, αiKPMiKP를 합계한 경우에 상기 h→KP가 되는 보완 계수 αiKP를 계산하는 KP 보완 계수 계산부와,상기 암호화 데이터 ct(ΓKP, SCP)에 포함되는 i=1, …, LCP의 각 정수 i에 대한 변수 ρCP(i)와, 상기 복호 키 sk(SKP, ΓCP)에 포함되는 속성 집합 ΓCP에 근거하여, i=1, …, LCP의 각 정수 i 중, 변수 ρCP(i)가 긍정형의 조 (t, v→iCP)이고, 또한, 그 조의 v→iCP와, 그 조의 식별 정보 t가 나타내는 ΓCP에 포함되는 x→tCP의 내적이 0이 되는 i와, 변수 ρCP(i)가 부정형의 조 ￢(t, v→iCP)이고, 또한, 그 조의 v→iCP와, 그 조의 식별 정보 t가 나타내는 ΓCP에 포함되는 x→tCP의 내적이 0이 되지 않는 i의 집합 ICP를 특정함과 아울러, 특정한 집합 ICP에 포함되는 i에 대하여, αiCPMiCP를 합계한 경우에 상기 h→CP가 되는 보완 계수 αiCP를 계산하는 CP 보완 계수 계산부와,상기 암호화 데이터 ct(ΓKP, SCP)에 포함되는 요소 c0과 요소 ctKP와 요소 ciCP와, 상기 복호 키 sk(SKP, ΓCP)에 포함되는 요소 k*0과 요소 k*iKP와 요소 k*tCP에 대하여, 상기 KP 보완 계수 계산부가 특정한 집합 IKP와, 상기 KP 보완 계수 계산부가 계산한 보완 계수 αiKP와, 상기 CP 보완 계수 계산부가 특정한 집합 ICP와, 상기 CP 보완 계수 계산부가 계산한 보완 계수 αiCP에 근거하여, 수학식 1에 나타내는 페어링 연산을 행하여 값 K를 계산하는 페어링 연산부를 구비하는 것을 특징으로 하는 암호 처리 시스템.[수학식 1]