KR20090089313A - 정보처리 장치 - Google Patents

정보처리 장치 Download PDF

Info

Publication number
KR20090089313A
KR20090089313A KR1020097009871A KR20097009871A KR20090089313A KR 20090089313 A KR20090089313 A KR 20090089313A KR 1020097009871 A KR1020097009871 A KR 1020097009871A KR 20097009871 A KR20097009871 A KR 20097009871A KR 20090089313 A KR20090089313 A KR 20090089313A
Authority
KR
South Korea
Prior art keywords
frankincense
key
horizontal coordinate
point
graph
Prior art date
Application number
KR1020097009871A
Other languages
English (en)
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
Priority claimed from JP2006310182A external-priority patent/JP2008131072A/ja
Priority claimed from JP2006310226A external-priority patent/JP2008131079A/ja
Application filed by 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20090089313A publication Critical patent/KR20090089313A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/0822Key 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) using key encryption key
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

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

Abstract

유저가 보관 유지해야 할 키 수를 줄이는 것이 가능한 정보처리 장치, 단말장치, 정보처리 방법, 키 생성 방법, 및 프로그램에 관하여, 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 도출하는 암호키 생성 논리를 표현한 유향 그래프를 생성하는 것이 가능한 정보처리 장치를 제공하는 것을 목적으로 한다. 이 기술은, 유저 단말의 집합을 복수의 부분집합으로 나누고, 각 부분집합에 세트키 및 중간키를 할당하여, 어느 부분집합에 대응 지어진 중간키가 입력되면, 그 부분집합에 대응하는 세트키와 유향지로 관련 붙여진 부분집합에 대응하는 중간키를 출력하는 방식에 관한 것이다. 또한, 소정의 치환 규칙에 의거하여, 유향 그래프에 포함되는 유향지를 보다 짧은 유향지로 치환하는 기술에 관한 것이다. 이 기술은, 각 유저가 보관 유지해야 할 중간키의 키 수를 줄이는 효과를 기대하는 것이다.

Description

정보처리 장치{Information processing device}
본 발명은, 정보처리 장치, 단말장치, 정보처리 방법, 키 생성 방법, 및 프로그램에 관한 것이다.
최근, 네트워크 등을 통한 콘텐츠 배분에 관한 암호화 기술의 발전에 매우 큰 관심이 모여지고 있다. 그 중에서도, 암호화된 콘텐츠를 복호하기 위한 암호키를 보다 안전하고도 효율적으로 배분하는 방법에 관하여 특히 주목이 집중되고 있다. 통상, 암호화된 콘텐츠를 배분하는 1명의 배분자에 대하여, 정당한 수신권을 가지는 n(n은 2 이상의 자연수)명의 수신자가 존재하고, 네트워크상에 존재하는 무수한 감청자 중에서, 해당 n명의 수신자만이, 암호화된 콘텐츠를 복호할 수 있는 구조가 필요로 된다. 또한, 상기의 정당한 수신권을 가지는 수신자 수(n)가 시간과 함께 변화하기 때문에, 수신자를 요소로 하는 집합의 변화에 대하여 플렉서블하게 대응할 수 있는 구조가 요구된다.
또, 당연한 일이면서, 이러한 구조를 실현함에 있어서, 배분자 측에는, 암호키의 생성, 보관 유지, 배분, 및 콘텐츠의 암호화 등에 관한 처리부하가 발생하고, 수신자에게는, 복호키의 보관 유지, 수신, 및 콘텐츠의 복호 등에 관한 처리부하가 발생한다. 확실히, 최근에는, 정보처리 기기가 가지는 연산 처리 능력 및 기억 용량 등의 향상, 정보 전송 경로가 가지는 통신 속도의 향상 등의 여러 가지의 기술적 발전에 유지지탱되어, 상기의 암호 배분 처리부하에 걸리는 부하가 상대적으로 저감하고 있다. 그러나, 콘텐츠 배분 서비스의 수요자가 극적으로 증가하고 있는 점에서, 숙달한 악의의 감청자에게 대항 가능할 만큼의 높은 견고성을 가진 암호화 기술이 요구되기 때문에, 더욱더 암호 배분에 수반하는 처리부하가 증가해 버린다.
이러한 상황에 있어서, 동보(同報) 통신로를 이용하여, 배분자가 임의로 선택한 수신자의 그룹에 정보를 안전하게 송신하는 수법으로서 revocation scheme이나 broadcast encryption scheme 등의 방식이 제안되고 있다. 이 중 broadcast encryption scheme의 일례로서, 이하의 비 특허문헌 1에 개시되어 있는 암호키 배분 방식이 있고, 이 방식의 특징은, 종래의 계층화 트리(tree) 구조를 이용한 키 배분 방식으로부터 더욱, 키의 도출 경로를 개량한 점에 있다. 즉, 이 방식으로는, 수신자의 집합을 복수의 부분집합으로 나누어 생각하지만, 어느 부분집합에 해당 부분집합에 포함되지 않는 수신자를 더하여 새로운 부분집합을 만들고, 이것을 반복함으로써 부분집합의 사슬을 만들고, 각각의 부분집합에 대응하는 암호키를 사슬에 따라 도출한다. 이것에 의해, 수신자가 보관 유지해야 할 키 수, 암호키를 생성하기 위한 계산량, 및 키 배분에 관계되는 통신량을 줄이는 것이 가능하다.
[비 특허문헌 1] Nuttapong Attrapadung and Hideki Imai, "Subset Incremental Chain Based Broadcast Encryption with Shorter Ciphertext", The 28th Symposium on Information Theory and Its Applications(SITA2005)
확실히, 상기의 비 특허문헌 1의 암호키 배분 방식에는, 종래의 CS방식(Complete Subtree scheme)이나 SD방식(Subset Difference scheme) 등의 키 배분 방식과 비교하면 큰 어드밴티지가 있었다. 그러나, 실시를 상정한 실제적인 관점에서 보면, 수신자 수가 많을 경우에는, 수신자 측의 단말장치에서 보관 유지해야 할 키 수, 및 콘텐츠 복호에 필요로 하는 계산량이, 여전히 크다고 하는 문제를 가지고 있었다.
그래서, 본 발명은, 상기 문제를 감안하여 이루어진 것이며, 본 발명의 목적으로 하는 바는, 수신자 측의 단말장치에서 보관 유지해야 할 키 수를 줄이는 것이 가능한, 신규이면서도 개량된 정보처리 장치, 단말장치, 정보처리 방법, 키 생성 방법, 및 프로그램을 제공하는 것에 있다.
상기 과제를 해결하기 위하여, 본 발명이 어느 관점에 의하면, 복수의 유향지(有向枝)로 구성되는 가유향(假有向) 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환함으로써 생성된 유향(有向) 그래프를 취득하는 유향 그래프 취득부와, 유향 그래프 취득부에 의해 취득된 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치가 제공된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 어느 관점에 의하면, 번호 (1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조에 대해, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중에서 좌단(左端)에 위치하는 잎 노드의 번호가 lv, 그리고 우단(右端)에 위치하는 잎 노드의 번호가 rv로 정의되어 있으며, 또한, 자연수(i 및 j(i≤j))에 대하여, 집합(i→j)이 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}로 표기되고, 집합(i←j)이 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 표기되는 것으로 가정되어 있고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 뿌리 노드에 대응 지어진 제1 수평좌표축이 설정되고, 또, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 뿌리 노드에 대응 지어진 제2 수평좌표축이 설정되어 있고, 또한, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제3 수평좌표축이 설정되고, 그리고 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제4 수평좌표축이 설정된 점에 있어서, 소정의 정수(k)에 대해, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)에 따라 길이 ni /k(i=0, 1,... x-1)을 가지는 복수의 유향지를 제1~4 수평좌표축 상에 배치하여 형성된 가유향 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환하여 생성된 유향 그래프를 취득하는 유향 그래프 취득부와, 유향 그래프 취득부가 취득한 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치가 제공된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 어느 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분(分) 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하는 트리 구조 설정부를 갖추는 것을 특징으로 하고,
또한, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 제2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가(假)좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하는 좌표축 설정부를 갖추는 것을 특징으로 하며,
또한, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스(path)를 형성하고, ni/k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성부를 갖추는 것을 특징으로 하고,
또한, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정부를 갖추는 것을 특징으로 하며,
또한, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성부를 갖추는 것을 특징으로 하는 정보처리 장치가 제공된다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(user)(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 증가시키지 않고, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기의 최장 유향 패스 결정부는, 집합(1→n), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프 중, 최장 유향 패스를 포함하지 않는 각 가유향 그래프에 대하여, 가유향 그래프마다 최장 유향 패스를 결정해도 좋다. 또한, 상기의 유향 그래프 생성부는, 각 가유향 그래프에 대해, 각 유향 패스의 유향지 수가 가유향 그래프마다 최장 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하여도 좋다.
또한, 상기의 정보처리 장치는, 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 생성부를 갖추어도 좋다.
또, 상기의 키 생성부는, 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 세트키 k(S)와, 해당 좌표점(S)을 시점으로 하는 유향지의 종점의 좌표점(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력해도 좋다.
또, 상기의 키 생성부는, 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하도록 해도 좋다.
또한, 상기의 정보처리 장치는, 각 유향 그래프의 시점에 대응하는 중간키로서 소정의 난수를 설정하는 초기 중간키 설정부를 갖추어도 좋다.
또한, 상기의 정보처리 장치는, 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 암호화하는 암호화부를 갖추어도 좋다.
또한, 상기의 정보처리 장치는, 트리 구조를 구성하는 잎 노드(1~n)의 일부 또는 전부에 각각 대응 지어진 단말장치에 대해, 암호화부에 의해 암호화된 콘텐츠 또는 콘텐츠 키를 송신하는 송신부를 갖추어도 좋다.
또, 상기의 유향 그래프 생성부는, 각 유향 패스의 종점 방향을 향하여, 보다 짧은 유향지가 배치되도록 가유향 그래프의 유향지를 치환하여도 좋다.
또한, 상기의 정보처리 장치는, 트리 구조를 구성하는 잎 노드(1~n)의 부분집합을 Si라고 정의했을 때에, 세트키 또는 콘텐츠 키로 암호화된 콘텐츠의 복호를 허가하는 단말장치의 집합(N\R)을 결정하고, 집합(N\R)=S1∪S2∪···∪Sm을 만족시키는 m개의 부분집합(S1~Sm)을 결정하는 부분집합 결정부를 갖추어도 좋다.
또, 상기의 부분집합 결정부는, m이 최소가 되도록 , 부분집합(S1~Sm)을 결정해도 좋다.
또한, 상기의 정보처리 장치는, 집합(N\R)을 나타내는 정보, 또는, 집합(N\R)을 구성하는 부분집합(S1~Sm)을 나타내는 정보를, 단말장치에 송신하는 송신부를 갖추어도 좋다.
또한, 상기의 정보처리 장치는, 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 복호하는 복호부를 갖추고 있어도 좋다.
또한, 상기의 정보처리 장치는, 소정의 2분 트리 구조를 구성하는 잎 노드(1~n)(n은 자연수)의 하나 이상으로 대응 지어지고, 세트키를 이용하여 암호화된 콘텐츠 또는 콘텐츠 키를 수신하는 수신부를 더 갖추고 있어도 좋다.
수신부가 수신하는 암호화된 콘텐츠 또는 콘텐츠 키는, 잎 노드(1~n)의 부분집합으로서 정의된 집합(Si) 중에서, 자신에게 대응 지어진 잎 노드를 포함하는 집합(S)의 요소인 잎 노드에 대응 지어진 1개 이상의 정보처리 장치가 복호 가능해도 좋다.
또, 상기 과제를 해결하기 위하여, 본 발명의 다른 관점에 의하면, 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 단말장치가 제공된다.
상기의 단말장치가 참조하는 유향 그래프는, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과 제2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하고, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측 방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측 방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환함으로써 얻어지는 것이다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 증가시키지 않고, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또한, 상기의 단말장치는, 세트키를 이용하여, 암호화된 콘텐츠 또는 콘텐츠 키를 복호하는 복호부를 갖추고 있어도 좋다.
또, 상기의 키 생성부는, 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 세트키 k(S)와, 해당 좌표점을 시점으로 하는 유향지의 종점의 좌표점에 대응하는 부분집합(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력해도 좋다.
또, 상기의 키 생성부는, 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하도록 해도 좋다.
또, 상기의 복호부는, 세트키를 이용하여, 암호화된 콘텐츠 키를 복호하고, 해당 복호된 콘텐츠 키를 이용하여, 암호화된 콘텐츠를 복호해도 좋다.
또한, 상기의 단말장치는, 트리 구조의 잎 노드(1~n)의 부분집합을 Si라고 정의했을 때에, 세트키 또는 콘텐츠 키로 암호화된 콘텐츠의 복호를 허가하는 단말장치의 집합(N\R)이 결정되고, 집합(N\R)=S1∪S2∪···∪Sm을 만족시키는 m개의 부분집합(S1~Sm)이 결정되고, 집합(N\R)을 나타내는 정보, 또는, 집합(N\R)을 구성하는 부분집합(S1~Sm)을 나타내는 정보를 수신했을 경우에, 단말장치는, 수신한 정보에 의거하여, 해당 단말장치가 부분집합(S1~Sm)의 어느 쪽인가에 속하고 있는지 아닌지 판단하고, 해당 판단 결과에 의거하여, 암호화된 콘텐츠의 복호가 허가되어 있는지 아닌지를 판단하는 판단부를 갖추고 있어도 좋다.
또, 상기의 복호부는, 단말장치가 부분집합(S1~Sm)의 어느 쪽인가에 속하고 있다고 판단되었을 경우에, 해당 단말장치가 속하는 부분집합에 대응한 세트키를 이용하여, 콘텐츠 또는 콘텐츠 키를 복호해도 좋다.
또, 상기 과제를 해결하기 위하여, 본 발명의 더 다른 관점에 의하면, 복수의 유향지로 구성되는 가유향 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환함으로써 생성된 유향 그래프를 취득하는 유향 그래프 취득 스텝과, 유향 그래프 취득부에 의해 취득된 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법이 제공된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조에 대해, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중에서 좌단에 위치하는 잎 노드의 번호가 lv, 그리고 우단에 위치하는 잎 노드의 번호가 rv라고 정의되어 있고, 또한, 자연수(i 및 j(i≤j))에 대하여, 집합(i→j)이 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}로 표기되고, 집합(i←j)이 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 표기되는 것으로 가정되어 있고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 뿌리 노드에 대응 지어진 제1 수평좌표축이 설정되고, 또, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 뿌리 노드에 대응 지어진 제2 수평좌표축이 설정되어 있고, 또한, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제3 수평좌표축이 설정되고, 그리고 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제4 수평좌표축이 설정되고나서, 소정의 정수(k)에 대해, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)에 따라 길이 ni /k(i=0, 1,... x-1)을 가지는 복수의 유향지를 제1~4 수평좌표축 상에 배치하여 형성된 가유향 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환하여 생성된 유향 그래프를 취득하는 유향 그래프 취득 스텝과, 유향 그래프 취득부가 취득한 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법이 제공된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하는 트리 구조 설정 스텝과,
집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 제2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하는 좌표축 설정 스텝과,
소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서, 제1 수평좌표축 및 제3 수평좌표축 상의 가좌표점을 포함하는 각 좌표점에 대하여, 해당 각 좌표점으로부터 ni /k(i=0~x-1) 개 떨어진 좌표점으로 향하여 우측방향의 유향지를 설정하고, 제2 수평좌표축 및 제4 수평좌표축 상의 가좌표점을 포함하는 각 좌표점에 대하여, 해당 각 좌표점으로부터 ni /k(i=0~x-1) 개 떨어진 좌표점으로 향하여 좌측방향의 유향지를 설정하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성 스텝과,
연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정 스텝과,
각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법이 제공된다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 증가시키지 않고, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 키 생성 방법이 제공된다.
상기의 키 생성 방법에 이용되는 유향 그래프는, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 제2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하고, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환함으로써 얻어지는 것이다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 증가시키지 않고, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하는 트리 구조 설정 기능과,
집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 제2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하는 좌표축 설정 기능과,
소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성 기능과,
연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정 기능과,
각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성 기능을 컴퓨터에 실현시키기 위한 프로그램이 제공된다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 증가시키지 않고, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성 기능을 컴퓨터에 실현시키기 위한 프로그램이 제공된다.
상기의 프로그램에 관계되는 유향 그래프는, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 제2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하고, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환함으로써 얻어지는 것이다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 증가시키지 않고, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또한, 상기 과제를 해결하기 위하여, 본 발명의 어느 관점에 의하면, 복수의 유향지로 구성되는 가유향 그래프에 대해, 해당 가유향 그래프를 구성하는 복수의 유향지 중에서 보다 긴 유향지를 남기고나서, 해당 남긴 유향지 중에서 적어도 1개의 유향지를 보다 짧은 유향지로 치환함으로써 생성된 유향 그래프를 취득하는 유향 그래프 취득부와, 유향 그래프 취득부에 의해 취득된 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치가 제공된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 어느 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조에 대해, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중에서 좌단에 위치하는 잎 노드의 번호가 lv, 그리고 우단에 위치하는 잎 노드의 번호가 rv로 정의되어 있고, 또한, 자연수(i 및 j(i≤j))에 대하여, 집합(i→j)이 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}로 표기되고, 집합(i←j)이 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 표기되는 것으로 가정되어 있고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 뿌리 노드에 대응 지어진 제1 수평좌표축이 설정되고, 또, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 뿌리 노드에 대응 지어진 제2 수평좌표축이 설정되어 있고, 또한, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제3 수평좌표축이 설정되고, 또, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제4 수평좌표축이 설정되고나서, 소정의 정수(k)에 대해, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)에 따라 길이 ni /k(i=0, 1,... x-1)을 가지는 복수의 유향지를 제1~4 수평좌표축 상에 배치하여 형성된 가유향 그래프를 처리하는 정보처리 장치이며, 가유향 그래프를 취득하는 가유향 그래프 취득부와, 가유향 그래프 취득부에 의해 취득된 가유향 그래프를 구성하는 복수의 유향지 중에서, 보다 긴 유향지를 남겨 유향 그래프를 생성하는 유향 그래프 생성부와, 유향 그래프를 구성하는 복수의 유향지 중에서, 연속하는 유향지의 최대수를 결정하는 최장 유향 패스 결정부와, 연속하는 유향지의 최대수를 넘지 않도록, 유향 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환하여 유향 그래프를 재구성하는 유향지 치환부와, 유향지 치환부에 의해 재구성된 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치가 제공된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 어느 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하는 트리 구조 설정부와,
집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하는 좌표축 설정부와,
소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상에 있는 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성부와,
연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정부와,
각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성부를 갖추는 것을 특징으로 하는 정보처리 장치가 제공된다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 저감시키는 동시에, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기의 최장 유향 패스 결정부는, 집합(1→n), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프 중, 최장 유향 패스를 포함하지 않는 각 가유향 그래프에 대하여, 가유향 그래프마다 최장 유향 패스를 결정해도 좋다. 또한, 상기의 유향 그래프 생성부는, 각 가유향 그래프에 대해, 각 유향 패스의 유향지 수가 가유향 그래프마다 최장 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하여도 좋다.
또한, 상기의 정보처리 장치는, 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 생성부를 갖추고 있어도 좋다.
또한, 상기의 키 생성부는, 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 세트키 k(S)와, 해당 좌표점(S)을 시점으로 하는 유향지의 종점의 좌표점(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력하도록 해도 좋다.
또, 상기의 키 생성부는, 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하도록 해도 좋다.
또한, 상기의 정보처리 장치는, 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 암호화하는 암호화부를 갖추어도 좋다.
또한, 상기의 정보처리 장치는, 트리 구조를 구성하는 잎 노드(1~n)의 일부 또는 전부에 각각 대응 지어진 단말장치에 대해, 암호화부에 의해 암호화된 콘텐츠 또는 콘텐츠 키를 송신하는 송신부를 갖추고 있어도 좋다.
또, 상기의 유향 그래프 생성부는, 각 유향 패스의 종점 방향을 향하여, 보다 짧은 유향지가 배치되도록 가유향 그래프의 유향지를 치환하여도 좋다.
또한, 상기의 정보처리 장치는, 트리 구조를 구성하는 잎 노드(1~n)의 부분집합을 Si로 정의했을 때에, 세트키 또는 콘텐츠 키로 암호화된 콘텐츠의 복호를 허가하는 단말장치의 집합(N\R)을 결정하고, 집합(N\R)=S1∪S2∪···∪Sm을 만족시키는 m개의 부분집합(S1~Sm)을, m이 최소가 되도록 결정하는 부분집합 결정부를 갖추고 있어도 좋다.
또한, 상기의 정보처리 장치는, 집합(N\R)을 나타내는 정보, 또는, 집합(N\R)을 구성하는 부분집합(S1~Sm)을 나타내는 정보를, 단말장치에 송신하는 송신부를 갖추어도 좋다.
또한, 상기의 정보처리 장치는, 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 복호하는 복호부를 갖추어도 좋다.
또한, 상기의 정보처리 장치는, 소정의 2분 트리 구조를 구성하는 잎 노드(1~n)(n은 자연수)의 1개 이상에 대응 지어지고, 세트키를 이용하여 암호화된 콘텐츠 또는 콘텐츠 키를 수신하는 수신부를 갖추어도 좋다.
수신부가 수신하는 암호화된 콘텐츠 또는 콘텐츠 키는, 잎 노드(1~n)의 부분집합으로서 정의된 집합(Si) 중에서, 자신에게 대응 지어진 잎 노드를 포함하는 집합(S)의 요소인 잎 노드에 대응 지어진 1개 이상의 정보처리 장치가 복호 가능해도 좋다.
또, 상기 과제를 해결하기 위하여, 본 발명의 다른 관점에 의하면, 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는, 단말장치가 제공된다. 상기의 유향 그래프는, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하고, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상에 있는 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 얻어진다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 저감시키는 동시에, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기의 키 생성부는, 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 세트키 k(S)와, 해당 좌표점을 시점으로 하는 유향지의 종점의 좌표점에 대응하는 부분집합(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력해도 좋다.
또, 상기의 키 생성부는, 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하도록 해도 좋다.
또한, 상기의 단말장치는, 세트키를 이용하여, 암호화된 콘텐츠 키를 복호하고, 해당 복호된 콘텐츠 키를 이용하여, 암호화된 콘텐츠를 복호하는 복호부를 갖추고 있어도 좋다.
또한, 상기의 단말장치는, 트리 구조의 잎 노드(1~n)의 부분집합을 Si라고 정의했을 때에, 세트키 또는 콘텐츠 키로 암호화된 콘텐츠의 복호를 허가하는 단말장치의 집합(N\R)이 결정되고, 집합(N\R)=S1∪S2∪···∪Sm을 만족시키는 m개의 부분집합(S1~Sm)이 결정되고, 집합(N\R)을 나타내는 정보, 또는, 집합(N\R)을 구성하는 부분집합(S1~Sm)을 나타내는 정보를 수신했을 경우에, 단말장치는, 수신한 정보에 의거하여, 해당 단말장치가 부분집합(S1~Sm)의 어느 쪽인가에 속하고 있는지 아닌지 판단하고, 해당 판단 결과에 의거하여, 암호화된 콘텐츠의 복호가 허가되고 있는지 아닌지를 판단하는 판단부를 갖추고 있어도 좋다. 또, 상기의 복호부는, 단말장치가 부분집합(S1~Sm)의 어느 쪽인가에 속하고 있다고 판단되었을 경우에, 해당 단말장치가 속하는 부분집합에 대응한 세트키를 이용하여, 콘텐츠 또는 콘텐츠 키를 복호해도 좋다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 복수의 유향지로 구성되는 가유향 그래프에 대해, 해당 가유향 그래프를 구성하는 복수의 유향지 중에서 보다 긴 유향지를 남기고나서, 해당 남긴 유향지 중에서 적어도 1개의 유향지를 보다 짧은 유향지로 치환함으로써 생성된 유향 그래프를 취득하는 유향 그래프 취득 스텝과, 유향 그래프 취득부에 의해 취득된 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법이 제공된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조에 대해, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중에서 좌단에 위치하는 잎 노드의 번호가 lv, 그리고 우단에 위치하는 잎 노드의 번호가 rv로 정의되어 있고, 또한, 자연수(i 및 j(i≤j))에 대하여, 집합(i→j)이 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}로 표기되고, 집합(i←j)이 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 표기되는 것으로 가정되어 있고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 뿌리 노드에 대응 지어진 제1 수평좌표축이 설정되고, 또, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 뿌리 노드에 대응 지어진 제2 수평좌표축이 설정되어 있고, 또한, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제3 수평좌표축이 설정되고, 또, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제4 수평좌표축이 설정되고나서, 소정의 정수(k)에 대해, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)에 따라 길이 ni /k(i=0, 1,... x-1)을 가지는 복수의 유향지를 제1~4 수평좌표축 상에 배치하여 형성된 가유향 그래프를 처리하는 정보처리 방법이며, 가유향 그래프를 취득하는 가유향 그래프 취득 스텝과, 가유향 그래프 취득부에 의해 취득된 가유향 그래프를 구성하는 복수의 유향지 중에서, 보다 긴 유향지를 남겨 유향 그래프를 생성하는 유향 그래프 생성 스텝과, 유향 그래프를 구성하는 복수의 유향지 중에서, 연속하는 유향지의 최대수를 결정하는 최장 유향 패스 결정 스텝과, 연속하는 유향지의 최대수를 넘지 않도록, 유향 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환하여 유향 그래프를 재구성하는 유향지치환 스텝과, 유향지치환부에 의해 재구성된 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법이 제공된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하는 트리 구조 설정 스텝과, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하는 좌표축 설정 스텝과, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상에 있는 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성 스텝과, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정 스텝과, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법이 제공된다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 저감시키는 동시에, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 다른 관점에 의하면, 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 키 배분 방법이 제공된다. 상기의 유향 그래프는, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하고, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상에 있는 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 얻어지는 것이다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 저감시키는 동시에, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하는 트리 구조 설정 기능과, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하는 좌표축 설정 기능과, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상에 있는 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성 기능과, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정 기능과, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성 기능을 컴퓨터에 실현시키기 위한 프로그램이 제공된다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 저감시키는 동시에, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
또, 상기 과제를 해결하기 위하여, 본 발명의 또 다른 관점에 의하면, 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성 기능을 컴퓨터에 실현시키기 위한 프로그램이 제공된다. 상기의 유향 그래프는, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 뿌리 노드 및 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 잎 노드 중, 좌단에 위치하는 잎 노드의 번호를 lv, 우단에 위치하는 잎 노드의 번호를 rv로 설정하고, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제1 수평좌표축과, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 뿌리 노드에 대응하는 제2 수평좌표축과, 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고, 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하고, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외하고, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상에 있는 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 얻어지는 것이다.
이와 같이, 중간키 및 세트키를 이용한 암호키 배분 방식에 있어서, 상기의 유향 그래프에 의거한 중간키의 배분, 또는 세트키의 생성이 가능하게 되는 것으로, 배분된 암호 정보를 복호할 때에, 각 유저(단말장치)가 복호용의 키를 생성하기 위하여 필요한 계산량의 최악치를 저감시키는 동시에, 각 유저가 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.
그 때문에, 상기의 기술을 적용하면, 수신자 측의 단말장치에서 보관 유지해야 할 키 수를 줄이면서, 암호키의 도출에 필요로 하는 계산량을 줄이는 것이 가능한, 신규이면서도 개량된 정보처리 장치, 단말장치, 정보처리 방법, 키 생성 방법, 또는 프로그램이 제공될 수 있다.
도 1은 본 발명의 한 실시형태에 관계되는 암호키 배분 시스템을 나타내는 설명도이다.
도 2는 동 실시형태에 관계되는 키 배분 서버 및 수신기의 구성을 나타내는 블럭도이다.
도 3은 기반(基盤) 방식에 관계되는 2분 트리 구조를 나타내는 설명도이다.
도 4는 기반 방식에 관계되는 유향 그래프를 나타내는 설명도이다.
도 5는 기반 방식에 관계되는 유향 그래프 산출 방법을 나타내는 흐름도이다.
도 6은 기반 방식에 관계되는 중간키 배분 방법을 나타내는 흐름도이다.
도 7은 기반 방식에 관계되는 세트키 생성 방법을 나타내는 흐름도이다.
도 8은 본 발명의 제1 실시형태에 관계되는 키 배분 서버 및 단말장치의 구성을 나타내는 블럭도이다.
도 9는 동 실시형태에 관계되는 유향 그래프 생성 방법의 기본 컨셉을 나타내는 설명도이다.
도 10은 동 실시형태에 관계되는 유향 그래프 생성 방법을 나타내는 흐름도이다.
도 11은 동 실시형태에 관계되는 (가)유향 그래프 생성 방법을 나타내는 흐름도이다.
도 12는 동 실시형태에 관계되는 유향 그래프 생성 방법(LP결정)을 나타내는 흐름도이다.
도 13은 동 실시형태에 관계되는 유향 그래프 생성 방법(PLP 결정)을 나타내는 흐름도이다.
도 14는 동 실시형태에 관계되는 유향 그래프 생성 방법을 나타내는 흐름도이다.
도 15는 동 실시형태에 관계되는 유향 그래프(k=6)의 일례를 나타내는 설명도이다.
도 16은 기반 방식에 관계되는 유향 그래프(k=3)의 일례를 나타내는 설명도이다.
도 17은 동 실시형태에 관계되는 유향 그래프(k=3)의 일례를 나타내는 설명도이다.
도 18은 기반 방식과 동 실시형태에 관계되는 키 배분 방식과의 비교를 나타낸 비교표이다.
도 19는 본 발명의 제2 실시형태에 관계되는 정보처리 장치 및 단말장치의 구성을 나타내는 블럭도이다.
도 20은 동 실시형태에 관계되는 가유향 그래프 생성 방법을 나타내는 흐름도이다.
도 21은 동 실시형태에 관계되는 가유향 그래프(k=6)의 일례를 나타내는 설명도이다.
도 22는 동 실시형태에 관계되는 유향 그래프 생성 방법의 개요를 나타내는 흐름도이다.
도 23은 동 실시형태에 관계되는 유향 그래프 생성 방법(LP결정)을 나타내는 흐름도이다.
도 24는 동 실시형태에 관계되는 유향 그래프 생성 방법(PLP 결정)을 나타내는 흐름도이다.
도 25는 동 실시형태에 관계되는 유향 그래프 생성 방법을 나타내는 흐름도이다.
도 26은 동 실시형태에 관계되는 유향 그래프(k=6)의 일례를 나타내는 설명도이다.
도 27은 기반 방식과 동 실시형태에 관계되는 키 배분 방식과의 비교를 나타낸 비교표이다.
도 28은 본 발명의 한 실시형태에 관계되는 암호키 배분 시스템의 한 응용 예를 나타낸 설명도이다.
도 29는 본 발명의 한 실시형태에 관계되는 암호키 배분 시스템의 한 응용 예를 나타낸 설명도이다.
<부호의 설명>
100 : 암호키 배분 시스템 102 : 키 배분 서버
104 : 트리 구조 설정부 106 : 좌표축 설정부
108 : 가유향 그래프 생성부 110 : 유향 그래프 생성부
112 : 초기 중간키 설정부 114 : 키 생성부
116 : 암호화부 118 : 송신부
120 : 부분집합 결정부 122 : 단말장치
124 : 수신부 126 : 판단부
128 : 키 생성부 130 : 복호부
202 : 컨트롤러 204 : 연산 유닛
206 : 입출력 인터페이스 208 : 시큐어 기억부
210 : 메인 기억부 212 : 네트워크 인터페이스
216 : 미디어 인터페이스 218 : 정보 미디어
152 : 키 배분 서버 154 : 트리 구조 설정부
156 : 좌표축 설정부 158 : 가유향 그래프 생성부
160 : 유향 그래프 생성부 162 : 초기 중간키 설정부
164 : 키 생성부 166 : 암호화부
168 : 송신부 170 : 부분집합 결정부
172 : 단말장치 174 : 수신부
176 : 판단부 178 : 키 생성부
180 : 복호부
이하에 첨부 도면을 참조하면서, 본 발명의 매우 적합한 실시형태에 대해 상세하게 설명한다. 또한, 본 명세서 및 도면에 있어서, 실질적으로 동일한 기능 구성을 가지는 구성요소에 대해서는, 동일한 부호를 붙임으로써 중복 설명을 생략한다. 또한, 표기상, 아래 첨자를 통상의 자체에 의해 표현하고 있는 부분이 있지만, 이것들은 같은 것이다. 예를 들면, BTR과 BTR과는 같은 것을 표현하고 있는 것에 주의해 주기 바란다.
<제1 실시형태>
[암호키 배분 시스템(100) 구성]
우선, 본 발명의 제1 실시형태에 관계되는 암호키 배분 시스템(100)의 구성에 대해 설명한다. 도 1은, 본 실시형태에 관계되는 암호키 배분 시스템(100)의 구성을 나타내는 설명도이다.
도 1을 참조하면, 암호키 배분 시스템(100)은, 본 실시형태에 관계되는 정보처리 장치의 일례로서 구성된 키 배분 서버(102)와, 복수의 유저가 각각 소유하는 복수의 단말장치(122)와, 이들의 키 배분 서버(102)와 단말장치(122)를 접속하는 네트워크로 구성된다.
상기의 네트워크는, 키 배분 서버(102)와 단말장치(122)를 쌍방향 통신 또는 한방향 통신 가능하게 접속하는 통신회선망이다. 이 네트워크는, 예를 들면, 인터넷, 전화 회선망, 위성통신망, 동보(同報) 통신로 등의 공중회선망이나, WAN(Wide Area Network), LAN(Local Area Network), IP-VPN(Internet Protocol-Virtual Private Network), 무선 LAN 등의 전용회선망 등으로 구성되어 있고, 유선/무선을 묻지 않는다.
키 배분 서버(102)는, 서버기능을 갖춘 컴퓨터 장치 등에서 구성되고, 네트워크를 통하여 각종의 정보를 외부 장치로 송신 가능하다. 예를 들면, 키 배분 서버(102)는, broadcast encryption scheme 방식의 암호키를 생성하여, 이 암호키를 단말장치(122)에 배분할 수 있다. 또, 본 실시형태에 관계되는 키 배분 서버(102)는, 영상 배분 서비스나, 전자 음악 배분 서비스 등의 콘텐츠 배분 서비스를 제공하는 콘텐츠 배분 서버로서의 기능을 구비하고 있고, 단말장치(122)에 콘텐츠 배분이 가능하다. 또한, 키 배분 서버(102)와 콘텐츠 배분 서버를 별도장치로서 구성하는 것도 물론 가능하다.
여기서, 콘텐츠는, 예를 들면, 영화, 텔레비전 프로그램, 비디오 프로그램, 도표 등의 동영상 또는 정지화면으로 이루어지는 영상(Video) 콘텐츠, 음악, 강연, 라디오 프로그램 등의 음성(Audio) 콘텐츠나, 게임 콘텐츠, 문서 콘텐츠, 소프트웨어 등, 임의의 콘텐츠 데이터여도 좋다. 영상 콘텐츠는, 영상 데이터뿐만 아니라, 음성 데이터를 포함하고 있어도 좋다.
단말장치(122)는, 네트워크를 통하여 외부 장치와 데이터 통신이 가능한 키 배분 서버이며, 각 유저에 의해 소유된다. 이 단말장치(122)는, 예를 들면, 도시와 같이 퍼스널 컴퓨터(Personal Computer;이하 「PC」라고 한다.) 등의 컴퓨터 장치(노트형, 데스크탑형을 묻지 않는다.)로 구성되지만, 이러한 예로 한정되지 않고, 네트워크를 통한 통신 기능을 가지는 기기이면, 예를 들면 PDA(Personal Digital Assistant), 가정용 게임기, DVD/HDD 리코더, 텔레비전 수상기 등의 정보 가전, 텔레비전 방송용의 튜너나 디코더 등으로 구성할 수도 있다. 또, 단말장치(122)는, 유저가 가지고 다닐 수 있는 휴대용 디바이스(Portabale Device), 예를 들면, 휴대형 게임기, 휴대 전화, 휴대형 영상/음성 player, PDA, PHS 등여도 좋다.
이 단말장치(122)는, 키 배분 서버(102)로부터 여러 가지의 정보를 수신할 수 있다. 예를 들면, 단말장치(122)는, 키 배분 서버(102)로부터 배분된 콘텐츠를 수신할 수 있다. 이 콘텐츠 배분시에는, 키 배분 서버(102)는, 여러 가지의 전자 데이터를 암호화하여 배분하는 것이 가능하다. 예를 들면, 키 배분 서버(102)는, 콘텐츠를 암호화하는 콘텐츠 키를 생성하여 배분하는 것이 가능하다. 이 콘텐츠 키는, 예를 들면, 의사 난수 생성기에 의해 산출된 난수(의사 난수), 소정의 문자열 또는 수열 등에 의해 표현되어 있어도 좋다. 그리고, 키 배분 서 버(102)는, 이 콘텐츠 키를 이용하여, 소정의 암호화 논리에 의해 콘텐츠를 암호화할 수 있다. 그리고, 키 배분 서버(102)는, 해당 콘텐츠 키 또는 콘텐츠 키에 대응하는 복호키를, 임의의 단말장치(122)에 대하여 배분하는 것이 가능하다. 한편, 단말장치(122)는, 키 배분 서버(102)로부터 수신한 해당 콘텐츠 키 또는 콘텐츠 키에 대응하는 복호키를 이용하여, 암호화된 콘텐츠를 복호할 수 있다.
또한, 콘텐츠 키를 생성하기 위하여 이용하는 의사 난수 생성기는, 소정의 배정치(seed value)를 입력함으로써, 긴 주기의 의사적인 난수열을 출력하는 것이 가능한 장치 또는 프로그램이며, 일반적으로, 선형 합동법(linear congruential method)이나 메르센누·트위스터법(Mersenne Twister method) 등의 논리를 이용하여 실현되는 것이다. 물론, 본 실시형태에 적용 가능한 의사 난수 생성기는, 이것으로 한정되는 것이 아니고, 다른 논리를 이용하여 의사 난수를 발생시켜도 좋고, 혹은, 특수한 정보 또는 조건을 포함한 의사 난수열을 생성하는 것이 가능한 장치 또는 프로그램여도 좋다.
또한, 본 실시형태에 관계되는 키 배분 서버(102)는, 콘텐츠 자체뿐만 아니라, 콘텐츠 키도 암호화하여 배분하도록 되어 있다. 확실히, 콘텐츠 자체를 암호화하여 배분함으로써, 어느 정도의 시큐리티 레벨을 확보할 수 있다. 그러나, 다수의 유저 중에서, 콘텐츠의 이용 권한을 허락하는 유저(이하 「허락 유저」라고 한다.)를 추가 또는 삭제할 때에 플렉서블하게 대응하기 위해서는, 콘텐츠 키 자체를 암호화하여 배분하는 방식이 유리하다. 이 경우, 본 실시형태에서는, 우선, 키 배분 서버(102)는, 콘텐츠 키를 암호화·복호하기 위한 복수의 세트키를 생성한 다. 후단에 있어서 상술하지만, 이 복수의 세트키는, 각각, 다수의 유저 중에서 추출된, 복수의 허락 유저의 부분집합 군에 대응 지어져 있다. 즉, 키 배분 서버(102)는, 허락 유저의 집합만이 콘텐츠 키를 복호할 수 있도록 설정된 세트키에 의해, 콘텐츠 키를 암호화하고, 모든 유저의 단말장치(122)에 대하여 암호화된 콘텐츠 키를 배분하는 것이다. 이러한 구성에 의해, 허락 유저의 단말장치(122)만이, 암호화된 콘텐츠 키를 복호하는 것이 가능하게 되고, 이 콘텐츠 키를 이용하여 암호화 콘텐츠를 복호하고, 해당 콘텐츠를 시청 등 할 수 있게 된다. 만약, 허락 유저의 집합이 변경되었을 경우에는, 키 배분 서버(102)는, 콘텐츠 키의 암호화에 이용하는 세트키를 변경함으로써 대응 가능하다. 상기의 암호키 배분 논리가 성립하기 위해서는, 세트키의 생성이나 배분에 관계되는 알고리즘을 실현할 수 있도록, 키 배분 서버(102) 등을 구성할 필요가 있다.
이하에서는, 첫 번째로, 본 실시형태에 관계되는 키 배분 서버(102) 및 단말장치(122)의 하드웨어 구성 예에 대해 설명한다. 두 번째로, 본 실시형태에 관계되는 암호키 배분 논리에 관련하는 기반기술에 대해 설명한다. 세 번째로, 본 실시형태에 관계되는 키 배분 서버(102) 및 단말장치(122)의 구성에 대해 상세히 설명하고, 그 구성 및 효과에 관한 기반기술과의 상위점을 명확하게 기술한다. 마지막으로, 본 실시형태에 관계되는 암호키 배분 시스템의 응용 예에 대해 설명한다.
[키 배분 서버(102) 및 단말장치(122)의 하드웨어 구성]
우선, 도 2를 참조하면서, 본 실시형태에 관계되는 키 배분 서버(102) 및 단 말장치(122)의 하드웨어 구성 예에 대해 설명한다. 도 2는, 본 실시형태에 관계되는 키 배분 서버(102) 또는 단말장치(122)의 기능을 실현 가능한 하드웨어 구성의 일례이다.
키 배분 서버(102) 및 단말장치(122)는, 예를 들면, 컨트롤러(202)와, 연산 유닛(204)과, 입출력 인터페이스(206)와, 시큐어 기억부(208)와, 메인 기억부(210)와, 네트워크 인터페이스(212)와, 미디어 인터페이스(216)를 갖춘다.
(컨트롤러(202))
컨트롤러(202)는, 버스를 통하여 다른 구성요소에 접속되어 있고, 주로, 메인 기억부(210)에 저장된 프로그램 및 데이터에 의거하여, 장치내의 각부를 제어하는 역할을 담당한다. 또한, 컨트롤러(202)는, CPU(Central Processing Unit) 등의 연산처리장치로 구성되어 있어도 좋다.
(연산 유닛(204)(키 배분 서버(102)))
키 배분 서버(102)가 갖추는 연산 유닛(204)은, 예를 들면, 콘텐츠의 암호화, 콘텐츠 키의 암호화, 세트키의 생성, 및 세트키를 생성하기 위하여 이용하는 중간키의 도출을 실행할 수 있다. 따라서, 이 연산 유닛(204)은, 소정의 데이터(배정치 등)에 의거하여 의사 난수를 발생시키는 의사 난수 생성기로서 기능할 수 있는 동시에, 소정의 알고리즘에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화하는 것이 가능하다. 또한, 상기 소정의 알고리즘은, 연산 유닛(204)이 판독 가능한 프로그램으로서 메인 기억부(210)에 저장되어 있어도 좋다. 또, 상기 소정의 정보는, 메인 기억부(210) 또는 시큐어 기억부(208)에 저장되어 있어도 좋다. 또 한, 연산 유닛(204)은, 상기의 각종 연산 처리를 실행한 출력 결과를 메인 기억부(210) 또는 시큐어 기억부(208)에 기록하는 것이 가능하다. 또, 이 연산 유닛(204)은, 예를 들면, CPU 등의 연산처리장치로 구성되어 있어도 좋고, 상기의 컨트롤러(202)와 일체로 구성되어도 좋다.
(연산 유닛(204)(단말장치(122)))
한편, 단말장치(122)가 갖추는 연산 유닛(204)은, 예를 들면, 콘텐츠의 복호, 콘텐츠 키의 복호, 세트키의 생성, 및 세트키를 생성하기 위하여 이용하는 중간키의 생성을 실행할 수 있다. 따라서, 이 연산 유닛(204)은, 소정의 데이터(배정치 등)에 의거하여 의사 난수를 발생시키는 의사 난수 생성기로서 기능할 수 있는 동시에, 소정의 알고리즘에 의거하여 콘텐츠 또는 콘텐츠 키를 복호하는 것이 가능하다. 또한, 소정의 알고리즘은, 연산 유닛(204)이 판독 가능한 프로그램으로서 메인 기억부(210)에 저장되어 있어도 좋다. 또, 소정의 정보는, 메인 기억부(210) 또는 시큐어 기억부(208)에 저장되어 있어도 좋다. 또한, 연산 유닛(204)은, 상기의 각종 연산 처리를 실행한 출력 결과를 메인 기억부(210) 또는 시큐어 기억부(208)에 기록하는 것이 가능하다. 또, 이 연산 유닛(204)은, 예를 들면, CPU 등의 연산처리장치로 구성되어 있어도 좋고, 상기의 컨트롤러(202)와 일체로 구성되어 있어도 좋다.
(입출력 인터페이스(206))
입출력 인터페이스(206)는, 주로, 유저가 정보를 입력하기 위한 입력 디바이스와, 연산 결과 또는 콘텐츠의 내용을 출력하는 출력 디바이스에 접속되어 있다. 예를 들면, 입력 디바이스는, 키보드, 마우스, 트랙볼, 터치 펜, 키패드, 또는 터치 패널 등여도 좋고, 입출력 인터페이스(206)에 대하여, 유선 또는 무선에 의해 접속되어 있어도 좋다. 경우에 따라서는, 입력 디바이스는, 유선 또는 무선에 의해 접속된 휴대 전화나 PDA(Personal Digital Assistant) 등의 휴대형 전자기기여도 좋다. 한편, 출력 디바이스는, 예를 들면, 디스플레이 등의 표시장치, 또는 스피커 등의 음성 출력 디바이스 등여도 좋고, 입출력 인터페이스(206)에 대하여, 유선 또는 무선에 의해 접속되어 있어도 좋다. 또한, 상기 입출력 디바이스는, 키 배분 서버(102) 또는 단말장치(122)에 내장 혹은 일체화되어 있어도 좋다.
또한, 입출력 인터페이스(206)는, 버스를 통하여 다른 구성요소에 접속되어 있고, 입출력 인터페이스(206)를 통하여 입력된 정보를 메인 기억부(210) 등에 배분하는 것이 가능하다. 반대로, 입출력 인터페이스(206)는, 메인 기억부(210) 등에 저장된 정보, 네트워크 인터페이스(212) 등을 통하여 입력된 정보, 또는 연산 유닛(204)이 이러한 정보를 연산하여 얻어진 결과 등을 출력 디바이스에 출력할 수 있다.
(시큐어 기억부(208))
시큐어 기억부(208)는, 주로, 콘텐츠 키, 세트키, 및 중간키 등의 은닉이 필요한 정보를 안전하게 저장한다. 시큐어 기억부(208)는, 예를 들면, 하드 디스크 등의 자기기억장치, 광디스크 등의 광기억장치, 광자기 기억장치, 또는 반도체 기억장치 등으로 구성되어 있어도 좋다. 또, 시큐어 기억부(208)는, 예를 들면, 내탄파성을 가지는 기억장치로 구성되어 있어도 좋다.
(메인 기억부(210))
메인 기억부(210)는, 예를 들면, 다른 구성요소를 제어하기 위한 제어 프로그램, 콘텐츠 또는 콘텐츠 키 등을 암호화하기 위한 암호화 프로그램, 암호화된 콘텐츠 또는 콘텐츠 키 등을 복호하기 위한 복호 프로그램, 또는, 세트키 또는 중간키를 생성하기 위한 키 생성 프로그램 등이 저장되어 있어도 좋다. 또, 메인 기억부(210)는, 연산 유닛(204)에 의해 출력된 계산 결과를 일시적 또는 영속적으로 저장하거나, 입출력 인터페이스(206), 네트워크 인터페이스(212), 또는 미디어 인터페이스(216) 등으로부터 입력된 정보를 저장해도 좋다. 또한, 메인 기억부(210)는, 예를 들면, 하드 디스크 등의 자기기억장치, 광디스크 등의 광기억장치, 광자기 기억장치, 또는 반도체 기억장치 등으로 구성되어 있어도 좋다. 또, 메인 기억부(210)는, 시큐어 기억부(208)와 일체로 구성되어 있어도 좋다.
(네트워크 인터페이스(212))
네트워크 인터페이스(212)는, 예를 들면, 네트워크상의 다른 통신 장치 등에 접속되어 있고, 예를 들면, 암호화된 콘텐츠 또는 콘텐츠 키, 세트키, 중간키 등의 정보, 암호화에 관한 파라미터 정보, 및 허락 유저의 집합에 관한 정보를 송수신하기 위한 인터페이스 수단이다. 네트워크 인터페이스(212)는, 버스를 통하여 다른 구성요소에 접속되어 있고, 네트워크상의 외부 장치로부터 수신한 정보를 다른 구성요소로 배분하고, 또는 다른 구성요소가 가지는 정보를 네트워크상의 외부 장치로 송신하는 것이 가능하다.
(미디어 인터페이스(216))
미디어 인터페이스(216)는, 정보 미디어(218)를 착탈하여 정보를 읽고 쓰기 위한 인터페이스이며, 버스를 통하여 다른 구성요소에 접속되어 있다. 이 미디어 인터페이스(216)는, 예를 들면, 장착된 정보 미디어(218)로부터 정보를 읽어내어 다른 구성요소에 배분하고, 또는 다른 구성요소로부터 공급된 정보를 정보 미디어(218)에 기입하는 것이 가능하다. 정보 미디어(218)는, 예를 들면, 광디스크, 자기 디스크, 반도체 메모리 등의 휴대용 기억 매체(착탈 가능한 기억 매체)여도 좋고, 또는 네트워크를 통하지 않고 비교적 근거리로 유선/무선 접속된 정보 단말의 기억 매체 등여도 좋다.
이상, 본 실시형태에 관계되는 키 배분 서버(102) 및 단말장치(122)의 기능을 실현 가능한 하드웨어 구성의 일례를 나타냈다. 상기의 각 구성요소는, 범용적인 부재를 이용하여 구성되어 있어도 좋고, 각 구성요소의 기능에 특화한 하드웨어로 구성되어 있어도 좋다. 따라서, 본 실시형태를 실시하는 그때그때의 기술 레벨에 따라, 적절히, 이용하는 하드웨어 구성을 변경하는 것이 가능하다. 또, 상기의 하드웨어 구성은, 어디까지나 일례이며, 이것으로 한정되는 것이 아닌 것은 말할 필요도 없다. 예를 들면, 컨트롤러(202)와 연산 유닛(204)을 동일한 연산 장치로 구성하여도 좋고, 시큐어 기억부(208)와 메인 기억부(210)를 동일한 기억장치로 구성하여도 좋다. 또, 이용 형태에 따라서는, 미디어 인터페이스(216), 또는 입출력 인터페이스(206) 등을 생략하는 구성도 가능하다. 이하, 상기와 같은 하드웨어 구성을 가지는 키 배분 서버(102) 및 단말장치(122)에 의해 실현되는 암호키 배분 방식에 대해 상술한다.
[기반기술에 관계되는 암호키 배분 방식]
우선, 본 실시형태에 관계되는 암호키 배분 방식에 대해 상세한 설명을 함에 앞서, 본 실시형태를 실현하고나서 기반을 이루는 기술적 사항에 대하여 기술한다. 또한, 본 실시형태는, 이하에 기재하는 기반기술에 개량을 가함으로써, 보다 현저한 효과를 얻을 수 있도록 구성된 것이다. 따라서, 그 개량에 관계되는 기술이야말로 본 실시형태의 특징을 이루는 부분이다. 즉, 본 실시형태는, 여기서 기술하는 기술적 사항의 기초 개념을 답습하지만, 그 본질은 오히려 개량 부분에 집약되어 있고, 그 구성이 명확히 상위하는 동시에, 그 효과에 있어서 기반기술과는 일선을 긋는 것인 것에 주의해 주기 바란다.
이하에서 설명하는 기반기술에 관계되는 암호키 배분 방식을 기반 방식이라고 부르기로 한다. 이 기반 방식은, 콘텐츠가 배분되는 유저의 단말장치의 집합을, 복수의 부분집합으로 나누어, 각 부분집합에 할당된 세트키에 의해 콘텐츠 키를 암호화하여 배분하는 방식이다. 이 기반 방식은, 암호키 배분에 수반하는 통신량, 각 유저가 보관 유지해야 할 복호키의 수, 또는 각 유저가 복호키를 생성하기 위한 계산량 등을 삭감하기 위하여, 어떠한 부분집합을 선택하는지, 어떻게 세트키를 생성하는지, 어떻게 세트키를 배분하는지, 라고 하는 과제에 대하여 하나의 해결 수단을 제공하고 있다. 그러면, 도 3~도 7을 참조하면서, 이 기반 방식에 대해 설명한다.
(트리 구조의 설정)
우선, 기반 방식에서는, 콘텐츠 배분의 대상이 되는 단말장치(유저)의 집합 을 복수의 부분집합으로 나누어 생각한다. 그러면, 도 3을 참조하면서, 기반 방식에 관계되는 부분집합의 나누는 방법에 대하여 설명한다. 물론, 부분집합의 나누는 방법은 보통은 아니지만, 기반 방식에서는, 2분 트리 구조를 이용한 부분집합의 나누는 방법을 채용하고 있다. 이하에서 상세하게 설명하지만, 개략적으로 설명하면, 기반 방식은, 2분 트리 구조를 구성하는 각 결절점(結節点)(노드)에 대해, 노드 간의 위치 관계를 고려하여 소정의 부분집합을 할당함으로써, 소정의 조합을 가지는 유저의 부분집합을 망라하여 선택하고 있는 것이다. 이 선택 방법의 묘는, 도 3에 나타낸 2분 트리 구조의 구체적인 예에 의해, 보다 명확하게 이해될 것으로 생각된다. 그래서, 도 3을 참조하면서, 2분 트리 구조의 구축 방법에 대해 기술한다.
우선, 이하의 설명에 이용하는 집합을 정의한다.
·모든 단말장치(유저)의 집합 N={1, 2,···, n}(n은 2의 누승)
자연수(i 및 j(i≤j))에 대하여,
·[i, j]={i, i+1, i+2,···, j}
·(i→i)=(i←i)={{i}}
·(i→j)={{i},{i, i+1},···,{i, i+1,···, j}}
={[i, i], [i, i+1], [i, i+2],···, [i, j]}
·(i←j)={{j},{j, j-1},···,{j, j-1,···, i}}
={[j, j], [j-1, j], [j-2, j],···, [i, j]}
이하에서는, 2분 트리 구조(BT;Binary Tree) 상의 말단에 위치하는 노드를 잎 노드, 정점에 위치하는 노드를 뿌리 노드, 뿌리 노드와 잎 노드와의 사이에 위치하는 각 노드를 중간 노드라고 부르기로 한다. 또, 잎 노드가 각 단말장치에 대응한다. 또, 이하에서는, 설명의 편의상, 단말장치와 유저가 1:1 대응하고 있다고 가정하고, 잎 노드에 대응 지어지는 「단말장치」를 「유저」로 표기하여 설명할 경우도 있다. 또한, 도 3은, BT의 잎 노드수 n=64의 예이다.
우선, 잎 노드의 수가 n(=64)가 되도록 BT를 작성한다. 그리고, 각 잎 노드에 대해, 좌단으로부터 우측방향을 향해 번호 1, 2,..., n을 할당한다.
다음에, 어느 중간 노드(v)에 할당하는 부분집합을 규정하기 위한 지표 lv, rv를 정의한다. 어느 중간 노드(v)의 하위에 위치하는 잎 노드 중, 가장 왼쪽에 있는 잎 노드의 번호를 lv, 가장 오른쪽에 있는 잎 노드의 번호를 rv라고 정의한다. 단, v는, 각 중간 노드에 할당된 연속하는 번호라고 생각해도 좋다. 즉, 중간 노드(v)는, v를 지표로 하는 BT상의 중간 노드를 나타내는 것이다.
다음에, BT상의 중간 노드를 2개의 집합으로 분류하여 정의한다. BT상의 중간 노드 중, 부모 노드의 좌측에 위치하는 중간 노드의 집합을 BTL로 정의하고, 부모 노드의 우측에 위치하는 중간 노드의 집합을 BTR로 정의한다. 또한, 여기서 말하는 부모와 자식 관계란, BT상에서 접속된 노드 간의 상하 관계를 의미하며, 부모 노드가 상위에 위치하고 자식 노드가 하위에 위치하는 관계를 나타내고 있다.
다음에, BT상의 뿌리 노드에, 각 잎 노드에 대응 지어진 유저 집합의 부분집합을 대응 짓는다. 우선, 뿌리 노드에 대하여 집합(1→n)과 집합(2←n)을 대응 짓는다. 뿌리 노드는, 그 하위에 모든 잎 노드가 연결되어 있기 때문에, 이들의 잎 노드를 전체적 또는 선택적으로 포함하는 집합에 의해 표현되는 것이다. 구체적으로는, 도 3의 뿌리 노드에는, 집합(1→64)과 집합(2←64)이 대응 지어져 있다. 그래서, 집합(1→64)에 대해 생각한다. 집합(1→64)은, 그 요소로서, 부분집합([1, 1], [1, 2], ···, [1, 64])을 포함하고 있다. 예를 들면, 모든 유저(잎 노드)를 표현하려면 , 부분집합([1, 64])을 이용하면 좋고, 이것은 집합(1→64)의 요소로서 포함된다. 또, 번호 16의 유저를 제외한 모든 유저를 표현하려면, 부분집합([1, 15] 및 [17, 64])을 이용하면 좋고, 각각, 집합(1→64) 및 집합(2←64)의 요소로서 포함된다. 이와 같이, 뿌리 노드의 하위에 위치하는 잎 노드(유저)의 조합을, 대응 지어진 집합의 부분집합에 의해 표현할 수 있는 것이다.
다음에, BT상의 중간 노드에 유저 집합의 부분집합을 대응 짓는다. 우선, 상기의 집합(BTL)에 속하는 중간 노드(v)에 대하여, 집합(lv+1←rv)을 대응 짓는다. 한편, 상기의 집합(BTR)에 속하는 중간 노드(v)에 대하여, 집합(lv→rv-1)을 대응 짓는다. 물론, BT상의 모든 중간 노드(v)에 대하여, 이들의 집합을 대응 짓는다. 도 3을 참조하면, 각 중간 노드의 곁에 이들의 집합이 기재되어 있는 것을 알 수 있다. 예를 들면, 집합(2←4)이 대응 지어진 중간 노드를 보면, 이 중간 노드의 하위에는, 집합(2←2)와 집합(3→3)이 대응 지어진 2개의 중간 노드가 있고, 또한, 번호 1~4까지의 잎 노드가 연결되어 있다. 그래서, 이들의 잎 노드로부터 번호 3을 제외한 잎 노드의 조합을 표현하려고 하면, {[1, 1][2, 2], [4, 4]} 또는 {[1, 2], [4, 4]}라고 하는 부분집합의 조에 의해 표현할 수 있 다. 부분집합([1, 1] 및 [1, 2])은, 뿌리 노드에 할당된 집합(1→64)의 요소이지만, 부분집합([2, 2] 및 [4, 4])은, 각각, 집합((2←2) 및 (2←4))의 요소이다.
이와 같이, 기반 방식에서는, 2분 트리 구조 BT를 이용하여 유저 집합의 부분집합을 정의하고 있다. 이 방법에 따라 여러 가지 조합을 가지는 유저의 부분집합을 표현하는 것이 가능하게 된다. 또한, 이러한 부분집합에 의해 구축된 전체 집합을 세트 시스템 Φ이라고 부르는, 하기 식(1)과 같이 정의한다. 즉, 하기 식(1)은, 상기의 방법으로 구축한 2분 트리 구조를 수학적으로 표현한 것이다.
Figure 112009028925256-PCT00001
이상, 부분집합을 규정하는 2분 트리 구조의 설정 방법에 대하여 기술했다. 기반 방식의 기본 컨셉은, 이러한 각 부분집합에 대하여, 콘텐츠 키를 암호화하기 위한 세트키를 설정하고, 각 세트키에 의해 콘텐츠 키를 암호화하여 전 유저에게 배분하는 것에 있다. 상기와 같이 부분집합을 정의함으로써, 적어도 유저의 조합을 분류하는 한 수단이 규정되었다. 이하에서는, 이러한 부분집합을 이용하여 세트키를 생성하는 알고리즘에 대해 설명한다.
(유향 그래프의 생성)
여기에서는, 도 4를 참조하면서, 세트키를 생성하는 알고리즘을 표현한 유향 그래프의 생성 방법에 대해 설명한다. 그러나, 이에 앞서, 콘텐츠 키를 암호화하는 세트키와, 세트키를 생성하기 위한 중간키와의 관계에 대하여 기술한다.
먼저 간단하게 언급했지만, 기반 방식에서는, 세트키를 생성하기 위하여 특수한 의사 난수 생성기 PRSG(Pseudo-Random Sequence Generator)를 이용한다. 이 PRSG는, 어느 부분집합(S0)에 대응하는 중간키 t(S0)가 입력되면, 부분집합(S0)에 대응하는 세트키 k(S0)와, 부분집합(S0)에 관련하는 부분집합(S1, S2,···, Sk)에 대응하는 중간키 t(S1), t(S2),···, t(Sk)를 출력한다. 물론, 집합(S0 및 S1,···, Sk)은, 상기의 세트 시스템 Φ을 구성하는 부분집합의 어느 것인지 이다. 즉, 이 PRSG야말로 키 생성 장치인 것이다. 기반 방식의 특징은, PRSG의 입력과 출력과의 관계를 규정하는 논리에 있다. 그래서, 상기의 집합(S0)과 집합(S1, S2,···, Sk)과의 관계를 규정하는 유향 그래프에 대해 설명한다.
여기서, 이하의 설명에 이용하는 기호를 정의한다.
·부분집합(Si)에 대응하는 중간키:t(Si)
·부분집합(Si)에 대응하는 세트키:k(Si)
·콘텐츠 키:mek
·의사 난수 생성기:PRSG
(단, t(S0)를 입력하는 것을 PRSG(t(S0))라고 표기한다.
한편, PRSG의 출력을
t(S1)||···||t(Sk)||k(S0)←PRSG(t(S0))와 같이 표기한다.)
·유향 그래프:H
(단, 집합(i←j)에 대응하는 유향 그래프를 H(i←j)라고 표기한다.)
·유향지:E
·유향 패스:P
우선, 파라미터(k)(k는 자연수)를 결정한다. 여기에서는 간단을 위하여, k|log(n)(이하, log의 밑수는 2)로 한다. 이 파라미터(k)는, 결과적으로 단말장치(122)가 보관 유지해야 할 중간키의 개수, 및 세트키를 생성하는데 필요한 계산량에 관계하기 때문에, 상황에 따라, 적절히, 설정되어야 할 파라미터이다. 도 4에서는, 예를 들면, k=6이 설정되어 있다.
다음에, 구체적인 유향 그래프의 그리는 방법에 대해 기술한다. 우선, 일례로서, BTR에 속하는 중간 노드(v)에 대응한 유향 그래프(H(lv→rv-1))에 대해 설명한다.
(공정 1) 유향 그래프(H(lv→rv-1))를 구성하기 위한 수평좌표축을 설정한다. 이 좌표축에는, 집합(lv→rv-1)의 요소를 이루는 부분집합(Si)이 좌표점으로서 할당된다. 이들의 좌표점을 이루는 부분집합(Si)은, 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된다. 예를 들면, 유향 그래프(H(5→7)=H({[5, 5], [5, 6], [5, 7]}))를 예로 들면, 좌표축은, 왼쪽으로부터 순서대로 부분집합([5, 5], [5, 6], [5, 7])이 할당된 3개의 좌표점을 가진다.
또한, 제1 및 제3 수평좌표축 상의 우측방향의 유향 그래프(H)에 있어서 그 시점이 위치하는 종선(縱線)이 x일 경우, 이 유효 그래프(H)와 종선(y)과의 교점은 [x, y]를 나타내고, 또, 제2 및 제4 수평좌표축 상의 좌측방향의 유향 그래프(H)에 있어서 그 시점이 위치하는 종선이 z일 경우, 이 유효 그래프(H)와 종선(y)과의 교점은 [y, z]를 나타낸다.
그 후, 좌표축의 가장 왼쪽에 위치하는 좌표점의 좌측에 시점이 되는 가좌표점을 설정하고, 좌표축의 가장 오른쪽에 위치하는 좌표점의 우측에 종점이 되는 가좌표점을 설정한다. 이와 같이 설정된 좌표축은, 좌단의 가좌표점(시점)에서 우단의 가좌표점(종점)까지의 길이 Lv가, Lv=rv-lv+1이 된다.
(공정 2) 유향 그래프(H(lv→rv-1))를 구성하는 유향지를 설정한다.
(2-1) n(x-1)/k<Lv≤nx /k를 만족시키는 정수(x)를 산출한다. 이 정수(x)는, 1≤x≤k를 만족시킨다.
(2-2) 카운터(i)를 0에서 x-1까지 움직이면서, 다음의 조작을 반복하여 행한다. 수평좌표축의 좌단에 있는 시점으로부터 개시하고, 그 좌표점으로부터 ni/k만큼 떨어진 좌표점으로 연장되는 우측방향의 유향지의 설정(그 좌표점으로부터 ni/k만큼 떨어진 좌표점으로의 점프)을, 유향지의 종단이 수평좌표축의 우단에 있는 종점에 도달하는지, 혹은, 다음에 설정되는 유향지의 종단이 해당 종점을 넘을 때까지, 반복하여 행한다.
(공정 3) 가좌표점을 시점 또는 종점으로 하는 유향지를 모두 삭제한다.
(공정 4) 어느 좌표점에 도달하는 유향지가 다수 있을 경우에는, 최장의 유향지만을 남기고, 이 최장의 유향지 이외의 유향지를 모두 삭제한다.
이상의 (공정 1) ~ (공정 4)를 실행하면, 유향 그래프(H(lv→rv-1))가 완성된다. 예를 들면, 도 4의 위로부터 3단째의 우측에 위치하는 유향 그래프(H(33→63))를 일례로서 참조하면, 아치 모양의 곡선의 유효지(有效枝)와, 아치 모양의 곡선의 일단에 접속되고, 수평 방향으로 연장한 직선로 구성되는 선의 조(組)가 유향 그래프(H(33→63))의 실체이다. 또, 유향 그래프(H(33→63))를 구성하는 각 곡선 및 직선이 유향지이다. 그리고, 유향지의 단부와 종선과의 교점이 좌표점이다. 도 4에는 수평좌표축을 명시하고 있지 않지만, 종선과 유향지의 단부와의 교점의 조에 의해 수평좌표축이 구성되어 있다. 또한, 유향 그래프(H(33→63))의 상부에는, 백색 화살표가 그려져 있지만, 이것이 유향지의 방향을 나타내는 것이다. 즉, 유향 그래프(H(33→63))를 구성하는 유향지는 모두 우측방향인 것을 나타내고 있다.
상기 유향 그래프(H(lv→rv-1))와 마찬가지로 하여, BTL에 속하는 중간 노드(v)에 대응 지어진 유향 그래프(H(lv+1←rv)), 및 뿌리 노드에 대응 지어진 유향 그래프(H(1→n) 및 H(2←n))를 설정한다. 단, 유향 그래프(H(lv+1←rv) 및 H(2←n))의 좌표축을 설정할 때에는, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 부분집합(Si)을 배열하고, 유향지의 방향을 좌측방향으로 한다. 또, 유향 그래프(H(1→n))는, 유향 그래프(H(1→n-1))에 유향지 E([1, n-1], [1, n])를 부가하여 생성된다. 한편, 유향 그래프(H(2←n))는, 유향 그래프(H(lv+1←rv))와 동일한 방법에 의해 설정된다.
여기서, 도 4의 유향 그래프(H(1→64))를 예로 들어 설명을 더한다. 우선, 유향 그래프(H(1→64))의 수평좌표축은, 가장 왼쪽에 있는 좌표점(종선 1과의 교점)이 [1, 1]={1}, 그 우측 이웃의 좌표점(종선 2와의 교점)이 [1, 2]={1, 2}, 그 우측 이웃의 좌표점이 [1, 3]={1, 2, 3}이 된다. 또, 각 유향 그래프의 바로 위 또는 바로 아래에 그린 화살표는, 그 유향 그래프(H)를 구성하는 모든 유향지가 가리키는 방향을 나타내고 있다. 예를 들면, 유향 그래프(H(1→64))에는, 좌표점[1, 1]에서 [1, 2]로의 유향지가 있고, 좌표점[1, 2]에서 [1, 3]과 [1, 4]로 신장하는 2개의 유향지가 있다. 또, 도 4의 최하단에 그려진 검은 동그라미 점은, 왼쪽으로부터 각각, 유향 그래프(H(2→2), H(3→3),···, H(63→63))를 나타내고 있다.
이상, 유향 그래프(H)의 설정 방법에 대하여 설명했다. 상기의 방법에 의해, BT상의 각 중간 노드 및 뿌리 노드에 각각 대응하는 유향 그래프(H)를 그린 것이 도 4이다. 이 예는, n=64, k=6의 경우이다. 이하에서는, 이 유향 그래프(H)를 이용하여 세트키를 생성하는 논리에 대해 기술한다.
(세트키의 생성)
이미 기술한 바와 같이, 기반 방식에서는, 상기 세트 시스템 Φ을 구성하는 각 부분집합(Si)에 할당된 세트키 k(Si)를 이용하여, 콘텐츠 키(mek)를 암호화하여 배분한다. 즉, 상기의 유향 그래프(H)의 각 좌표점은, 각각, 1명 이상의 유저로 구성되는 부분집합(Si)에 대응하고 있고, 세트키 k(Si)가 할당된다. 또, 중간키 t(Si)에 대해서도, 상기의 각 부분집합(Si)에 할당되고, 세트키 k(Si)를 생성하기 위하여 이용된다.
그런데, 상술한 (2-2)의 처리에 있어서의 반복 회수가 x회이며, 1≤x≤k이기 때문에, 유향 그래프(H)의 각 좌표점으로부터는, 최대로 k개의 유향지가 나와 있다. 어느 좌표점(부분집합(S0))으로부터 나와 있는 1 또는 2 이상의 유향지의 도달처의 좌표점의 부분집합을, 상기 어느 좌표점에 가까운 순서(유향지가 짧은 순서)로, S1, S2,···, Sk로 한다. 단, 좌표점(부분집합(S0))으로부터 나와 있는 유향지의 수가 q개(q<k)일 경우에는, S(q+1), S(q+2),···, Sk는 더미로 하고, 실제로는 사용하지 않는다.
기반 방식에서는, 세트키 k(Si)를 생성하기 위하여, λ비트의 입력에 대하여 (k+1)λ비트를 출력하는 상술의 PRSG를 이용한다. 이 PRSG는, 어느 좌표점(부분집합(S0))에 대응하는 중간키 t(S0)를 입력하면, 해당 좌표점을 시점으로 하는 유향지의 종점의 각 좌표점(부분집합(S1, S2,···, Sk))에 대응하는 중간키 t(S1), t(S2),···, t(Sk)와 해당 부분집합(S0)의 세트키 k(S0)를 출력한다. 즉, t(S1)||···||t(Sk)||k(S0)←PRSG(t(S0))이다. 이 PRSG의 출력을 왼쪽에서 λ비트마다 단락짓는 것으로, 중간키 t(S1), t(S2),···, t(Sk)와, 세트키 k(S0)가 얻어진다.
예를 들면, 도 4의 유향 그래프(H(1→64))를 참조하고, 좌표점(부분집합(S0)=[1, 8])(좌단으로부터 8번째의 좌표점)에 주목하면, 이 좌표점(S0)으로부터는 4개의 유향지가 나오고 있고, 그 종점은, 각각, S1=[1, 9], S2=[1, 10], S3=[1, 12], S4=[1, 16]이다. 이 때문에, 중간키 t(S0)를 PRSG에 입력하면, k(S0), t(S1), t(S2), t(S3), t(S4)를 얻을 수 있다. 또한, 얻어진 t(S4)를 PRSG에 입력하면, k(S4)와, S11=[1, 17], S12=[1, 18], S13=[1, 20], S14=[1, 24], S15=[1, 32]에 대응한 t(S11), t(S12), t(S13), t(S14), t(S15)를 얻을 수 있다. 이와 같이, PRSG를 반복하여 이용함으로써, 복수의 세트키를 산출할 수 있다.
또한, 중간키는, 안전성을 높이는 목적으로 사용하고 있다. 안전성에 각별한 주의를 기울이지 않아도 좋지만, 세트키 생성을 위한 연산량을 줄이고 싶을 경우에는, 중간키를 사용하지 않고, 어느 세트키로부터 다른 세트키를 직접 계산하도록 해도 좋다. 예를 들면, 상기의 예에서는, 부분집합(S0)의 세트키 k(S0)를 PRSG에 입력했을 경우의 출력을, k(S1), k(S2), k(S3), k(S4)로 하고, 각각의 부분집합(S1~S4)의 세트키로 해도 좋다.
상기의 예로부터 용이하게 추측되는 대로, 어느 중간키는, PRSG를 반복하여 이용함으로써, 그 중간 키에 대응하는 좌표점으로부터 신장한 유향지의 사슬에 의해 도달 가능한 좌표점에 대응하는 중간키와 세트키를 도출할 수 있는 것이다. 따라서, 각 유저는, 자신이 포함되는 부분집합에 대응하는 중간키를 모두 도출할 수 있는 최저한의 수의 중간키를 보관 유지하고 있으면 좋은 것이다. 한편, 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 배분 서버는, 적어도 각 유향 그래프(H)의 선두 좌표점에 대응하는 중간키만을 보관 유지하고 있으면, PRSG에 의한 연산을 반복하여 행하는 것으로, 해당 유향 그래프의 다른 좌표점에 대응하는 세트키를 도출할 수 있다.
따라서, 키 배분 시스템의 관리자는, 키 배분 시스템의 세트업 시에, 키 배분 서버에 있어서 각 유향 그래프(H)의 선두 좌표점(루트)의 중간키로서, 예를 들면λ비트의 난수를 설정한다. 여기서, 유향 그래프(H)의 선두 좌표점(루트)이란, 그 좌표점으로부터 유향지가 나와 있지만, 그 좌표점에 도달하지 않는 좌표점이다. 예를 들면, 도 4의 유향 그래프(H(1→64))의 선두 좌표점은, 수평좌표축 의 좌단의 [1, 1] 좌표점이다.
이상, 세트키의 생성 방법에 대해 설명했다. 상기 세트키 생성 방법은, 콘텐츠 키의 송신자 측의 키 생성 서버로 이용될 뿐만 아니라, 수신자 측의 단말장치로도 이용된다.
(중간키의 배분)
여기서, 키 배분 서버로부터, 각 유저의 단말장치로의 중간키의 배분에 대해 기술한다. 이미 간단하게 기술했지만, 각 유저의 단말장치에 대해서는, 그 유저의 단말장치가 포함되는 모든 부분집합에 대응하는 세트키를 도출 가능한 복수의 중간키를 주지 않으면 안 된다. 물론, 그 유저의 단말장치가 포함되지 않는 부분집합에 대응하는 세트키를 도출 가능한 중간키를 주어서는 안 되고, 주는 중간키의 수는, 메모리 양의 효율화의 관점에서 최소한인 것이 바람직하다.
그래서, 중간키의 배분자는, 유저 u의 단말장치가 소속하는 부분집합(이하, 「유저 u가 속하는 부분집합」이나, 「유저 u가 포함되는 부분집합」으로 표기하는 경우도 있다.)을 요소로 가지는 유향 그래프(H)를 모두 추출한다. 그리고, 유향 그래프(H)의 선두 좌표점(루트)에 대응하는 부분집합에 유저 u가 포함될 경우에는, 그 선두 좌표점에 대응하는 중간키만을 유저 u의 단말장치에게 준다. 또, 유향 그래프(H)의 선두 좌표점 이외의 좌표점에 대응하는 부분집합의 어느 쪽인가에 유저 u가 속할 경우에는, 유저 u가 부분집합(S0)에는 포함되지만, 그 부분집합(S0)의 부모인 부분집합 parent(S0)에는 포함되지 않도록 하는, 부분집합(S0)을 찾아내고, 이 부분집합(S0)의 중간키 t(S0)를, 유저 u의 단말장치에게 준다. 환언하면, 유 향 그래프(H)에 있어서, 선두 좌표점 이외의 좌표점 중에서, 그 좌표점에 대응하는 부분집합에 유저 u가 포함되는 좌표점이 복수 존재할 경우에는, 그 중에서, 부분집합(S0)에 대응하는 좌표점에 도달하는 유향지의 시점에 대응한 부분집합 parent(S0)에 유저 u를 포함하지 않도록 하는 좌표점(S0)를 추출하고, 그 좌표점(S0)의 중간키 t(S0)를, 유저 u의 단말장치에게 준다. 만약, 그와 같은 좌표점(S0)가 복수개 존재할 경우에는, 각각의 중간키 t(S0)를 준다. 여기서, 좌표점의 부모와 자식 관계는, 유향지에 의해 정해지고, 유향지의 시점 좌표점이 종점 좌표점의 부모가 되고, 유향지의 종점 좌표점이 시점 좌표점의 자식이 된다. 이하, 어느 좌표점(S0)에 도달하는 유향지의 시점 좌표점 parent(S0)를 부모 좌표점으로 부르기로 한다. 어느 좌표점(S0)가, 유효 그래프(H)의 시점에서 있을 경우, 부모 좌표점은 존재하지 않고, 유효 그래프(H)의 시점에서는 없을 경우, 부모 좌표점이 단지 1개 존재한다. 1개의 유효 그래프(H)에 대하여, 자기 자신에 대응하는 부분집합에 유저 u를 포함하고, 그 부모 좌표점에 대응하는 부분집합에는 유저 u를 포함하지 않는 좌표점은, 복수 존재할 경우도 있다.
도 4의 예를 참조하면서, 상기의 중간키의 배분 방법에 대해 구체적으로 기술한다.
(예 1)
유저 1에 대하여 배분되는 중간키에 대해 생각한다. 우선, 유저 1이 속하는 부분집합을 요소로 가지는 유향 그래프(H)를 검색하면, 유향 그래프(H(1→64)) 뿐인 것을 알 수 있다. 그리고, 유저 1은, 유향 그래프(H(1→64))의 선두 좌표 점인 부분집합[1, 1]에 속하고 있다. 따라서, 유저 1에는, 중간키 t([1, 1])만이 주어진다.
(예 2)
유저 3에 대하여 배분되는 중간키에 대해 생각한다. 우선, 유저 3이 속하는 부분집합을 요소로 가지는 유향 그래프(H)를 검색하면, 유향 그래프(H(1→64)), H(2←64), H(2←32), H(2←16), H(2←8), H(2←4), H(3→3))가 해당한다. 그래서, 유향 그래프(H(1→64))에 대해 검토하면, 유저 3은, 선두 좌표점의 부분집합[1, 1]에는 속해 있지 않고, 3번째의 좌표점 이후의 부분집합([1, 3], [1, 4],···, [1, 64])에 속하고 있는 것을 알 수 있다. 이들의 좌표점 중, 부모 좌표점에 유저 3을 포함하지 않는 좌표점은, [1, 3], [1, 4]뿐이다. 즉, 유저 3을 포함하는 좌표점[1, 3], [1, 4]의 부모 좌표점 parent([1, 3]) 및 parent([1, 4])인 좌표점 [1, 2]에는, 유저 3은 포함되지 않는다. 따라서, 유저 3에는, 유향 그래프(H(1→64))에 대응하는 중간키로서, t([1, 3]) 및 t([1, 4])가 주어진다. 이것과 마찬가지로 하여, 다른 유향 그래프(H(2←64), H(2←32), H(2←16), H(2←8), H(2←4), H(3→3))에 대해서도 해당하는 중간키가 선택되고, 유저 3에게 주어진다. 그 결과, 유저 3에는, 합계 8개의 중간키가 주어진다.
여기서, 도 5를 참조하면서, 중간키를 각 유저의 단말장치에 배포할 때까지의 처리에 대해 간단하게 정리한다. 도 5는, 시스템 세트업 시의 키 배분 서버에 있어서의 중간키 배분에 관한 처리 흐름을 나타내는 흐름도이다.
도 5에 나타내는 바와 같이, 우선, 키 배분 시스템의 키 배분 서버는, 각종 파라미터 등을 설정한다. 예를 들면, 유저 수 n, 세트키 및 중간키의 비트수 λ, 소정의 파라미터(k), 및 PRSG에 의한 의사 난수 생성 알고리즘 등을 결정하고, 전 유저의 단말장치에 공개한다(S102). 다음에, 키 배분 서버는, 유저의 집합을 소정의 부분집합으로 나누어, 그 합집합에 의해 표현되는 세트 시스템 Φ(상기 식(1) 참조)을 결정하여 공개한다(S104). 그리고, 유향 그래프(H)와 유향 그래프(H)를 구성하는 유향지 T를 결정하여 공개한다(S106). 또한, 세트 시스템 Φ을 구성하는 각 부분집합에 대응하는 중간키를 결정한다(S108). 그 후, 각 유저의 단말장치(122)에 대해, 각 유저가 자신을 포함하는 부분집합에 대응하는 세트키를 도출할 수 있도록, 필요한 중간키를 배포한다(S110).
이상, 중간키의 배분 방법에 대해 설명했다. 이 배분 방법을 이용하면, 각 허락 유저의 단말장치가 세트키를 생성하기 위하여 필요한 최저한의 중간키가 배분되고, 키 배분 서버와 단말장치와 사이의 통신량, 및 각 유저의 단말장치에 있어서의 중간키의 메모리 양을 절약할 수 있다.
(콘텐츠 키의 배분)
여기서, 키 배분 서버에 의한 암호화된 콘텐츠 키(mek)의 배분 방법에 대해 설명한다. 우선, 키 배분 서버는, 허락 유저의 단말장치(122)만이 생성 가능한 세트키를 이용하여 콘텐츠 키(mek)를 암호화한다. 보다 구체적으로는, 키 배분 서버는, 배제해야 할 유저(이하, 배제 유저)의 단말장치의 집합(R)을 결정하고, 전 유저의 단말장치 1~n의 집합(N)으로부터, 배제 유저의 단말장치의 집합(R)(이하, 「배제 유저의 집합(R)」)을 제외한 허락 유저의 단말장치의 집합 N\R(이하, 「허 락 유저의 집합 N\R」)을 결정한다. 그리고, 세트 시스템 Φ을 구성하는 부분집합 중에서 선택된 부분집합(Si(i=1, 2,···, m))의 합집합에 의해, 허락 유저의 집합 N\R=S1∪S2∪···∪Sm을 표현한다. 이때, 부분집합(Si)의 조합은 다수 존재하지만, m이 최소가 되도록 하는 부분집합(Si)을 선택한다. 이와 같이 부분집합(Si)을 선택한 후, 각 부분집합(Si)에 대응하는 세트키 k(Si)에 의해, 콘텐츠 키(mek)를 암호화한다. 즉, 콘텐츠 키(mek)는, 세트키 k(S1), k(S2),···, k(Sm)에 의해 암호화되고, m개의 암호화된 콘텐츠 키(mek)가 된다. 그리고, m개의 암호화된 콘텐츠 키(mek)가 전 유저의 단말장치 1~n에 대하여 배분된다. 이때, 허락 유저의 집합 N\R을 나타내는 정보, 또는 m개의 부분집합(Si)을 나타내는 정보도 전 유저의 단말장치 1~n에 대하여 배분된다.
여기서, 도 6을 참조하면서, 암호화된 콘텐츠 키(mek)의 배분에 관계되는 처리 흐름에 대해 간단하게 정리한다. 도 6은, 콘텐츠 키의 배분에 관계되는 처리 흐름을 나타내는 흐름도이다.
도 6에 나타내는 바와 같이, 우선, 키 배분 서버는, 배제 유저의 집합(R)을 결정하고, 허락 유저의 집합 N\R을 구한다(S112). 다음에, 세트 시스템 Φ을 구성하는 부분집합으로부터, 합집합이 N\R이 되는 m개의 부분집합(Si(i=1, 2,···, m))을, m이 최소가 되도록 선택한다(S114). 그리고, 선택된 각 부분집합(Si)에 대응하는 세트키 k(Si)를 이용하여 콘텐츠 키(mek)를 각각 암호화한다(S116). 또한, 허락 유저의 집합 N\R 또는 각 부분집합(Si)을 나타내는 정보와, m개의 암호화된 콘텐츠 키(mek)를 전 유저의 단말장치 1~n에 대하여 배분한 다(S118).
이상, 콘텐츠 키(mek)의 암호화 방법, 및 배분 방법에 대해 설명했다. 이 암호화 방법을 이용하면, 세트키 수가 필요 최소한이 되도록 효율적으로 부분집합(Si)을 선택할 수 있다. 이 때문에, 필요 최소한의 세트키로 콘텐츠 키(mek)를 암호화하므로, 암호화에 필요로 하는 계산량을 절감할 수 있는 동시에, 배분해야 할 암호화된 콘텐츠 키(mek)의 수를 저감시키고, 통신량을 삭감하는 것이 가능하게 된다.
(콘텐츠 키의 복호)
다음에, 각 유저의 단말장치에 있어서의 암호화된 콘텐츠 키의 복호 처리에 대해 설명한다. 이 복호 처리는, 단말장치가 상기 키 배분 서버로부터 수신한, 허락 유저의 집합 N\R 또는 m개의 부분집합(Si)을 나타내는 정보와, m개의 암호문에 의거하여, 콘텐츠 키(mek)를 얻는 처리이다.
단말장치는, 상기 키 배분 서버로부터, 암호화된 콘텐츠 키와, 허락 유저의 집합 N\R을 나타내는 정보, 또는 m개의 부분집합(Si)을 나타내는 정보를 수신한다. 또한, 단말장치는, 해당 정보를 해석하여, 자신이 m개의 부분집합(Si)의 어느 쪽인가에 소속해 있는지 아닌지를 판단한다. 만약, 자신이 어느 쪽의 부분집합에도 소속하지 않을 경우에는, 자신은 배제 유저의 단말장치인 것으로 되므로, 복호 처리를 종료한다. 한편, 자신이 소속하는 부분집합(Si)을 발견하면, 단말장치는, 상기의 PRSG를 이용하여, 그 부분집합(Si)에 대응하는 세트키 k(Si)를 도출한다. PRSG의 구성에 대해서는 이미 기술한 대로이다.
이때, 단말장치는, 사전의 시스템 세트업 시에 키 배분 서버로부터 상기 부분집합(Si)에 대응하는 중간키 t(Si)가 주어지고, 미리 보관 유지하고 있으면, 이 중간키 t(Si)를 PRSG에 입력하면, 상기 부분집합(Si)에 대응하는 세트키 k(Si)를 도출하는 것이 가능하다. 한편, 상기 중간키 t(Si)를 보관 유지하고 있지 않을 경우에는, 단말장치는, 보관 유지하고 있는 중간키를 PRSG에 반복하여 입력함으로써 원하는 세트키 k(Si)를 도출할 수 있다. 또한, 단말장치는, 이와 같이 하여 도출한 세트키 k(Si)를 이용하여, 암호화된 콘텐츠 키(mek)를 복호한다.
여기서, 단말장치에 있어서의 상기 세트키 k(Si)의 도출에 대해 도 4의 예에서 구체적으로 설명한다. 유저 3의 단말장치에 있어서, 자신이 속하는 부분집합으로서 [1, 8]이 선택되었다고 가정한다. 유저 3의 단말장치는, 상술한 바와 같이, 부분집합 [1, 4]의 중간키를 보관 유지하고 있다. 도 4의 유향 그래프(H(1→64))를 참조하면, [1, 4]의 좌표점으로부터, [1, 8]의 좌표점에 연장되는 유향지가 설정되어 있고, 이 유향지는, [1, 4]의 좌표점을 시점으로 하는 유향지 중 3번째로 길이(점프의 거리)가 짧은 것이다. 이 때문에, [1, 4]의 중간키 t([1, 4])를 PRSG에 입력했을 때의 출력 중, 선두로부터 제 3번째의 λ비트의 부분이, 부분집합 [1, 8]의 중간키 t([1, 8])로 되어 있다. 단말장치는, PRSG의 출력으로부터, 이 중간키 t([1, 8])를 추출하고, 재차 PRSG에 입력했을 때의 최종 부분의 λ비트를 추출함으로써, 원하는 세트키 k([1, 8])를 얻을 수 있다.
마찬가지로, 유저 1의 단말장치에 있어서, 자신이 속하는 부분집합으로서 [1, 8]이 선택되었다고 가정한다. 유저 1의 단말장치는, 부분집합 [1, 1]의 중 간키를 보관 유지하고 있다. 이 경우, 단말장치(122)는, [1, 1]의 중간키 t([1, 1])를 PRSG에 입력했을 때의 출력 중, 선두로부터 제1번째의 λ비트의 부분(중간키 t([1, 2])에 상당한다.)을 추출하고, 그 다음에, 이 중간키 t([1, 2])를 PRSG에 입력했을 때의 출력 중, 선두로부터 제 2번째의 λ비트의 부분(중간키 t([1, 4])에 상당한다.)을 추출하고, 또한, 이 중간키 t([1, 4])를 PRSG에 입력했을 때의 출력 중, 선두로부터 제 3번째의 λ비트의 부분(중간키 t([1, 8])에 상당한다.)을 추출하고, 마지막으로, 이 중간키 t([1, 8])를 PRSG에 입력했을 때의 출력 중, 최종 부분(세트키 k([1, 8])에 상당한다.)을 추출하는 것으로, 원하는 세트키 k([1, 8])를 얻을 수 있다.
여기서, 도 7을 참조하면서, 각 유저의 단말장치에 있어서의, 암호화된 콘텐츠 키(mek)를 복호하는 처리 흐름에 대해 정리한다. 도 7은, 각 유저의 단말장치에 있어서의, 콘텐츠 키의 복호에 관한 처리 흐름을 나타낸 흐름도이다.
도 7에 나타내는 바와 같이, 우선, 각 유저의 단말장치는, 키 배분 서버로부터, m개의 암호화된 콘텐츠 키(mek)와, 허락 유저의 집합 N\R을 나타내는 정보, 또는 m개의 부분집합(Si(i=1, 2,···, m))를 나타내는 정보를 수신한다(S120). 그 다음에, 단말장치는, 해당 정보에 의거하여, 자신이 소속하는 부분집합(Si)을 검색하고(S122), 자신이 m개의 부분집합(Si)의 어느 쪽인가에 소속해 있는지 아닌지를 판단한다(S124).
이 결과, 자신이 소속하는 부분집합(Si)을 발견하면, 상기의 PRSG를 이용하여, 그 부분집합(Si)에 대응하는 세트키 k(Si)를 도출한다(S126). PRSG의 구성 에 대해서는 이미 기술한 대로이다. 만약, 그 부분집합(Si)에 대응하는 중간키 t(Si)를 세트업 시에 키 배분 서버로부터 주어져 미리 보관 유지하고 있으면, 한 번 PRSG를 이용함으로써 세트키 k(Si)를 도출하는 것이 가능하고, 한편, 해당 중간키 t(Si)를 보관 유지하고 있지 않을 경우에는, PRSG를 반복하여 이용함으로써 원하는 세트키 k(Si)를 도출할 수 있다. 그 다음에, 단말장치는, 이와 같이 하여 도출한 세트키 k(Si)를 이용하여, 암호화된 콘텐츠 키(mek)를 복호한다(S128).
한편, 상기 S124에 있어서, 자신이 어느 쪽의 부분집합(Si)에도 소속해 있지 않다고 판단했을 경우에는, 단말장치는, 자신이 콘텐츠를 이용 가능한 단말장치에서 배제되어 있는 취지(배제 유저인 취지)를 표시 출력하여(S130), 콘텐츠 키의 복호 처리를 종료한다.
이상, 단말장치에 있어서의 콘텐츠 키의 복호 방법에 대해 설명했다. 상기의 복호 방식은, 유향 그래프(H)의 정보에 의거하여 중간키 및 세트키를 생성하는 PRSG를 이용하여 실행된다. 따라서, 각 유저의 단말장치 측에도, 유향 그래프의 정보와 PRSG가 필요로 된다. 그러나, 이 PRSG를 이용하는 방법이면, 각 유저의 단말장치가 보관 유지하는 중간키의 수를 최소한으로 할 수 있다.
여기까지, 본 실시형태의 기반기술에 관계되는 암호키 배분 방식에 대해 설명해 왔다. 이 기반 방식을 이용하면, 각 유저의 단말장치가 보관 유지해야 할 중간키의 개수는 O(k*log(n))이며, 세트키의 생성에 필요로 하는 계산량(PRSG의 동작 회수)은 (2 k-1)*(n1 /k-1)를 넘지 않는다고 되어 있다. 그러나, 기반기술에 관계되는 암호키 배분 방식에서는, 후술의 도 13에 나타내는 바와 같이, 각 유저의 단말장치가 보관 유지해야 할 중간키의 개수가 여전히 크다고 하는 문제가 있었다.
또, 암호화된 콘텐츠 키(mek)의 복호 시에, 단말장치가 필요로 하는 계산량 중 지배적인 것은, 원하는 중간키를 도출하기 위하여 PRSG를 몇 회 실행시킬까에 의존하고 있다. 이 최악치는, 유향 그래프(H)에 있어서의 선두 좌표점(루트)에서 가장 먼 말미 좌표점(유향지가 나와 있지 않은 리프)까지의, 유향지의 개수(즉, 점프 회수)에 의해 나타내진다. 도 4에서 나타낸 예에서는, 유향 그래프(H(1→64))의 선두 좌표점 [1, 1]로부터 말미 좌표점 [1, 64]까지 도달하기 위하여, 11개의 유향지를 경유(11회의 점프를 실행)하지않으면 안되며, 이것은, PRSG를 11회나 실행하지않으면 안되는 것을 나타내고 있다. 이와 같이, 기반기술에 관계되는 암호키 배분 방식에서는, PRSG의 실행 회수가 많기 때문에, 중간키를 도출하기 위한 계산량이 많다고 하는 문제도 있었다.
그래서, 본원 발명자들은 상기 문제를 해결하도록 열심히 노력하여, 이하에 설명하려고 하는, 본 발명의 제1 실시형태에 관계되는 암호키 배분 방식을 개발했다. 본 실시형태에 관계되는 암호키 배분 방식은, 유향 그래프를 구성하는 유효지를 보다 짧은 유향지로 치환하여, 유향 그래프를 재구성함으로써, 단말장치(122)가 보관 유지하는 중간키 수의 저감을 실현할 수 있다. 이하에서는, 본 실시형태에 관계되는 암호키 배분 방식을 실현하는 키 배분 서버(102) 및 단말장치(122)의 기능 구성과 함께, 이 암호키 배분 방식의 특징 및 작용 효과에 대해 상술한다.
[키 배분 서버(102)의 구성]
우선, 도 8을 참조하면서, 본 실시형태에 관계되는 키 배분 서버(102)의 구성에 대해 상세히 설명한다. 도 8은, 본 실시형태에 관계되는 키 배분 서버(102) 및 단말장치(122)의 구성을 나타내는 블럭도이다.
도 8에 나타내는 바와 같이, 키 배분 서버(102)는, 트리 구조 설정부(104)와, 좌표축 설정부(106)와, 가유향 그래프 생성부(108)와, 유향 그래프 생성부(110)와, 초기 중간키 설정부(112)와, 키 생성부(114)와, 암호화부(116)와, 송신부(118)와, 부분집합 결정부(120)로 구성된다. 특히, 트리 구조 설정부(104)와, 좌표축 설정부(106)와, 가유향 그래프 생성부(108)와, 유향 그래프 생성부(110)를 통합하여, 키 생성 논리 구축 블럭으로 부르기로 한다. 마찬가지로, 초기 중간키 설정부(112)와, 키 생성부(114)를 통합하여, 키 생성 블럭으로 부르기로 한다.
우선, 키 생성 논리 구축 블럭을 구성하는 각 구성요소에 대해 설명한다. 이 키 생성 논리 구축 블럭은, 상기의 [기반기술의 설명]에 있어서의(트리 구조의 설정) 및 (유향 그래프의 생성)에 대응하는 처리를 실행한다.
(트리 구조 설정부(104))
트리 구조 설정부(104)는, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정한다. 또, 트리 구조 설정부(104)는, 뿌리 노드에 대하여 집합(1→n)과 집합(2←n)을 할당하여, 어느 중간 노드(v)가, 그 부모 노드의 좌측에 위치하는 경우에는, 해당 중간 노드에 대하여 집합(lv+1←rv)을 할당하여, 중간 노드(v)가, 그 부모 노드의 우측에 위치하는 경우에는, 해당 중간 노드에 대하여 집합(lv→rv-1)을 할당한다.
상기와 같이, 트리 구조 설정부(104)는, m분 트리 구조를 구축 가능한 구성을 가지고 있지만, 예를 들면, m=2(2분 트리 구조)의 경우를 상정하면, 기반 방식에 관계되는 2분 트리 구조(도 3)에 일치하는 트리 구조를 구축할 수 있다. 따라서, 트리 구조 설정부(104)가 구축하는 트리 구조의 각 노드가 가지는 의미는, 상기의 기반 방식에 의해 구축된 2분 트리 구조의 각 노드가 가지는 의미와 실질적으로 동일하다. 이하, 설명의 형편상, 2분 트리 구조로 한정하여 설명하지만, 이것에 한정되는 것은 아니다.
(좌표축 설정부(106))
좌표축 설정부(106)는, 집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축을 설정한다. 그 다음에, 좌표축 설정부(106)는, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축을 설정한다. 그리고, 좌표축 설정부(106)는, 상기 중간 노드의 각각에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과, 집합(lv+1←rv)에 포함 되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정한다. 또한, 좌표축 설정부(106)는, 상기 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 상기 제 2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정한다.
상기와 같이, 좌표축 설정부(106)는, 트리 구조 설정부(104)에 의해 설정된 트리 구조의 각 노드에 대응하는 유향 그래프를 구축하기 위한 좌표축을 설정한다. 제1 수평좌표축은, 집합(1→n)에 대응하는 좌표축을, 제2 수평좌표축은, 집합(2←n)에 대응하는 좌표축을, 제3 수평좌표축은, 집합(lv→rv-1)에 대응하는 좌표축을, 제4 수평좌표축은, 집합(lv+1←rv)에 대응하는 좌표축을 나타낸다. 물론, 제3 수평좌표축 및 제4 수평좌표축은, 각 중간 노드(v)에 대하여 설정되기 때문에, 각각, 복수의 좌표축이 설정된다. 즉, 중간 노드의 수만큼, 제3 수평좌표축과 제4 수평좌표축이 설정된다.
(가유향 그래프 생성부(108))
가유향 그래프 생성부(108)는, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정한다. 다음에, 가유향 그래프 생성부(108)는, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼 쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 또한, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성한다. 그리고, 가유향 그래프 생성부(108)는, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외한다. 또한, 가유향 그래프 생성부(108)는, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프(I'(1→n-1), I'(2←n), I'(lv+1←rv), I'(lv→rv-1))를 각각 생성한다. 그 후, 가유향 그래프 생성부(108)는, 집합(1→n-1)에 관한 가유향 그래프(I'(1→n-1))에 대해, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프(I'(1→n))를 생성한다.
상기와 같이, 가유향 그래프 생성부(108)는, 원하는 유향 그래프(I)를 생성하는 전단으로서 가유향 그래프(I')를 생성한다. 이때, 가유향 그래프(I')는, 기반 방식의 유향 그래프(H)에 대응한다.
(유향 그래프 생성부(110))
유향 그래프 생성부(110)는, 연속하는 유향지에 의해 형성된 유향 패스 중에서, 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정한다. 이 최장 유향 패스를 결정하는 처리는, 예를 들면, 유향 그래프 생성부(110)가 갖추는 최장 유향 패스 결정부에 의해 실행되어도 좋다. 또, 유향 그래프 생성부(110)는, 각 유향 패스의 유향지 수가, 최장의 유향 패스의 유향지 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성한다.
상기와 같이, 유향 그래프 생성부(110)는, 가유향 그래프(I')를 구성하는 유향지를 보다 짧은 유향지로 치환하여, 가유향 그래프(I')를 재구성하여 원하는 유향 그래프(I)를 생성한다. 그러면, 유향 그래프 생성부(110)가 실행하는 가유향 그래프(I')의 재구성에 관계되는 기술적 사상, 및 처리 흐름에 대해 상세하게 설명한다.
우선, 도 9를 참조하면서, 유향 그래프 생성부(110)의 처리에 관한 기본 컨셉을 나타낸다. 도 9는, 유향 그래프 생성부(110)의 처리 과정을 모식적으로 나타낸 설명도이다.
도 9를 참조하면, 설명용으로 작성한 2개의 유향 그래프(Q'(A→G)) 및 Q(A→G))가 그려져 있다. 유향 그래프(Q'(A→G))는 기반 방식에 대응하고, 유향 그래프(Q(A→G))는 본 실시형태에 대응한다. 또, 각 유향 그래프에 아울러 복수의 종선이 그려져 있고, 각 종선에는, 지표 A~G의 어느 것인가가 할당되어 있다. 이 지표 A~G는, 각각, 유저의 단말장치를 나타내고 있다. 상기의 기반기술의 설명에 있어서는, 유저에 대하여 지표 1~n를 할당하여 설명했지만, 이것에 대응하는 것이다. 따라서, 각 좌표축의 좌표점에는, 왼쪽으로부터, 부분집합([A, A], [A, B],..., [A, G])이 할당되어 있다. 또, 각 좌표점의 아래 측에는, 각 종선에 대 응하는 유저가 보관 유지해야 할 중간키의 키 수가 기재되어 있다.
기반기술의 설명에서 기술한 사항의 복습이 되겠지만, 우선, 유향 그래프(Q'(A→G))에 대해 간단히 설명한다. 유향 그래프(Q'(A→G))는, 길이 1의 유향지 4개(A⇒B, B⇒C, D⇒E, F⇒G)와, 길이 2의 유향지 1개(B⇒D)와, 길이 4의 유향지 1개(B⇒F)로 구성되어 있다. 만약, 좌표점 [A, A]로부터 좌표점 [A, G]에 이르는 유향 패스 P([A, A], [A, G])를 생각한다면, 유향 패스 P([A, A], [A, G])는, 길이 1의 유향지(A⇒B)와, 길이 4의 유향지(B⇒F)와, 길이 1의 유향지(F⇒G)에 의해 형성되는 유향지의 사슬에 의해 표현된다.
따라서, 중간키 t([A, A])를 가지고 있는 유저 A는, (1) 중간키 t([A, A])를 PRSG에 입력함으로써, 중간키 t([A, B])를, (2) 중간키 t([A, B])를 PRSG에 입력함으로써, 중간키 t([A, C]), t([A, D]), t([A, F])를, (3) 중간키 t([A, F])를 PRSG에 입력함으로써, 중간키 t([A, G])를 도출할 수 있다. 즉, 유저 A는, 유향 패스 P([A, A], [A, G])의 종점에 대응하는 중간키 t([A, G])를 도출하기 위하여, 유향 패스 P([A, A], [A, G])를 구성하는 유향지의 개수와 같은 회수(3회) 만큼 PRSG를 실행할 필요가 있다. 그리고, 이 회수야말로, 유저의 계산량을 정하기 때문이다. 유향 그래프(Q'(A→G))의 경우는, 유향 패스 P([A, A], [A, G])와, 유향 패스 P([A, A], [A, E])가 최대의 유향지 수를 가지고 있기 때문에, 이들의 유향 패스의 길이가, 유저의 계산량의 최악치에 대응한다.
한편, 각 유저는, 자신이 소속하는 부분집합에 대응하는 모든 중간키를 생성할 수 없어서는 안 된다. 그 때문에, 유저가 미리 소지해야 할 중간키는, PRSG 를 반복해서 이용하여 생성되는 복수의 중간키가, 자신이 소속하는 부분집합에 대응한 중간키의 모두를 포함하도록 하는 중간키가 아니면 안 된다. 또한, 각 유저가 보관 유지하는 중간키는, 그 수가 최소로 되도록 선택되지 않으면 안 된다. 따라서, 유저는, 유향 그래프를 참조하여, 자신이 소속하는 부분집합에 대응한 좌표점 중에서, 그 좌표점에 도달하는 유향지의 시점에 대응하는 부분집합에 자신을 포함하지 않도록 하는 좌표점을 선택하고, 그러한 좌표점에 대응하는 중간키를 보관 유지하면 좋다.
예를 들면, 유향 그래프(Q'(A→G))를 참조하여, 유저 C가 보관 유지해야 할 중간키에 대해 고찰한다. 유저 C가 소속하는 부분집합은, [A, C], [A, D],..., [A, G]이다. 그래서, 유향 그래프(Q'(A→G))에 주목하면, 부분집합([A, C], [A, D], [A, F])에 도달하는 유향지의 시점은, 어느 것이나 좌표점 [A, B]이며, 유저 C를 포함하지 않는다. 따라서, 유저 C는, 중간키 t([A, C]), t([A, D]), t([A, F])를 보관 유지하면 좋다. 실은, 각 유저가 보관 유지해야 할 중간키의 키 수는, 각 유저에 대응하는 종선과 유향 그래프와의 교점의 수로 나타내진다. 예를 들면, 유저 D는, 교점이 2개이므로, 2개의 중간키를 보관 유지하면 좋다고 하는 것을 알 수 있다. 상기의 방법에 의해, 각 유저가 보관 유지해야 할 중간키의 키 수를 산출하여, 각 유향 그래프의 아래쪽에 기재하였다.
이상의 설명은, 유향 그래프의 의미하는 곳을 간단히 기술한 것에 지나지 않는다. 그래서, 이상의 설명을 근거로 하여, 여기에서는 본 실시형태의 기본 컨셉에 대해 설명한다. 이미 기술한 바와 같이, 본 실시형태는, 계산량을 증가시 키지 않고, 키 수를 감소시키는 것이 목적이다. 그래서, 키 수를 감소시키기 위하여, 어떠한 어프로치를 채택할지에 대해 이하에 기술한다.
다시 도 9를 참조한다. 유향 그래프(Q'(A→G))에 근거하는 키 배분 방식을 채용하면, 최대로 3개의 키를 가지는 유저 C가 존재한다. 또, 전 유저가 가지는 키 수는 11이다. 그래서, 유향 그래프(Q'(A→G))를 유향 그래프(Q(A→G))와 같이 변경한다. 구체적으로는, 좌표점 [A, B]에서 [A, F]로 신장한 유향지 E([A, B], [A, F])를, 좌표점 [A, D]에서 [A, F]로 신장한 유향지 E([A, D], [A, F])로 치환하면 좋다. 이와 같이 변경하면, 각 유저가 보관 유지해야 할 키 수의 최대치는, 유저 C와 유저 E에 대응하는 키 수 2이다. 또, 전 유저가 가지는 키 수는 9이다. 따라서, 변경의 전후에서 키 수가 감소하고 있다. 단, 이 변경 예에서는 계산량을 고려하지 않았다. 그 때문에, 유향 그래프(Q(A→G))는, 좌표점 [A, A]로부터 [A, G]에 도달하는 유향 패스 P([A, A], [A, G])에 4개의 유향지를 포함하고 있고, 유향 그래프(Q'(A→G))에 비하여 계산량의 최악치가 약간 증가하고 있다.
그래서, 본 실시형태는, 계산량의 최악치를 넘어 버리는 유향 그래프의 변경을 행하지 않는다고 하는 조건 아래, 도 9에 나타낸 기본 컨셉에 의거하여 키 수를 감소하는 것이 가능한 유향 그래프 생성부(110)의 구성을 제공한다. 이하, 도 10~도 14를 참조하면서, 유향 그래프 생성부(110)에 의한 유향 그래프(I)의 생성 방법에 대해 구체적으로 설명한다.
우선, 도 10을 참조하면서, 유향 그래프 생성부(110)에 의한 유향 그래프 생 성 방법의 개략에 대해 간단히 설명한다. 도 10은, 유향 그래프를 생성하는 처리 흐름의 일례를 나타낸 흐름도이다.
우선, 유향 그래프 생성부(110)는, 원하는 유향 그래프(I)를 생성하기 위하여, 가유향 그래프 생성부(108)에 의해 생성된 가유향 그래프(I')를 이용한다. 이미 기술한 바와 같이, 가유향 그래프(I')는, 기반 방식에 의한 유향 그래프(H)와 마찬가지의 방법으로 생성된다. 그래서, 가유향 그래프 생성부(108)에 의한 가유향 그래프(I')의 생성을 제1 스텝(S140)으로 한다.
그리고, 유향 그래프 생성부(110)는, 생성된 모든 가유향 그래프(I')를 구성하는 유향 패스 중에서, 최장의 유향 패스(LP(Longest Path))를 추출한다(S142). 또한, 유향 패스(LP)를 추출하는 공정은, 예를 들면, 유향 그래프 생성부(110)가 갖추는 최장 유향 패스 생성부에 의해 실행되어도 좋다. 또한, 생성된 모든 가유향 그래프(I') 중, 최장의 유향 패스(LP)를 포함하지 않는 것에 대하여, 각각, 최장의 유향 패스 PLP(Pertially Longest Path)를 추출한다(S144). 즉, 각 가유향 그래프(I')마다, 유향 패스 PLP가 추출된다. 그 후, 가유향 그래프(I')를 구성하는 유향지 중에서 소정의 유향지를 선택하고, 보다 짧은 유향지에 의해 치환한다(S146). 이때, 유향 그래프 생성부(110)는, 추출된 유향 패스(LP) 및 유향 패스 PLP의 길이에 의거하여, 상기의 계산량의 최악치가 증가하지 않는다고 하는 조건 아래, 유향지의 치환을 실행한다. 또, 상기의 유향지의 치환 공정은, 예를 들면, 유향 그래프 생성부(110)가 갖추는 유향지 치환부에 의해 실행되어도 좋다.
이상, 유향 그래프 생성부(110)에 의한 유향 그래프의 생성 공정에 대해 개 요를 설명했다. 이와 같이, 유향 그래프 생성부(110)는, 가유향 그래프 생성부(108)에 의해 생성된 가유향 그래프(I')로부터, 유향 패스(LP) 및 유향 패스 PLP를 추출하고, 이러한 유향 패스의 길이에 의거하여 소정의 유향지를 선택하여 치환함으로써, 원하는 유향 그래프를 생성할 수 있다. 이하에서는, 상기의 각 공정에 대응하는 보다 상세한 설명을 행한다.
우선, 도 11을 참조하면서, 가유향 그래프(I')의 생성 공정에 대해 설명한다. 단, 여기에서는 가유향 그래프(I') 중, 중간 노드(v)에 대응하는 유향 그래프(I'(lv→rv-1))에 대해서만 설명한다. 우선, 가유향 그래프 생성부(108)는, 소정의 정수(k)를 설정하고, Lv=rv-lv+1을 정의하고나서, n(x-1)/k<Lv≤nx/k를 만족시키는 정수(x)를 산정한다(S150). 가유향 그래프 생성부(108)는, 카운터(i)를 0에서 x-1까지 움직이면서, 다음의 조작을 반복하여 행한다. 수평좌표축의 좌단에 있는 시점으로부터 개시하고, 그 좌표점으로부터 ni /k만큼 떨어진 좌표점에 연장되는 우측방향의 유향지의 설정(그 좌표점으로부터 ni /k만큼 떨어진 좌표점으로의 점프)을, 유향지의 종단이 수평좌표축의 우단에 있는 종점에 도달하는지, 혹은, 다음에 설정되는 유향지의 종단이 해당 종점을 넘을 때까지 반복하여 행한다(S152). 그리고, 가유향 그래프 생성부(108)는, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외한다(S154). 또한, 가유향 그래프 생성부(108)는, 좌표축상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외 한다(S156).
다음에, 도 12를 참조하면서, 최장 유향 패스(LP)를 추출하는 공정(S160)에 대해 설명한다. 우선, 최장 유향 패스(LP)에 대해 설명함에 대해서, 이하에 2개의 표현을 정의한다.
·DDT:최장 유향 패스(LP)의 길이를 나타낸다.
·J(a, b):어느 유향 패스에 길이 b의 유향지가 a개 연속하여 존재하는 것을 나타낸다.
(예를 들면, 도 9에 나타낸 유향 그래프(Q'(A→G))를 예로 들면, 유향 패스 P([A, A], [A, G])는, 길이 1의 유향지 1개와, 길이 4의 유향지 1개와, 길이 1의 유향지 1개로 구성되기 때문에, J(1, 1), J(1, 4), J(1, 1)로 표현된다.)
유향 그래프 생성부(110)는, 가유향 그래프(I')를 구성하는 유향 패스의 각각에 대하여, J(a, b)를 산출할 수 있다. 예를 들면, 가유향 그래프(I'(1→n))의 좌표점 [1, 1]에서[1, n]까지의 유향 패스 P([1, 1], [1, n])를 생각하면, 유향 패스 P([1, 1], [1, n])는, J(n1 /k-1, 1), J(n1 /k-1, n1 /k),..., J(n1 /k-1, n(k-2)/k), J(n1/k-2, n(k-1)/k), J(n1 /k-1, n(k-2)/k),..., J(n1 /k-1, n1 /k), J(n1 /k, 1)로 표현된다. 상술의 가유향 그래프 생성부(108)에 의해 생성된 가생성 그래프(I')의 경우, 최장 유향 패스(LP)는, 가유향 그래프(I'(1→n))를 구성하는 유향 패스 P([1, 1], [1, n])이다. 유향 그래프 생성부(110)는, 최장 유향 패스(LP)를 추출해도 좋고, 가유향 그래프(I'(1→n))를 구성하는 유향 패스 P([1, 1], [1, n])를 한뜻으로 추출해도 좋지만, 경우에 따라서는, 유향 그래프 생성부(110)가 가유향 그래프(I')를 구성하는 모든 유향 패스의 길이를 산출하고, 그 중에서 최장의 유향 패스(LP)를 선택해도 좋다. 이때, 최장 유향 패스(LP)의 길이 DDT는, DDT=(2 k-1)*(n1 /k-1)에 의해 표현된다. 그 후, 유향 그래프 생성부(110)는, 최장 유향 패스(LP)를 구성하는 모든 유향지에 대하여, 유효한 것을 나타내는 active 마크를 설정한다.
다음에, 도 13을 참조하면서, 뿌리 노드 및 각 중간 노드에 대응하는 가유향 그래프(I')(단, 최장 유향 패스(LP)를 포함하는 그래프를 제거한다)마다 최장 유향 패스 PLP를 산출하는 공정에 대해 설명한다. 도 13은, 유향 패스 PLP의 산출 공정을 나타내는 흐름도이다.
우선, 유향 그래프마다 최장 유향 패스 PLP를 추출하는 공정을 설명함에 대해서, 이하의 2개의 표현을 정의한다.
·CP(Current Path):고려중의 유향 패스(현재 패스로 부른다)
·#JP(CP):그 유향 패스에 포함되는 유향지의 수
유향 그래프 생성부(110)는, 이하에 나타내는 알고리즘에 의거하여, 유향 패스 PLP를 추출한다.
(공정 1) 유향 그래프 생성부(110)는, 유향 그래프(I')의 시점에서 종점으로의 현재 패스(CP)를 결정한다. 이때, 고려하는 유향 그래프가, 유향 그래프(I'(a→b))일 경우에는, 유향 패스 P([a, a], [a, b])를 현재 패스(CP)로서 설정 하고, 유향 그래프(I'(a←b))일 경우에는, 유향 패스 P([b, b], [a, b])를 현재 패스(CP)로서 설정한다(S162).
(공정 2) 유향 그래프 생성부(110)는, 현재 패스(CP)를 구성하는 유향지 중, 최장의 유향지를 추출하고, 그 길이를 J로 설정한다(S164).
(공정 3) 유향 그래프 생성부(110)는, J≤1인지 아닌지를 판단하고(S166), J≤1일 경우, 현재 패스(CP)를 유향 패스 PLP로 결정하여, 이 유향 패스 PLP를 구성하는 모든 유향지에 active 마크를 설정한다(S176).
(공정 4) J>1일 경우, 유향 그래프 생성부(110)는, #JP(CP)+n1 /k-1≤DDT인지 아닌지를 판단하고(S168), #JP(CP)+n1 /k-1≤DDT가 아닐 경우, 현재 패스(CP)를 유향 패스 PLP로 결정하여, 이 유향 패스 PLP를 구성하는 모든 유향지에 active 마크를 설정한다(S176).
(공정 5) #JP(CP)+n1 / kn1/k-1≤DDT일 경우, 유향 그래프 생성부(110)는, J=nj/k가 되는 자연수 j를 산출한다(S170).
(공정 6) 유향 그래프 생성부(110)는, 현재 패스(CP)를 구성하는 길이 J의 유향지 중에서, 현재 패스(CP)의 시점으로부터 가장 먼 유향지를 추출한다(S172).
(공정 7) 유향 그래프 생성부(110)는, (공정 6)에서 추출된 유향지의 시점으로부터 신장한 n1 /k-1개의 길이 n(j-1)/k의 유향지의 직후에 n(j-1)/k의 길이를 가지는 1개의 유향지를 추가하고, (공정 6)에서 추출된 유향지를 제거한다(S174). 그 후, (공정 1)로 이행하여, 상기의 각 공정을 반복한다.
또한, 상기의 (공정 1)~(공정 6)의 사이에 생기는 처리의 루프는, 유향 그래프(I')의 시점에서 종점으로의 유향 패스가 모두 길이 1의 유향지로 구성되는지, 또는, 그 이상의 유향지의 치환을 행함으로써, 이 유향 패스를 구성하는 유효지 수가 DDT를 넘어 버릴 경우에, 이 루프를 종료한다. 이상의 처리에 의해, 유향 그래프마다 최장 유향 패스 PLP를 설정할 수 있다.
다음에, 도 14를 참조하면서, 소정의 유향지를 치환하는 공정에 대해 설명한다. 이 공정은, 각 유향 그래프에 대하여, 유향 패스를 구성하는 유효지의 수가 DDT를 넘지 않는다고 하는 조건 아래에서, 소정의 유향지를 보다 짧은 유향지로 치환하는 처리의 알고리즘을 구성한다.
유향 그래프 생성부(110)는, 이하의 알고리즘에 의거하여, 유향지를 치환한다.
(공정 1) 유향 그래프 생성부(110)는, 유향 그래프(I')를 구성하는 유향지 중, active로 설정되고, 동시에 또한, 처리가 끝나지 않고(done이 미설정), 동시에 또한, 최장의 유향지를 추출한다. 또한, 유향 그래프 생성부(110)는, 추출된 유향지의 길이를 J'로 놓는다. 만약, 길이 J'의 유향지가 복수 있을 경우, 유향 그래프 생성부(110)는, 유향 그래프(I')의 시점으로부터 가장 먼 유향지를 선택한다(S180). 이때, 선택한 유향지를 WJ(Working Jump)로 부르고, 유향지 WJ의 시점을 WJS, 종점을 WJE로 부르기로 한다. 또, 유향 그래프(I')의 시점으로부터 WJS에 도달하는 유향 패스를 구성하는 유향지의 수를 D로 표기하기로 한다.
(공정 2) 유향 그래프 생성부(110)는, 유향지 WJ의 길이 J'가 J'≤1인지 아닌지를 판단하고(S182), J'≤1일 경우, active로 설정된 유효지만으로 구성되는 유향 그래프를, 원하는 유향 그래프(I)로서 설정한다(S202). J'>1일 경우, (공정 3)으로 이행한다.
(공정 3) 유향지 WJ의 길이 J'>1일 경우, 유향 그래프 생성부(110)는, WJS로부터 (WJE-1)에 도달하는 유효 패스를 현재 패스(CP)로서 설정한다(S184). 단, (WJE-1)은, WJE의 하나 앞의 좌표점이다.
(공정 4) 유향 그래프 생성부(110)는, 현재 패스(CP)를 구성하는 유향지 중에서, 최장의 유향지를 추출하고, 그 길이를 J로 놓는다(S186).
(공정 5) 유향 그래프 생성부(110)는, 추출된 유향지의 길이 J가, J≤1인지 아닌지를 판단하고(S188), J≤1일 경우, 현재 패스(CP)를 구성하는 모든 유향지에 active를 설정하고(S198), 유향지 WJ에 done을 설정한다(S200). 그 후, 다시(공정 1)의 처리로부터 스타트한다. J>1일 경우, (공정 6)으로 이행한다.
(공정 6) J>1일 경우, 유향 그래프 생성부(110)는, #JP(CP)+n1 /k-1≤DDT-D인지 아닌지를 판단하고(S190), #JP(CP)+n1 /k-1>DDT-D일 경우에는, 현재 패스(CP)를 구성하는 모든 유향지에 active를 설정하여(S198), 유향지 WJ에 done을 설정한다(S200). 그 후, 다시 (공정 1)의 처리로부터 스타트한다. #JP(CP)+n1/k-1≤DDT-D일 경우, (공정 7)로 이행한다.
(공정 7) #JP(CP)+n1 /k-1≤DDT-D일 경우, 유향 그래프 생성부(110)는, J=nj/k를 만족시키는 자연수 j를 산출한다(S192).
(공정 8) 유향 그래프 생성부(110)는, 현재 패스(CP)를 구성하는 길이 J의 유향지 중, 현재 패스(CP)의 시점으로부터 가장 멀리에 위치하는 것을 추출한다(S194).
(공정 9) 유향 그래프 생성부(110)는, (공정 8)에서 추출된 유향지의 시점으로부터 신장한 n1 /k-1개의 길이 n(j-1)/k의 유향지의 직후에 n(j-1)/k의 길이를 가지는 1개의 유향지를 추가하고, (공정 8)에서 추출된 유향지를 제거한다(S196). 그 후, (공정 3)으로 되돌아가 상기의 각 공정을 반복한다.
또한, 상기의 (공정 3)~(공정 9)의 사이에 생기는 처리의 루프는, WJS에서 WJE-1로의 유향 패스가 모두 길이 1의 유향지로 구성되는지, 또는, 그것 이상의 유향지의 치환을 행함으로써, WJS에서 WJE-1로의 유향 패스를 구성하는 유효지 수가 DDT를 넘어 버릴 경우에, 이 루프를 종료한다. 한편, 상기의 (공정 1)~(공정 5) 또는 (공정 6)의 사이에 생기는 처리의 루프는, 유향 그래프(I')를 구성하는 유효지 중에, done이 설정되어 있지 않고, 동시에 또한, 길이가 2 이상의 유향지가 모두 없어진 시점에서 종료한다. 이상의 처리에 의해, 원하는 유향 그래프(I)를 생성할 수 있다.
마지막으로, 상기의 유향 그래프 생성 방법을 이용하여 생성한 유향 그래프(I)의 예를 나타낸다. 도 3에 나타낸 잎 노드 수 n=64의 완전 2분 트리 구조 에 의거하여, 파라미터(k=6)를 설정했을 경우의 유향 그래프(I)를 도 15에 나타냈다.
우선, 기반 방식에 의거하여 생성된 유향 그래프(H)(도 4)와, 본 실시형태에 관계되는 유향 그래프(I)(도 15)를 비교하면 이하의 2점을 용이하게 알 수 있다.
(1) 유향 그래프(I)는, 유향 그래프(H)에 비하여 길이 2 이상의 유향지의 수가 감소하고, 1개의 좌표점으로부터 신장하는 유향지의 수가 감소한 점.
(2) 유향 그래프(I)를 구성하는 유향 패스의 어느 것도, 유향 그래프(H)의 최장 유향 패스(LP)(P([1, 1], [1, 64]))의 길이를 넘지 않는 점.
따라서, 세트키의 생성에 필요한 계산량의 최악치를 증가시키지 않고, 유저가 보관 유지해야 할 중간키의 키 수를 줄이는 것이 가능한 유향 그래프(I)가 생성되는 것이 확인되었다.
마찬가지로, 파라미터(k)를 k=3으로 했을 경우에 대해서도 비교한다. 기반 방식에 근거하는 키 배분 방법에서는, 각 유저에게 배포해야 할 중간키의 키 수가 O(k*log(n))이 되고, 파라미터(k)가 감소하면, 각 유저가 보관 유지해야 할 키 수가 감소한다. 그러나, 파라미터(k)가 감소함으로써 계산량이 증가한다고 하는 문제가 있다. 그래서, 구체적으로 파라미터(k)가 감소했을 경우의 효과에 대해서도 검토해 보자. 도 16에는, 기반 방식에 의거하여 생성된 유향 그래프(H)를, 도 17에는, 본 실시형태에 관계되는 유향 그래프(I)를 나타냈다.
같은 기반 방식을 채용하여 생성한 유향 그래프(H)(도 4:k=6, 도 16:k=3)를 비교하면, k=3의 유향 그래프(H)는, 길이 2 이상의 유향지의 수가 감소하고, 1 개의 좌표점으로부터 신장하는 유향지의 수가 감소하고 있다. 그러나, k=3의 경우는, 유향 그래프(H)의 최장 유향 패스(LP)(P([1, 1], [1, 64]))를 구성하는 유향지의 수가 15로 되어, k=6의 경우(유향지 수=11)보다 커지고 있다. 다음에, 같은 k=3의 경우에 대하여, 기반 방식에 관계되는 유향 그래프(H)(도 16)와, 본 실시형태에 관계되는 유향 그래프(I)(도 17)를 비교하면, 최장 유향 패스(LP)를 구성하는 유향지의 수는 함께 15로 변하지 않지만, 길이 2 이상의 유향지의 개수는 유향 그래프(I)의 쪽이 적다. 따라서, 파라미터(k)에 의존하지 않고 본 실시형태의 효과가 얻어지는 것을 확인할 수 있었다.
본 실시형태에 관계되는 키 수 삭감 효과를 보다 정량적으로 이해하기 위하여, 기반 방식(종래 방식으로 표기)와 본 실시형태의 비교 결과를 표 형식으로 도 18에 나타냈다. 도 18을 참조하면, k=6의 경우에는, 전 유저에 대해 보관 유지해야 할 키 수가 저감되고 있다. 물론, 총 키 수, 평균 키 수에 있어서도 마찬가지이다. 또한, 기반 방식(k=3)와 본 실시형태의 방식(k=6)을 비교하면, 각 유저가 보관 유지해야 할 키 수는, 거의 동일한 정도가 되는 것을 알 수 있다. 이 비교는, 본 실시형태를 적용함으로써, 키 수를 동일한 정도로 유지하면서, 계산량을 삭감할 수 있다고 하는 효과를 나타내고 있다. 이상의 결과는, 유저 수 n이 n=64라고 하는 작은 수로 실시된 것이기 때문에, 삭감되는 키 수의 절대치는 그만큼 크지 않다고 생각될지도 모르지만, 실시 환경에 있어서는, 유저 수가 현격한 차이로 크기 때문에, 그 삭감 효과는 지극히 현저하다고 말할 수 있다.
이상, 세트키를 생성하는데 필요한 계산량의 최악치를 증가시키지 않고, 유 저가 보관 유지해야 할 중간키의 키 수를 줄이는 것이 가능한 유향 그래프의 생성 논리에 대해 설명했다. 상기의 키 생성 논리(유향 그래프)의 구축은, 주로, 키 배분 서버(102)를 구성하는 키 생성 논리 구축 블럭에 의해 실행된다. 그러나, 상기의 키 생성 논리에 의거하여 암호키 배분을 실행하기 위해서는, 다른 구성요소가 필요하다. 그래서, 다시 도 8을 참조하면서, 다른 구성요소에 대해서도 설명한다.
재차, 도 8을 참조하면, 키 배분 서버(102)는, 상기의 키 생성 논리 구축 블럭 외에, 초기 중간키 설정부(112)와, 키 생성부(114)와, 암호화부(116)와, 송신부(118)와, 부분집합 결정부(120)로 구성된다.
(초기 중간키 설정부(112))
초기 중간키 설정부(112)는, 트리 구조의 각 중간 노드에 대응하는 각 유향 그래프(I)에 대하여, 유향 그래프(I)의 선두 좌표점에 대응하는 중간키를 생성한다. 예를 들면, 초기 중간키 설정부(112)는, 의사 난수 생성기에 의해 난수를 발생시켜, 상기의 선두 좌표점(루트)에 대응하는 각 중간키에 대하여 난수를 설정해도 좋고, 또는 소정의 수치를 각 중간키로 설정해도 좋다.
(키 생성부(114))
키 생성부(114)는, 유향 그래프(I)를 구성하는 어느 유향지에 대하여, 그 유향지의 시점이 가리키는 좌표점에 할당된 소정의 중간키가 입력되면, 그 유향지의 시점이 가리키는 좌표점에 대응하는 세트키와, 그 유향지의 시점으로부터 신장하는 모든 유향지의 종점에 대응하는 중간키를 출력한다. 즉, 키 생성부(114)는, 기 반 방식의 PRSG에 대응하는 것이다. 단, 키 생성부(114)는, 유향 그래프 생성부(110)에 의해 생성된 유향 그래프(I)에 의거하여 중간키를 출력하는 점에서, 기반 방식의 PRSG와는 다르다. 만약, 키 생성부(114)를 같은 PRSG로 표현한다면, 유향 그래프(I)의 어느 좌표점(S0)에 대응하는 중간키 t(S0)를 입력하면, 좌표점(부분집합(S0)에 대응)을 시점으로 하는 유향지의 종점에 대응하는 중간키 t(S1), t(S2),..., t(Sm)와, 세트키 k(S0)를 출력한다. 단, m은, 어느 좌표점(S0)를 시점으로 하는 유향지의 개수를 나타내고 있다.
(송신부(118))
송신부(118)는, 잎 노드에 대응하는 전 유저에 대해, 후술하는 암호부(116)에 의해 암호화된 콘텐츠 키를 배분한다. 송신부(118)는, 상기의 유향 그래프(I)를 참조하면서, 각 유저에 대하여 중간키를 배분한다. 이때, 송신부(118)는, 각 유저가, 자신이 소속하는 부분집합에 대응하는 중간키를 모두 도출할 수 있도록, 필요 최저한의 중간키를 배분해도 좋다. 즉, 송신부(118)는, 세트 시스템 Φ(상기 식(1) 참조)을 구성하는 부분집합 중에서, 중간키의 배분처 유저가 소속하는 부분집합을 추출하고, 그 추출된 부분집합에 대응하는 유향 그래프(I)의 좌표점 중, 그 좌표점에 도달하는 유향지의 시점에 대응하는 부분집합에 해당 배분처 유저가 포함되지 않도록 하는 좌표점을 선택하여, 그 선택된 좌표점에 대응하는 중간키만을 해당 배분처 유저에게 배분해도 좋다. 단, 송신부(118)는, 중간키의 배분처 유저가 소속하는 부분집합이, 유향 그래프(I)의 선두 좌표점에 대응하는 경우에는, 해당 선두 좌표점에 대응하는 중간키만을 해당 배분처 유저에게 배분해도 좋 다. 또, 송신부(118)는, 유향 그래프(I)의 정보를 각 유저에게 배분하는 유향 그래프 정보 배분부로서 기능해도 좋다. 즉, 송신부(118)는, 각 중간키를 입력함으로써, 유향 그래프(I)에 의거하여 소정의 중간키와 세트키를 출력하는 PRSG의 키 생성 알고리즘에 관한 정보(예를 들면, 키 생성 프로그램)를 배분해도 좋다.
또한, 이 중간키의 배포는, 콘텐츠의 배포에 앞서 콘텐츠의 배분과는 다른 통신로를 이용해 가도 좋다. 예를 들면, 키 배분 서버(102)가 각 단말용의 중간키를 출력하여 기록 매체에 기록하고, 단말장치를 제조하는 공장에 있어서, 단말의 제조시에, 이 기록 매체로부터 읽어낸 각 단말장치의 중간키를 각각 대응하는 단말장치에 저장해도 좋다.
(암호화부(116))
암호화부(116)는, 세트키를 이용하여 콘텐츠 키를 암호화한다. 콘텐츠 키는 하나이지만, 세트키는 세트 시스템 Φ을 구성하는 부분집합의 수만큼 존재한다. 암호화부(116)는, 세트 시스템 Φ을 구성하는 모든 부분집합 중, 후술하는 부분집합 결정부(120)에 있어서 선택된 부분집합에 대응하는 각 세트키를 이용하여 콘텐츠 키를 암호화한다. 즉, 암호키 116은, 각 세트키에 대응하는 암호화된 콘텐츠 키를 생성한다. 그 때문에, 선택된 부분집합의 수가 m이면, 암호화된 콘텐츠 키도 m개 작성된다. 또한, 암호화부(116)는, 콘텐츠 자체를 암호화해도 좋다. 예를 들면, 암호화부(116)는, 콘텐츠 키를 이용하여 콘텐츠 자체를 암호화해도 좋고, 상기의 각 세트키를 이용하여 콘텐츠 자체를 암호화해도 좋다. 단, 세트키를 이용하여 콘텐츠 자체를 암호화하는 구성은, 본 실시형태의 한 변형 예이다.
(부분집합 결정부(120))
부분집합 결정부(120)는, 콘텐츠 또는 콘텐츠 키를 복호 불능으로 해야 할 배제 유저의 집합(R)을 결정하고, 유향 그래프(I)의 좌표점에 대응하는 부분집합 중에서, 선택된 소정의 부분집합의 합집합에 의해, 유저의 집합(N)으로부터 배제 유저의 집합(R)을 제외한 허락 유저의 집합(N\R)을 정의하고나서, 허락 유저의 집합(N\R)을 구성하는 부분집합의 수가 최소로 되도록, 허락 유저의 집합(N\R)을 구성하는 부분집합의 조를 결정한다. 또한, 부분집합 결정부(120)는, 허락 유저의 집합(N\R)을 결정하는 허락 유저 집합 결정부와, 허락 유저의 집합(N\R)을 구성하는 부분집합의 조를 결정하는 허락 유저 부분집합 결정부로 구성되어 있어도 좋다.
상기와 같이, 부분집합 결정부(120)에 의해 허락 유저의 집합(N\R=S1∪S2∪...∪Sm;m은 자연수)을 구성하는 부분집합(S1, S2,..., Sm)이 결정되면, 송신부(118)는, 허락 유저의 집합(N\R) 또는 허락 유저의 집합(N\R)을 구성하는 부분집합(S1, S2,..., Sm)을 나타내는 정보를 각 유저에 대하여 배분한다. 또, 암호화부(116)는, 부분집합 결정부(120)에 의해 결정된 부분집합(S1, S2,..., Sm)에 대응하는 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 암호화하고, 그리고, 송신부(118)는, 그 암호화된 콘텐츠 또는 콘텐츠 키를 각 유저에 대하여 배분한다.
이상, 본 발명의 매우 적합한 실시형태에 관계되는 키 배분 서버(102)의 구성에 대해 설명했다. 이와 같이, 본 실시형태의 특징은, 주로, 키 생성 논리 구축 블럭의 구성에 있다. 특히, 키 생성 논리를 결정하는 유향 그래프를 생성하 기 위한 유향 그래프 생성부(110)의 구성에 특징을 가지고 있다. 본 실시형태에 관계되는 유향 그래프 생성부(110)는, 각 유저가 세트키를 생성할 때에 필요로 하는 계산량을 증가시키지 않고, 각 유저가 보관 유지해야 할 중간키의 키 수를 저감 시키는 것이 가능한 키 생성 논리(유향 그래프)를 생성할 수 있다. 그 결과, 각 유저의 단말장치가 중간키를 보관 유지하기 위하여 필요로 하는 메모리 양을 삭감할 수 있는 동시에, 각 유저의 단말장치에 중간키를 배분하기 위한 배분 코스트를 줄이는 것이 가능하게 된다.
[단말장치(122)의 구성]
다음에, 도 8을 참조하면서 본 실시형태에 관계되는 단말장치(122)의 구성에 대해 설명한다.
도 8을 참조하면, 단말장치(122)는, 수신부(124)와, 판단부(126)와, 키 생성부(128)와, 복호부(130)로 구성된다.
(수신부(124))
수신부(124)는, 키 배분 서버(102)가 갖추는 송신부(118)로부터 송신된 정보를 수신한다. 예를 들면, 수신부(124)는, 키 배분 서버(102)로부터 배분된 콘텐츠, 암호화된 콘텐츠 키, 소정의 중간키, 유향 그래프(I)에 관한 정보, 또는 허락 유저에 관한 정보 등을 수신한다. 또, 수신부(124)는, 하나의 정보원으로부터 정보를 수신할 뿐만 아니라, 복수의 정보원으로부터 정보를 수집해도 좋다. 예를 들면, 수신부(124)는, 유선 또는 무선의 네트워크에 접속된 복수의 정보원(예를 들면, 키 배분 서버(102)), 또는 네트워크를 통하지 않고 직접적 또는 간접적으로 접속된 정보원(예를 들면, 광디스크 장치, 자기 디스크장치, 또는 휴대형 단말장치 등의 정보 미디어)으로부터 정보를 취득해도 좋다. 물론, 수신부(124)는, 다른 단말장치(122)로부터 정보를 수신해도 좋기 때문에, 예를 들면, 유향 그래프(I)의 정보를, 동일한 배분처 그룹에 속하는 다른 단말장치(122)와의 사이에 공유하도록 구성되어 있어도 좋다. 이 경우, 동일한 배분처 그룹이란, 동일 또는 복수의 키 배분 서버(102)로부터 배분되는 콘텐츠의 시청자 유저로서 인정된 그룹을 의미하고, 상기의 트리 구조의 잎 노드에 대응하는 유저의 집합에 대응한다. 또, 상기의 중간키는, 미리 단말장치에 주어지고, 단말장치에 의해 보관 유지되어 있어도 좋다.
(판단부(126))
판단부(126)는, 암호화에 이용된 세트키에 대응하는 부분집합의 어느 것인지에 자신이 요소로서 포함되는지 아닌지를 판단한다. 단말장치(122)는, 자신이 소속하는 부분집합에 대응하는 세트키를 생성하기 위한 중간키 밖에 보관 유지하고 있지 않기 때문에, 키 배분 서버(102)가 콘텐츠 또는 콘텐츠 키를 암호화하기 위하여 이용한 세트키의 정보로부터, 그러한 세트키에 대응하는 부분집합 중에, 자신이 소속하는 부분집합이 포함되는지 아닌지를 미리 판단할 필요가 있다. 이 판단을 행하는 것이 판단부(126)이다. 또한, 암호화에 이용된 세트키의 정보는, 키 배분 서버(102)로부터 콘텐츠 키와 동시 또는 다른 타이밍에 배분되고 있고, 수신부(124)에 의해 수신되고 있다. 만약, 암호화에 이용된 세트키 중에, 자신이 소속하는 부분집합에 대응한 세트키가 포함되어 있지 않다고 판단되었을 경우에는, 자신의 보관 유지하는 중간키로부터 세트키를 생성하는 처리를 실행시키지 않고 콘텐츠 키의 복호 처리를 종료한다. 반대로, 단말장치(122)는, 자신이 소속하는 부분집합에 대응한 세트키가 발견되었을 경우에는, PRSG를 이용하여 자신이 보관 유지하는 중간키로부터 그 세트키를 생성한다.
(키 생성부(128))
키 생성부(128)는, 유향 그래프(I)를 구성하는 어느 유향지에 대하여, 그 유향지의 시점이 가리키는 좌표점에 할당된 소정의 중간키가 입력되면, 그 유향지의 시점이 가리키는 좌표점에 대응하는 세트키와, 그 유향지의 시점으로부터 신장하는 모든 유향지의 종점에 대응하는 중간키를 출력한다. 즉, 키 생성부(128)는, 키 배분 서버(102)가 갖추는 키 생성부(114)에 대응하는 것이다. 만약, 키 생성부(128)를 PRSG로 표현한다면, 유향 그래프(I)의 어느 좌표점(S0)에 대응하는 중간키 t(S0)를 입력하면, 좌표점(S0)를 시점으로 하는 유향지의 종점에 대응하는 중간키 t(S1), t(S2),..., t(Sm)와, 세트키 k(S0)를 출력한다. 단, m은, 어느 좌표점(S0)를 시점으로 하는 유향지의 개수를 나타내고 있다. 또한, 유향 그래프(I)의 정보는, 키 배분 서버(102)로부터 취득해도 좋고, 단말장치(122)가 갖추는 기억부(도시하지 않음)에 저장되어 있어도 좋다.
(복호부(130))
복호부(130)는, 세트키를 이용하여 콘텐츠 키를 복호한다. 구체적으로는, 복호부(130)는, 세트키에 대응하는 부분집합 중에서, 자신이 요소로서 포함되는 부분집합을 추출하고, 해당 부분집합에 대응하는 세트키를 이용하여 콘텐츠 또는 콘 텐츠 키를 복호한다.
이상, 본 실시형태에 관계되는 단말장치(122)의 구성에 대해 설명했다. 이와 같이, 단말장치(122)는, 상기의 키 배분 서버(102)가 갖추는 유향 그래프 생성부(110)에 의해 생성된 특수한 키 생성 논리(유향 그래프(I))에 의거하여, 원하는 세트키를 생성할 수 있다. 그 결과, 단말장치(122)는, 콘텐츠 키를 복호하기 위하여 이용하는 세트키를 생성하기 위하여 필요한 보관 유지해야 할 중간키의 키 수를 억제하는 것이 가능하게 된다.
<제2 실시형태>
다음에, 본 발명의 제2 실시형태에 관계되는 암호키 배분 방식에 대해 설명한다. 이 실시형태에 관계되는 암호키 배분 방식은, 보다 긴 유향지로 구성된 가유향 그래프를 생성한 후, 가유향 그래프를 구성하는 유효지를 보다 짧은 유향지로 치환하여, 유향 그래프를 재구성함으로써, 단말장치(122)가 보관 유지하는 중간키 수를 줄이면서, 단말장치(122)가 세트키의 생성에 필요로 하는 계산량을 삭감할 수 있다. 이하에서는, 본 실시형태에 관계되는 암호키 배분 방식을 실현하기 위한 키 배분 서버(152)의 기능 구성과 함께, 이 암호키 배분 방식의 특징 및 작용 효과에 대해 상술한다. 또한, 상기의 제1 실시형태와의 주된 차이점은, 키 배분 서버(152)의 기능 구성에 있다. 그래서, 상기의 제1 실시형태와 실질적으로 동일한 구성요소에 대해서는, 동일한 부호를 붙임으로써 중복되는 설명을 생략한다.
[키 배분 서버(152)의 구성]
우선, 도 19를 참조하면서, 본 실시형태에 관계되는 키 배분 서버(152)의 구 성에 대해 상세하게 설명한다. 도 19는, 본 실시형태에 관계되는 키 배분 서버(152) 및 단말장치(122)의 구성을 나타내는 블럭도이다.
도 19에 나타내는 바와 같이, 키 배분 서버(152)는, 트리 구조 설정부(154)와, 좌표축 설정부(156)와, 가유향 그래프 생성부(158)와, 유향 그래프 생성부(160)와, 초기 중간키 설정부(162)와, 키 생성부(164)와, 암호화부(166)와, 송신부(168)와, 부분집합 결정부(170)로 구성된다. 특히, 트리 구조 설정부(154)와, 좌표축 설정부(156)와, 가유향 그래프 생성부(158)와, 유향 그래프 생성부(160)를 통합하여, 키 생성 논리 구축 블럭으로 부르기로 한다. 마찬가지로, 초기 중간키 설정부(162)와, 키 생성부(164)를 통합하여, 키 생성 블럭으로 부르기로 한다.
우선, 키 생성 논리 구축 블럭을 구성하는 각 구성요소에 대해 설명한다. 이 키 생성 논리 구축 블럭은, 상기의 [기반기술의 설명]에 있어서의 (트리 구조의 설정) 및 (유향 그래프의 생성)에 대응하는 처리를 실행한다.
트리 구조 설정부(154)는, 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정한다. 또, 트리 구조 설정부(154)는, 뿌리 노드에 대하여 집합(1→n)과 집합(2←n)을 할당하여, 어느 중간 노드(v)가, 그 부모 노드의 좌측에 위치하는 경우에는, 해당 중간 노드에 대하여 집합(lv+1←rv)을 할당하고, 중간 노드(v)가, 그 부모 노드의 우측에 위치하는 경우에는, 해당 중간 노드에 대하여 집합(lv→rv-1)을 할당한다.
상기와 같이, 트리 구조 설정부(154)는, m분 트리 구조를 구축 가능한 구성을 가지고 있지만, 예를 들면, m=2(2분 트리 구조)의 경우를 상정하면, 기반 방식에 관계되는 2분 트리 구조(도 3)에 일치하는 트리 구조를 구축할 수 있다. 따라서, 트리 구조 설정부(154)가 구축하는 트리 구조의 각 노드가 가지는 의미는, 상기의 기반 방식에 의해 구축된 2분 트리 구조의 각 노드가 가지는 의미와 실질적으로 동일하다. 이하, 설명의 형편상, 2분 트리 구조로 한정해 설명하지만, 이것으로 한정되는 것은 아니다.
(좌표축 설정부(156))
좌표축 설정부(156)는, 집합(1→n)에 포함되는 각 부분집합에 대응하는 좌표점을, 우측방향을 향해 포함 관계가 커지도록 배열한 제1 수평좌표축을 설정한다. 다음에, 좌표축 설정부(156)는, 집합(2←n)에 포함되는 각 부분집합에 대응하는 좌표점을, 좌측방향을 향해 포함 관계가 커지도록 배열한 제2 수평좌표축을 설정한다. 그리고, 좌표축 설정부(156)는, 각 중간 노드(v)에 대하여, 집합(lv→rv-1)에 포함되는 각 부분집합에 대응하는 좌표점을, 우측방향을 향해 포함 관계가 커지도록 배열한 제3 수평좌표축을 설정한다. 또한, 좌표축 설정부(156)는, 각 중간 노드(v)에 대하여, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응하는 좌표점을, 좌측방향을 향해 포함 관계가 커지도록 배열한 제4 수평좌표축을 설정한다. 그 후, 좌표축 설정부(156)는, 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치한다. 또한, 좌표축 설정부(156)는, 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치한다.
상기와 같이, 좌표축 설정부(156)는, 트리 구조 설정부(154)에 의해 설정된 트리 구조의 각 노드에 대응하는 유향 그래프를 구축하기 위한 좌표축을 설정한다. 제1 수평좌표축은, 집합(1→n)에 대응하는 좌표축을, 제2 수평좌표축은, 집합(2←n)에 대응하는 좌표축을, 제3 수평좌표축은, 집합(lv→rv-1)에 대응하는 좌표축을, 제4 수평좌표축은, 집합(lv+1←rv)에 대응하는 좌표축을 나타낸다. 물론, 제3 수평좌표축 및 제4 수평좌표축은, 각 중간 노드(v)에 대하여 설정되기 때문에, 각각, 복수의 좌표축이 설정된다. 즉, 중간 노드의 수만큼, 제3 수평좌표축과 제4 수평좌표축이 설정된다.
(가유향 그래프 생성부(158))
가유향 그래프 생성부(158)는, 소정의 정수(k)를 설정하고, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정한다. 그리고, 가유향 그래프 생성부(158)는, 정수(i=0~x-1)의 각각에 대하여, ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고, 또한, ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평 좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성한다. 다음에, 가유향 그래프 생성부(158)는, 제1~4 수평좌표축의 각각에 대하여, 가좌표점을 시점 또는 종점으로 하는 모든 유향지를 제외한다. 그리고, 가유향 그래프 생성부(158)는, 제1~4 수평좌표축 상의 각 좌표점에 도달하는 유향지 중, 최장의 유향지 이외의 유향지를 제외하여, 집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성한다. 그 후, 가유향 그래프 생성부(158)는, 집합(1→n-1)에 관한 가유향 그래프에 대해, 제1 수평좌표축 상에 있는 제1의 가좌표점을 종점으로 하는 길이 1의 유향지(우측방향)를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성한다.
상기와 같이, 가유향 그래프 생성부(158)는, 기반 방식과 유사한 방법에 의해, 유향 그래프를 생성한다. 그러나, 가유향 그래프 생성부(158)는, 기반 방식의 유향 그래프와 비교하여, 보다 긴 유향지로 구성되는 유향 그래프를 생성할 수 있다. 이것은, 후술하는 바와 같이, 각 유저가 세트키의 도출에 필요로 되는 계산량을 저감시킨다. 그래서, 가유향 그래프 생성부(158)가 실행하는 처리에 관계되는 처리 흐름에 대하여, 도 20을 참조하면서 상세하게 설명한다. 도 20은, 가유향 그래프 생성부(158)에 의한 유향 그래프 생성에 관계되는 처리 흐름을 나타낸 흐름도이다.
도 20을 참조하면, 가유향 그래프 생성부(158)는, 이하에 나타내는 각 공정을 거쳐 유향 그래프를 작성한다. 단, 여기에서는 집합(lv→rv-1)에 대응하는 가유향 그래프(I'(lv→rv-1))의 생성 방법을 예로 들어 설명한다.
(공정 1;S240) 가유향 그래프 생성부(158)는, 집합(lv→rv-1)에 포함되는 각 부분집합을, 수평인 직선(수평좌표축) 상에 왼쪽에서 오른쪽으로 포함 관계가 커지도록 늘어놓아 배치한다. 보다 정확하게는, 가유향 그래프 생성부(158)는, 집합(lv→rv-1)의 각 요소를 이루는 부분집합을, 수평좌표축 상의 각 좌표점에 할당하여, 할당된 부분집합의 포함 관계가 우측방향을 향해 커지도록 좌표점을 배치한다. 그리고, 가유향 그래프 생성부(158)는, 수평좌표축 상의 가장 오른쪽에 위치하는 좌표점의 우측에, 2개의 가좌표점을 배치한다. 이때, 좌표축상에 배치된 가장 왼쪽의 좌표점으로부터 가장 오른쪽의 좌표점까지의 거리 Lv는, Lv=rv-lv+1이 된다. 이 시점에서, 가유향 그래프 생성부(158)는, n(x-1)/k<Lv≤nx/k를 만족시키는 정수 x(1≤x≤k)를 산정한다.
(공정 2;S242) 가유향 그래프 생성부(158)는, 정수치 i를 카운터로서 설정하고, 카운터(i)를 0~x-1까지 변화시키면서, 다음의 조작을 반복하여 행한다. 수평좌표축의 좌단에 있는 시점으로부터 개시하고, 그 좌표점으로부터 ni /k만큼 떨어진 좌표점으로 연장되는 우측방향의 유향지의 설정(그 좌표점으로부터 ni /k만큼 떨어진 좌표점으로의 점프)을, 유향지의 종단이 수평좌표축의 우단 또는 그 1개 왼쪽에 있는 가좌표점에 도달하는지, 혹은, 다음에 설정되는 유향지의 종단이 해당 가좌표점의 어느 쪽인지를 넘을 때까지, 반복하여 행한다.
(공정 3;S244) 가유향 그래프 생성부(158)는, (공정 2)에서 작성한 유향지 중, 가좌표점에 도달하는 유향지를 모두 제거한다.
(공정 4;S246) 어느 좌표점에 도달하는 유향지가 복수 존재하는 경우, 가유향 그래프 생성부(158)는, 최장의 유향지 이외의 유향지를 모두 제거한다.
이상의 공정에 의해, 가유향 그래프 생성부(158)는, 기반 방식에 비하여, 보다 긴 유향지에 의해 형성되는 유향 그래프를 생성하는 것이 가능하게 된다. 또한, 가유향 그래프 생성부(158)는, 트리 구조를 구성하는 모든 중간 노드 및 뿌리 노드에 대하여, 상기의 가유향 그래프(I'(lv→rv-1))와 마찬가지의 방법에 의해 각 유향 그래프를 생성한다. 예를 들면, 가유향 그래프 생성부(158)는, 어느 중간 노드(v)에 대응하는 가유향 그래프(I'(lv+1←rv))를 생성하고, 또한, 뿌리 노드에 대응하는 가유향 그래프(I'(1→n) 및 I(2←n))를 생성한다. 이때, 가유향 그래프(I'(lv+1←rv) 및 I(2←n))는, 각각에 포함되는 부분집합의 포함 관계가 「좌측방향」을 향해 커지도록 각 좌표점이 배치된 수평좌표축 상에 형성된다. 즉, 상기의 (공정 1)에 의해 설정되는 수평좌표축 상의 좌표점 배치 룰이 거꾸로 된다. 또한, 가유향 그래프(I'(lv+1←rv) 및 I(2←n))를 형성하기 위한 2개의 가좌표점은, 수평좌표축 상의 가장 왼쪽에 위치하는 좌표점의 좌측에 배치된다. 또, 유향 그래프(I(1→n))는, 유향 그래프(I(1→n-1))에 유향지 E([1, n-1], [1, n])를 부가하여 생성된다.
상기의 유향 그래프 생성 방법을 이용하면, 도 21에 나타내는 가유향 그래프(I')가 생성된다. 도 21은, 도 3에 나타낸 잎 노드 수 n=64의 완전 2분 트리 구조에 의거하여, 파라미터(k=6)를 설정했을 경우에 형성되는 가유향 그래프(I')이 다.
(유향 그래프 생성부(160))
유향 그래프 생성부(160)는, 가유향 그래프에 포함되고, 연결한 복수의 유향지에 의해 형성되는 유향 패스 중, 유향 패스를 구성하는 유향지의 수가 최대가 되는 최장 유향 패스를 결정한다. 그리고, 유향 그래프 생성부(160)는, 최장의 유향 패스를 구성하는 유향지의 수를 넘지 않도록, 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지의 조에 치환하여 각 유향 패스를 재구성하고, 재구성된 유향 패스에 의해 형성되는 유향 그래프를 생성한다.
상기와 같이, 유향 그래프 생성부(160)는, 가유향 그래프 생성부(158)에 의해 구축된 가유향 그래프(I')에 의거하여 원하는 유향 그래프(I)를 생성한다. 즉, 기반 방식에서는 가유향 그래프(I')와 실질적으로 동일한 유향 그래프(H)까지 밖에 생성할 수 없었지만, 본 실시형태에 관계되는 키 배분 서버(152)는, 이 유향 그래프 생성부(160)를 갖춤으로써, 더욱 효율적인 세트키 생성 논리를 나타내는 유향 그래프(I)를 생성하는 것이 가능하게 된다. 그래서, 유향 그래프 생성부(160)가 실행하는 처리에 관계되는 처리 흐름에 대해 상세하게 설명한다.
우선, 도 22를 참조하면서, 유향 그래프 생성부(160)에 의한 유향 그래프 생성 방법의 개략에 대해 간단하게 설명한다. 도 22는, 유향 그래프를 생성하는 처리 흐름의 일례를 나타낸 플로차트이다.
우선, 유향 그래프 생성부(160)는, 원하는 유향 그래프(I)를 생성하기 위하여, 가유향 그래프 생성부(158)에 의해 생성된 가유향 그래프(I')를 이용한다.
그리고, 유향 그래프 생성부(160)는, 생성된 모든 가유향 그래프(I')를 구성하는 유향 패스 중에서, 최장의 유향 패스(LP)(Longest Path)를 추출한다(S250). 또한, 유향 패스(LP)를 추출하는 공정은, 예를 들면, 유향 그래프 생성부(160)가 갖추는 최장 유향 패스 생성부에 의해 실행되어도 좋다. 또한, 생성된 모든 가유향 그래프(I') 중, 최장의 유향 패스(LP)를 포함하지 않는 것에 대하여, 각각, 최장의 유향 패스 PLP(Pertially Longest Path)를 추출한다(S252). 즉, 각 가유향 그래프(I')마다, 유향 패스 PLP가 추출된다. 그 후, 가유향 그래프(I')를 구성하는 유향지 중에서 소정의 유향지를 선택하고, 보다 짧은 유향지에 의해 치환한다(S254). 이때, 유향 그래프 생성부(160)는, 추출된 유향 패스(LP) 및 유향 패스 PLP의 길이에 의거하여, 상기의 계산량의 최악치가 증가하지 않는다고 하는 조건아래, 유향지의 치환을 실행한다. 또한, 상기의 소정의 유향지의 선택 공정은, 예를 들면, 유향 그래프 생성부(160)가 갖추는 치환 유향지 선택부에 의해 실행되어도 좋다. 또, 상기의 유향지의 치환 공정은, 예를 들면, 유향 그래프 생성부(160)가 갖추는 유향지 치환부에 의해 실행되어도 좋다.
이상, 유향 그래프 생성부(160)에 의한 유향 그래프의 생성 공정에 대해 개요를 설명했다. 이와 같이, 유향 그래프 생성부(160)는, 가유향 그래프 생성부(158)에 의해 생성된 가유향 그래프(I')로부터, 유향 패스(LP) 및 유향 패스 PLP를 추출하고, 이러한 유향 패스의 길이에 의거하여 소정의 유향지를 선택하여 치환함으로써, 원하는 유향 그래프를 생성할 수 있다. 이하에서는, 상기의 각 공정에 대응하는 것보다 상세한 설명을 행한다.
우선, 도 23을 참조하면서, 최장 유향 패스(LP)를 추출하는 공정(S260)에 대해 설명한다. 우선, 최장 유향 패스(LP)에 대해 설명함에 대해서는, 이하에 2개의 표현을 정의한다.
·DDT:최장 유향 패스(LP)의 길이를 나타낸다.
·J(a, b):어느 유향 패스에 길이 b의 유향지가 a개 연속하여 존재하는 것을 나타낸다.
유향 그래프 생성부(160)는, 가유향 그래프(I')를 구성하는 유향 패스의 각각에 대하여, J(a, b)를 산출할 수 있다. 예를 들면, 가유향 그래프(I'(1→n))의 좌표점 [1, 1]에서 [1, n]까지의 유향 패스 P([1, 1], [1, n])를 생각하면, 유향 패스 P([1, 1], [1, n])는, J(n1 /k-1, n(k-1)/k), J(n1 /k-1, n(k-2)/k),..., J(n1 /k, 1)로 표현된다. 상술의 가유향 그래프 생성부(158)에 의해 생성된 가생성 그래프(I')의 경우, 유향 패스(LP)는, 가유향 그래프(I'(1→n))를 구성하는 유향 패스 P([1, 1], [1, n])이다. 유향 그래프 생성부(160)는, 최장 유향 패스(LP)를 추출해도 좋고, 가유향 그래프(I'(1→n))를 구성하는 유향 패스 P([1, 1], [1, n])를 한뜻으로 추출해도 좋지만, 경우에 따라서는, 유향 그래프 생성부(160)가 가유향 그래프(I')를 구성하는 모든 유향 패스의 길이를 산출하고, 그 중에서 최장의 유향 패스(LP)를 선택해도 좋다. 이때, 최장 유향 패스(LP)의 길이 DDT는, DDT=k*(n1/k-1)에 의해 표현된다. 그 후, 유향 그래프 생성부(160)는, 최장 유향 패스(LP)를 구성하는 모든 유향지에 대해, 유효한 것을 나타내는 active 마크 를 설정한다.
다음에, 도 24를 참조하면서, 뿌리 노드 및 각 중간 노드에 대응하는 가유향 그래프(I')(단, 최장 유향 패스(LP)를 포함하는 그래프를 제거한다) 마다 최장 유향 패스 PLP를 산출하는 공정에 대해 설명한다. 도 24는, 유향 패스 PLP의 산출 공정을 나타내는 플로차트이다.
우선, 유향 그래프마다 최장 유향 패스 PLP를 추출하는 공정을 설명함에 대해서는, 이하의 2개의 표현을 정의한다.
·CP(Current Path):고려중의 유향 패스(현재 패스로 부른다)
·#JP(CP):그 유향 패스에 포함되는 유향지의 수
유향 그래프 생성부(160)는, 이하에 나타내는 알고리즘에 의거하여, 유향 패스 PLP를 추출한다.
(공정 1) 유향 그래프 생성부(160)는, 유향 그래프(I')의 시점에서 종점으로의 현재 패스(CP)를 결정한다. 이때, 고려하는 유향 그래프가, 유향 그래프 I'(a→b)일 경우에는, 유향 패스 P([a, a], [a, b])를 현재 패스(CP)로서 설정하고, 유향 그래프(I'(a←b))일 경우에는, 유향 패스 P([b, b], [a, b])를 현재 패스(CP)로서 설정한다(S262).
(공정 2) 유향 그래프 생성부(160)는, 현재 패스(CP)를 구성하는 유향지 중, 최장의 유향지를 추출하고, 그 길이를 J로 설정한다(S264).
(공정 3) 유향 그래프 생성부(160)는, J≤1인지 아닌지를 판단하고(S266), J≤1일 경우, 현재 패스(CP)를 유향 패스 PLP로 결정하여, 이 유향 패스 PLP를 구성 하는 모든 유향지에 active 마크를 설정한다(S276).
(공정 4) J>1일 경우, 유향 그래프 생성부(160)는, #JP(CP)+n1 /k-1≤DDT인지 아닌지를 판단하고(S268), #JP(CP)+n1 /k-1≤DDT가 아닐 경우, 현재 패스(CP)를 유향 패스 PLP로 결정하여, 이 유향 패스 PLP를 구성하는 모든 유향지에 active 마크를 설정한다(S276).
(공정 5) #JP(CP)+n1 /k-1≤DDT일 경우, 유향 그래프 생성부(160)는, J=nj /k가 되는 자연수 j를 산출한다(S270).
(공정 6) 유향 그래프 생성부(160)는, 현재 패스(CP)를 구성하는 길이 J의 유향지 중에서, 현재 패스(CP)의 시점으로부터 가장 먼 유향지를 추출한다(S272).
(공정 7) 유향 그래프 생성부(160)는, (공정 6)에서 추출된 유향지의 시점으로부터 신장한 n1 /k-1개의 길이 n(j-1)/k의 유향지의 직후에 n(j-1)/k의 길이를 가지는 1개의 유향지를 추가하고, (공정 6)에서 추출된 유향지를 제거한다(S274). 그 후, (공정 1)로 이행하여, 상기의 각 공정을 반복한다.
또한, 상기의 (공정 1)~(공정 6)의 사이에 생기는 처리의 루프는, 유향 그래프(I')의 시점에서 종점으로의 유향 패스가 모두 길이 1의 유향지로 구성되는지, 또는, 그 이상의 유향지의 치환을 행함으로써, 이 유향 패스를 구성하는 유효지 수가 DDT를 넘어 버릴 경우에, 이 루프를 종료한다. 이상의 처리에 의해, 유향 그래프마다 최장 유향 패스 PLP를 설정할 수 있다.
다음에, 도 25를 참조하면서, 소정의 유향지를 치환하는 공정에 대해 설명한다. 이 공정은, 각 유향 그래프에 대하여, 유향 패스를 구성하는 유효지의 수가 DDT를 넘지 않는다고 하는 조건 아래에서, 소정의 유향지를 보다 짧은 유향지로 치환하는 처리의 알고리즘을 구성한다.
유향 그래프 생성부(160)는, 이하의 알고리즘에 의거하여, 유향지를 치환한다.
(공정 1) 유향 그래프 생성부(160)는, 유향 그래프(I')를 구성하는 유향지 중, active로 설정되고, 동시에 또한 처리가 끝나지 않고(done이 미설정) 또한, 최장의 유향지를 추출한다. 또한, 유향 그래프 생성부(160)는, 추출된 유향지의 길이를 J'로 놓는다. 만약, 길이 J'의 유향지가 복수 있을 경우, 유향 그래프 생성부(160)는, 유향 그래프(I')의 시점으로부터 가장 먼 유향지를 선택한다(S280). 이때, 선택한 유향지를 WJ(Working Jump)로 부르고, 유향지 WJ의 시점을 WJS, 종점을 WJE로 부르기로 한다. 또, 유향 그래프(I')의 시점으로부터 WJS에 도달하는 유향 패스를 구성하는 유향지의 수를 D로 표기하기로 한다.
(공정 2) 유향 그래프 생성부(160)는, 유향지 WJ의 길이 J'가 J'≤1인지 아닌지를 판단하고(S282), J'≤1일 경우, active로 설정된 유효지만으로 구성되는 유향 그래프를, 원하는 유향 그래프(I)로서 설정한다(S302).
(공정 3) 유향지 WJ의 길이 J'>1일 경우, 유향 그래프 생성부(160)는, WJS로부터 (WJE-1)에 도달하는 유효 패스를 현재 패스(CP)로서 설정한다(S284). 단, (WJE-1)는, WJE의 하나 앞의 좌표점이다.
(공정 4) 유향 그래프 생성부(160)는, 현재 패스(CP)를 구성하는 유향지 중에서, 최장의 유향지를 추출하고, 그 길이를 J로 놓는다(S286).
(공정 5) 유향 그래프 생성부(160)는, 추출된 유향지의 길이 J가, J≤1인지 아닌지를 판단하고(S288), J≤1일 경우, 현재 패스(CP)를 구성하는 모든 유향지에 active를 설정하고(S298), 유향지 WJ에 done을 설정한다(S300). 그 후, 다시 (공정 1)의 처리로부터 스타트한다.
(공정 6) J>1일 경우, 유향 그래프 생성부(160)는, #JP(CP)+n1 /k-1≤DDT-D인지 아닌지를 판단하고(S290), #JP(CP)+n1 /k-1>DDT-D일 경우에는, 현재 패스(CP)를 구성하는 모든 유향지에 active를 설정하여(S298), 유향지 WJ에 done을 설정한다(S300). 그 후, 다시 (공정 1)의 처리로부터 스타트한다.
(공정 7) #JP(CP)+n1 /k-1≤DDT-D일 경우, 유향 그래프 생성부(160)는, J=nj/k를 만족시키는 자연수 j를 산출한다(S292).
(공정 8) 유향 그래프 생성부(160)는, 현재 패스(CP)를 구성하는 길이 J의 유향지 중, 현재 패스(CP)의 시점으로부터 가장 멀리에 위치하는 것을 추출한다(S294).
(공정 9) 유향 그래프 생성부(160)는, (공정 8)에서 추출된 유향지의 시점으로부터 신장한 n1 /k-1개의 길이 n(j-1)/k의 유향지의 직후에 n(j-1)/k의 길이를 가지는 1개의 유향지를 추가하고, (공정 8)에서 추출된 유향지를 제거한다(S296). 그 후, (공정 3)에 되돌아가 상기의 각 공정을 반복한다.
또한, 상기의 (공정 3) ~ (공정 9)의 사이에 생기는 처리의 루프는, WJS에서 WJE-1로의 유향 패스가 모두 길이 1의 유향지로 구성되는지, 또는, 그 이상의 유향지의 치환을 행함으로써, WJS에서 WJE-1로의 유향 패스를 구성하는 유효지 수가 DDT를 넘어 버릴 경우에, 이 루프를 종료한다. 한편, 상기의 (공정 1) ~ (공정 5) 또는 (공정 6)의 사이에 생기는 처리의 루프는, 유향 그래프(I')를 구성하는 유효지 중에, done이 설정되어 있지 않고, 동시에, 길이가 2 이상의 유향지가 모두 없어진 시점에서 종료한다. 이상의 처리에 의해, 원하는 유향 그래프(I)를 생성할 수 있다.
마지막으로, 상기의 유향 그래프 생성 방법을 이용하여 생성한 유향 그래프(I)의 예를 나타낸다. 도 3에 나타낸 잎 노드 수 n=64의 완전 2분 트리 구조에 의거하여, 파라미터(k=6)를 설정했을 경우의 유향 그래프(I)를 도 26에 나타냈다.
우선, 기반 방식에 의거하여 생성된 유향 그래프(H)(도 4)와, 본 실시형태에 관계되는 유향 그래프(I)(도 26)를 비교하면 이하의 2점을 용이하게 알 수 있다.
(1) 유향 그래프(I)는, 유향 그래프(H)에 비하여 길이 2 이상의 유향지의 수가 감소하고, 1개의 좌표점으로부터 신장하는 유향지의 수가 감소한 것.
(2) 유향 그래프(I)상의 많은 유향 패스에 대하여, 그 유향지 수가 감소하고 있는 것.
따라서, 세트키의 생성에 필요한 계산량의 최악치를 저감시키는 동시에, 유 저가 보관 유지해야 할 중간키의 키 수를 줄이는 것이 가능한 유향 그래프(I)가 생성되는 것이 확인되었다.
본 실시형태에 관계되는 키 수 삭감 효과를 보다 정량적으로 이해하기 위하여, 기반 방식과 본 실시형태의 비교 결과를 표 형식으로 도 27에 나타냈다. 도 27을 참조하면, 유저가 보관 유지해야 할 키 수의 총합(총 키 수) 및 각 유저가 보관 유지해야 할 평균키 수가 저감되어 있다. 이상의 결과는, 유저 수 n이 n=64라고 하는 작은 수로 실시된 것이기 때문에, 삭감되는 키 수의 절대치는 그만큼 크지 않다고 생각될지도 모르지만, 실시 환경에 있어서는, 유저 수가 현격한 차이로 크기 때문에, 그 삭감 효과는 지극히 현저한 차이로서 나타나는 것으로 예상된다. 또, 세트키의 생성에 필요한 계산량의 최악치는, 최장 유향 패스를 구성하는 유향지의 수로 나타내지지만, 이값이, 기반 방식에 의거하여 생성된 유향 그래프(H)에서는 (2k-1)*(n1 /k-1)로 있었던 것에 대해, 본 실시형태에 관계되는 유향 그래프(I)에서는 k*(n1 /k-1)로 약 반감하고 있다.
이상, 세트키를 생성하는데 필요한 계산량의 최악치를 저감시키면서, 유저가 보관 유지해야 할 중간키의 키 수를 줄이는 것이 가능한 유향 그래프를 생성하는 논리에 대해 설명했다. 상기의 키 생성 논리(유향 그래프)의 구축은, 주로, 키 배분 서버(152)를 구성하는 키 생성 논리 구축 블럭에 의해 실행된다. 그러나, 상기의 키 생성 논리에 의거하여 암호키 배분을 실행하기 위해서는, 다른 구성요소가 필요하다. 그래서, 다시 도 19를 참조하면서, 다른 구성요소에 대해서도 설 명한다.
재차 도 19를 참조하면, 키 배분 서버(152)는, 상기의 키 생성 논리 구축 블럭 외에, 초기 중간키 설정부(162)와, 키 생성부(164)와, 암호화부(166)와, 송신부(168)와, 부분집합 결정부(170)로 구성된다.
(초기 중간키 설정부(162))
초기 중간키 설정부(162)는, 트리 구조의 각 중간 노드에 대응하는 각 유향 그래프(I)에 대하여, 유향 그래프(I)의 선두 좌표점에 대응하는 중간키를 생성한다. 예를 들면, 초기 중간키 설정부(162)는, 의사 난수 생성기에 의해 난수를 발생시켜, 상기의 선두 좌표점(루트)에 대응하는 각 중간키에 대하여 난수를 설정해도 좋고, 또는 소정의 수치를 각 중간키로 설정해도 좋다.
(키 생성부(164))
키 생성부(164)는, 유향 그래프(I)를 구성하는 어느 유향지에 대하여, 그 유향지의 시점이 가리키는 좌표점에 할당된 소정의 중간키가 입력되면, 그 유향지의 시점이 가리키는 좌표점에 대응하는 세트키와, 그 유향지의 시점으로부터 신장하는 모든 유향지의 종점에 대응하는 중간키를 출력한다. 즉, 키 생성부(164)는, 기반 방식의 PRSG에 대응하는 것이다. 단, 키 생성부(164)는, 유향 그래프 생성부(160)에 의해 생성된 유향 그래프(I)에 의거하여 중간키를 출력하는 점에서, 기반 방식의 PRSG와는 다르다. 만약, 키 생성부(164)를 같은 PRSG로 표현한다면, 유향 그래프(I)의 어느 좌표점(S0)에 대응하는 중간키 t(S0)를 입력하면, 좌표점(부분집합(S0)에 대응)을 시점으로 하는 유향지의 종점에 대응하는 중간키 t(S1), t(S2),..., t(Sm)와, 세트키 k(S0)를 출력한다. 단, m은, 어느 좌표점(S0)을 시점으로 하는 유향지의 개수를 나타내고 있다.
(암호화부(166))
암호화부(166)는, 세트키를 이용하여 콘텐츠 키를 암호화한다. 콘텐츠 키는 하나이지만, 세트키는 세트 시스템 Φ을 구성하는 부분집합의 수만큼 존재한다. 암호화부(166)는, 세트 시스템 Φ을 구성하는 모든 부분집합 중, 후술하는 부분집합 결정부(170)에 있어서 선택된 부분집합에 대응하는 각 세트키를 이용하여 콘텐츠 키를 암호화한다. 즉, 암호키 166은, 각 세트키에 대응하는 암호화된 콘텐츠 키를 생성한다. 그 때문에, 선택된 부분집합의 수가 m이면, 암호화된 콘텐츠 키도 m개 작성된다. 또한, 암호화부(166)는, 콘텐츠 자체를 암호화하여도 좋다. 예를 들면, 암호화부(166)는, 콘텐츠 키를 이용하여 콘텐츠 자체를 암호화하여도 좋고, 상기의 각 세트키를 이용하여 콘텐츠 자체를 암호화하여도 좋다. 단, 세트키를 이용하여 콘텐츠 자체를 암호화하는 구성은, 본 실시형태의 한 변형 예이다.
(송신부(168))
송신부(168)는, 잎 노드에 대응하는 전 유저에 대해, 암호부(166)에 의해 암호화된 콘텐츠 키를 배분한다. 또, 송신부(168)는, 상기의 유향 그래프(I)를 참조하면서, 각 유저에 대하여 중간키를 배분해도 좋다. 이때, 송신부(168)는, 각 유저가, 자신이 소속하는 부분집합에 대응하는 중간키를 모두 도출할 수 있도록, 필요 최저한의 중간키를 배분해도 좋다. 즉, 송신부(168)는, 세트 시스템 Φ(상 기 식(1) 참조)을 구성하는 부분집합 중에서, 중간키의 배분처 유저가 소속하는 부분집합을 추출하고, 그 추출된 부분집합에 대응하는 유향 그래프(I)의 좌표점 중, 그 좌표점에 도달하는 유향지의 시점에 대응하는 부분집합에 해당 배분처 유저가 포함되지 않도록 하는 좌표점을 선택하여, 그 선택된 좌표점에 대응하는 중간키만을 해당 배분처 유저에게 배분해도 좋다. 단, 송신부(168)는, 중간키의 배분처 유저가 소속하는 부분집합이, 유향 그래프(I)의 선두 좌표점에 대응할 경우에는, 해당 선두 좌표점에 대응하는 중간키만을 해당 배분처 유저에게 배분해도 좋다. 또, 송신부(168)는, 유향 그래프(I)의 정보를 각 유저에게 배분하는 유향 그래프 정보 배분부로서 기능해도 좋다. 즉, 송신부(168)는, 각 중간키를 입력함으로써, 유향 그래프(I)에 의거하여 소정의 중간키와 세트키를 출력하는 PRSG의 키 생성 알고리즘에 관한 정보(예를 들면, 키 생성 프로그램)를 배분해도 좋다.
또한, 이 중간키의 배포는, 콘텐츠의 배포에 앞서, 콘텐츠의 배분과는 다른 통신로를 이용하여 행해도 좋다. 예를 들면, 키 배분 서버(152)가 각 단말장치용의 중간키를 강제로 출력하여 기록 매체에 기록하고, 단말장치를 제조하는 공장에 있어서, 단말장치의 제조시에 이 기록 매체로부터 읽어낸 각 단말장치마다 중간키를 각 단말장치에 저장해도 좋다.
(부분집합 결정부(170))
부분집합 결정부(170)는, 콘텐츠 또는 콘텐츠 키를 복호 불능으로 해야 할 배제 유저의 집합(R)을 결정하고, 유향 그래프(I)의 좌표점에 대응하는 부분집합 중에서, 선택된 소정의 부분집합의 합집합에 의해, 유저의 집합(N)으로부터 배제 유저의 집합(R)을 제외한 허락 유저의 집합(N\R)을 정의하고나서, 허락 유저의 집합(N\R)을 구성하는 부분집합의 수가 최소가 되도록 , 허락 유저의 집합(N\R)을 구성하는 부분집합의 조를 결정한다. 또한, 부분집합 결정부(170)는, 허락 유저의 집합(N\R)을 결정하는 허락 유저 집합 결정부와, 허락 유저의 집합(N\R)을 구성하는 부분집합의 조를 결정하는 허락 유저 부분집합 결정부로 구성되어 있어도 좋다.
상기와 같이, 부분집합 결정부(170)에 의해 허락 유저의 집합(N\R=S1∪S2∪...∪Sm;m은 자연수)을 구성하는 부분집합(S1, S2,..., Sm)이 결정되면, 송신부(168)는, 허락 유저의 집합(N\R) 또는 허락 유저의 집합(N\R)을 구성하는 부분집합(S1, S2,..., Sm)을 나타내는 정보를 각 유저에 대하여 배분한다. 또, 암호화부(166)는, 부분집합 결정부(170)에 의해 결정된 부분집합(S1, S2,..., Sm)에 대응하는 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 암호화하고, 그리고, 송신부(168)는, 그 암호화된 콘텐츠 또는 콘텐츠 키를 각 유저에 대하여 배분한다.
이상, 본 발명의 매우 적합한 실시형태에 관계되는 키 배분 서버(152)의 구성에 대해 설명했다. 이와 같이, 본 실시형태의 특징은, 주로, 키 생성 논리 구축 블럭의 구성에 있다. 특히, 키 생성 논리를 결정하는 유향 그래프를 생성하기 위한 유향 그래프 생성부(160)의 구성에 특징을 가지고 있다. 본 실시형태에 관계되는 유향 그래프 생성부(160)는, 각 유저가 세트키를 생성할 때에 필요로 하는 계산량을 증가시키지 않고, 각 유저가 보관 유지해야 할 중간키의 키 수를 저감시키는 것이 가능한 키 생성 논리(유향 그래프)를 생성할 수 있다. 그 결과, 각 유저가 중간키를 보관 유지하기 위하여 필요로 하는 메모리 양, 및 키 생성에 관계되는 계산량을 삭감하는 동시에, 각 유저에게 중간키를 배분하기 위한 배분 코스트를 줄이는 것이 가능하게 된다.
[암호키 배분 시스템(100)의 응용 예]
마지막으로, 상기의 암호키 배분 시스템(100)의 응용 예를 나타낸다.
(응용 예 1)
우선, 응용 예 1로서, 방송 암호화 시스템(300)의 구성을 도 28에 나타낸다. 도 28은, 방송위성을 이용한 방송 암호화 시스템(broadcast encryption system)의 구성을 나타내는 블럭도이다. 방송 암호화 시스템(300)은, 방송 채널을 통하여 암호화된 데이터(소위, 암호 텍스트;cipher text)를 수신기(310)에 송신한다. 여기서, 방송 암호화 시스템(300)에 있어서의 방송 채널은, 위성방송 배분 채널이다. 또, 암호 텍스트로서 송신되는 데이터는, 예를 들면, 암호키, 음성 데이터, 영상 데이터, 또는 텍스트 데이터 등을 포함하는 콘텐츠이다. 위성방송국(302)에 있어서의 관리 센터(broadcast trusted center)(304)는, 방송위성(306)에 데이터를 송신한다. 방송 관리 센터(304)는, 예를 들면, 암호화용의 키를 선택하기도 하고, 데이터의 암호화, 및 데이터 배분을 제어한다. 방송위성(306)은, 데이터를 방송한다. 주거(308)에 설치된 수신기(310)는, 예를 들면, 위성방송 수신기를 갖추고, 방송되어 오는 데이터를 수신한다. 다른 복수의 수신기(310)도 방송되어 오는 데이터를 수신할 수 있다. 이와 같이 하여, 관리 센터(304)는, 수신기(310)로 이루어지는 수신기 그룹내의 각 수신기(310)에 데이터를 송신할 수 있다. 후술하는 바와 같이, 관리 센터(304)는, 인증되어 있는 수신기(310)만이 방송된 데이터를 복호할 수 있도록, 방송 데이터를 암호화한다. 또한, 도 28에는, 방송위성(306)을 이용한 방송 시스템을 나타내고 있지만, 케이블 델레비전이나 컴퓨터 네트워크 등, 이 외의 방송 채널을 이용해도 좋다.
이상, 암호키 배분 시스템(100)의 한 응용 예인 방송 암호화 시스템(300)의 구성에 대해 기술했다. 간단하게 암호키 배분 시스템(100)과의 관계를 정리해 놓으면, 관리 센터(304)가 키 배분 서버(102)에 대응하고, 수신기(310)가 수신기(122)에 대응한다. 그리고, 이것들을 접속하는 네트워크를 중개하는 것이 방송위성(306)이다.
(응용 예 2)
다음에, 응용 예 2로서, 방송 암호화 시스템(400)의 구성을 도 29에 나타낸다. 도 29는, 데이터 매체를 이용한 방송 암호화 시스템(400)의 구성을 나타내는 블럭도이다. 방송 암호화 시스템(400)에 있어서, 방송 채널은, 데이터 매체의 배포이다. 매체 제조업자(402) 내의 관리 센터(404)는, 예를 들면, 독출 전용 매체(예를 들면, CD-ROM, DVD-ROM 등), 또는 개서 가능 매체(예를 들면, CD-RW, DVD-RW 등) 등의 매체(406)의 각 개체(article of data media)에 데이터를 보존한다. 독출 전용 매체에 대해서는, 관리 센터(404)는, 암호화된 콘텐츠 키 및 암호화된 콘텐츠를 기록하고, 인증된 유저만이 데이터를 복호하고, 암호화되어 있는 콘텐츠(예를 들면, 음성, 영상, 또는 텍스트 등)에 액세스할 수 있도록 하고 있다. 한편, 개서 가능 매체에 대해, 관리 센터(404)는, 암호화된 콘텐츠 키를 기 록하고, 인증된 기록 장치만이 대응하는 데이터를 기록 매체에 기록할 수 있도록 하고 있다. 매체 제조업자(402)는, 예를 들면, 소매점 등의 배포 중개자(distribution outlet)(408)에 매체(406)를 송부한다. 배포 중개자(408)는, 매체(410)를 주거(412)의 수신기(414)에 제공한다. 예를 들면, 배포 중개자(408)는, 매체(410)를 개인에게 판매하고, 이 개인이 매체(410)를 주거(412)에 가지고 돌아가고, 매체(410)를 수신기(414)에 삽입한다. 예를 들면, 수신기(414)는, CD player, DVD player, 또는 컴퓨터 등, 매체(410)에 기록되어 있는 데이터를 독출하여 재생하는 장치여도 좋다. 다른 구체적인 예로서는, 수신기(414)는, 예를 들면, DVD-RW드라이브 등, 매체(410)에 데이터를 기록하고, 및 매체(410)로부터 데이터를 독출하는 것이 가능한 디스크 장치여도 좋다. 관리 센터(404)는, 인증되어 있는 수신기(414)만이, 암호화되어 있는 데이터를 복호할 수 있도록, 데이터를 암호화한다.
이상, 암호키 배분 시스템(100)의 한 응용 예인 방송 암호화 시스템(400)의 구성에 대해 기술했다. 간단하게 암호키 배분 시스템(100)과의 관계를 정리해 놓으면, 관리 센터(404)가 키 배분 서버(102)에 대응하고, 수신기(414)가 수신기(122)에 대응한다. 그리고, 이것들을 접속하는 네트워크 대신에, 매체(406, 410)를 배포하는 배포 중개자(408)가 개재하고 있다.
이상, 첨부 도면을 참조하면서 본 발명의 매우 적합한 실시형태에 대해 설명했지만, 본 발명은 관계되는 예로 한정되지 않는 것은 말할 필요도 없다. 당업자라면, 특허 청구의 범위에 기재된 범주내에 있어서, 각종의 변경 예 또는 수정 예로 생각이 미칠 수 있는 것은 분명하고, 그것들에 대해서도 당연히 본 발명의 기술적 범위에 속하는 것으로 양해된다.
예를 들면, 상기의 트리 구조 설정부(104)는, 위에서 아래로 가지가 펼쳐진 트리 구조를 형성하는 것으로 상정하고 있었지만, 반드시 이것으로 한정되지 않고, 아래에서 위, 왼쪽에서 오른쪽, 또는 오른쪽에서 왼쪽을 향하여 가지가 펼쳐진 트리 구조를 가지고 있어도 좋다. 이 경우, 각 중간 노드에 대응 지어지는 부분집합의 정의는, 이것에 적합하도록 변경되지 않으면 안 된다. 그러나, 이 변경은, 상기의 트리 구조 설정부(104)가 설정한 트리 구조를 회전하여 배치할 뿐이고, 어느 경우에 있어서도 의미하는 바는 완전히 동일하다. 또, 상기의 가유향 그래프 생성부(108) 및 유향 그래프 생성부(110)는, 왼쪽에서 오른쪽, 또는 오른쪽에서 왼쪽으로 좌표축을 설정하여 유향 그래프(I' 및 I)를 구축했지만, 이 좌우를 반전시키는 변경에 대해서도 마찬가지이다. 즉, 상기의 설명에 있어서는, 편의적으로 상하 방향, 또는 좌우 방향을 기준으로 하여 각종 파라미터의 정의를 행했지만, 일반 서민 또는 당업자가 가져야 할 상식에 비추어 생각하면, 만일 트리 구조 또는 유향 그래프를 회전 또는 반전하여 상하 좌우의 관계를 변경했다고 해도, 완전히 동일한 기술적 범위에 속하는 것으로 양해된다.
예를 들면, 본 발명의 실시형태에 관계되는 가유향 그래프 생성부(108)는, 상기의 기반기술에 준한 가유향 그래프를 생성할 뿐만 아니라, 다른 방식에 의거하여 가유향 그래프를 생성하여도 좋다. 예를 들면, 가유향 그래프로서, 길이 1의 유향지와 길이 2의 유향지를 단순히 조합하여 구성된 유향 그래프여도 좋고, 유향 패스의 시점에 가까운 쪽 또는 먼 쪽을 향하여, 보다 긴 유향지가 배치된 유향 그래프여도 좋다. 물론, 상기의 기반 방식보다 복잡한 논리에 의거하여 생성된 가유향 그래프여도 좋다. 이와 같이, 본 발명의 기본 컨셉을 적용 가능한 범위는, 상기의 기반기술로 한정되는 것은 아니고, 여러 가지 방식에 의해 생성된 유향 그래프에 이르는 것이다. 물론, 본 실시형태에 관계되는 정보처리 장치는, 다른 정보처리 장치에 의해 생성된 유향 그래프를 취득하는 또는 수신하는 취득부를 더 갖추고, 이 유향 그래프를 소정의 조건에 의거하여 재구성하는 것도 가능하다.
예를 들면, 상기의 트리 구조 설정부(154)는, 위에서 아래로 가지가 펼쳐진 트리 구조를 형성하는 것으로 상정하고 있었지만, 반드시 이것으로 한정되지 않고, 아래에서 위, 왼쪽에서 오른쪽, 또는 오른쪽에서 왼쪽을 향하여 가지가 펼쳐진 트리 구조를 가지고 있어도 좋다. 이 경우, 각 중간 노드에 대응 지어지는 부분집합의 정의는, 이것에 적합하도록 변경되지 않으면 안 된다. 그러나, 이 변경은, 상기의 트리 구조 설정부(154)가 설정한 트리 구조를 회전하여 배치할 뿐이고, 어느 경우에 있어서도 의미하는 바는 완전히 동일하다. 또, 상기의 가유향 그래프 생성부(158) 및 유향 그래프 생성부(160)는, 왼쪽에서 오른쪽, 또는 오른쪽에서 왼쪽으로 좌표축을 설정하여 유향 그래프(I' 및 I)를 구축했지만, 이 좌우를 반전시키는 변경에 대해서도 마찬가지이다. 즉, 상기의 설명에 있어서는, 편의적으로 상하 방향, 또는 좌우 방향을 기준으로 하여 각종 파라미터의 정의를 행했지만, 일반 서민 또는 당업자가 가져야 할 상식에 비추어 생각하면, 만일 트리 구조 또는 유향 그래프를 회전 또는 반전하여 상하 좌우의 관계를 변경했다고 해도, 완전히 동일한 기술적 범위에 속하는 것으로 양해된다.
예를 들면, 본 발명의 실시형태에 관계되는 가유향 그래프 생성부(158)는, 상기의 기반기술에 준한 가유향 그래프를 생성 가능할 뿐만 아니라, 다른 방식에 의거하여 가유향 그래프를 생성하여도 좋다. 예를 들면, 가유향 그래프로서, 유향 패스의 시점에 가까운 쪽 또는 먼 쪽을 향하여, 보다 긴 유향지가 배치된 유향 그래프여도 좋다. 물론, 상기의 기반 방식보다 복잡한 논리에 의거하여 생성된 가유향 그래프여도 좋다. 이와 같이, 본 발명의 기본 컨셉을 적용 가능한 범위는, 상기의 기반기술로 한정되는 것은 아니고, 여러 가지 방식에 의해 생성된 유향 그래프에 이르는 것이다. 또, 본 실시형태에 관계되는 정보처리 장치는, 임의의 유향 그래프를 취득하는 취득부를 갖추고 있어도 좋다. 그 경우, 해당 정보처리 장치는, 취득한 유향 그래프에 의거하여 세트키를 생성할 수 있다.
이상 설명한 바와 같이 본 발명에 의하면, 수신자 측의 단말장치에서 보관 유지해야 할 키 수를 줄이는 것이 가능하게 된다.

Claims (55)

  1. 복수의 유향지로 구성되는 가유향 그래프에 대해, 해당 가유향 그래프를 구성하는 적어도 1개의 상기 유향지를 보다 짧은 유향지로 치환함으로써 생성된 유향 그래프를 취득하는 유향 그래프 취득부와,
    상기 유향 그래프 취득부에 의해 취득된 상기 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치.
  2. 제 1항에 있어서,
    상기 유향 그래프는, 상기 가유향 그래프를 구성하는 상기 복수의 유향지 중에서, 상기 연속하는 유향지의 최대수를 넘지 않도록, 상기 가유향 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환하여 생성되는 것을 특징으로 하는 정보처리 장치.
  3. 제 1항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 상기 세트키 k(S)와, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,· ··, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력하는 것을 특징으로 하는 정보처리 장치.
  4. 제 1항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하는 것을 특징으로 하는 정보처리 장치.
  5. 제 1항에 있어서,
    또한, 각 상기 유향 그래프의 시점에 대응하는 중간키로서 소정의 난수를 설정하는 초기 중간키 설정부를 갖추는 것을 특징으로 하는 정보처리 장치.
  6. 제 1항에 있어서,
    또한, 상기 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 암호화하는 암호화부를 갖추는 것을 특징으로 하는 정보처리 장치.
  7. 제 6항에 있어서,
    소정의 2분 트리 구조를 구성하는 잎 노드(1~n)(n은 자연수)의 일부 또는 전 부에 각각 대응 지어진 단말장치에 대해, 상기 암호화부에 의해 암호화된 상기 콘텐츠 또는 상기 콘텐츠 키를 송신하는 송신부를 더 갖추는 것을 특징으로 하는 정보처리 장치.
  8. 제 1항에 있어서,
    상기 유향 그래프 취득부는,
    연속하는 상기 유향지로 구성되는 각 유향 패스의 종점 방향을 향하여, 보다 짧은 유향지가 배치되도록 치환된 상기 유향 그래프를 취득하는 것을 특징으로 하는 정보처리 장치.
  9. 제 7항에 있어서,
    상기 잎 노드(1~n)의 부분집합을 Si로 정의하여, 상기 세트키 또는 상기 콘텐츠 키로 암호화된 상기 콘텐츠의 복호를 허가하는 상기 단말장치의 집합(N\R)을 결정하고, 상기 집합(N\R)=S1∪S2∪···∪Sm을 만족시키는 m개의 부분집합(S1~Sm)을 결정하는 부분집합 결정부를 더 갖추는 것을 특징으로 하는 정보처리 장치.
  10. 제 9항에 있어서,
    상기 부분집합 결정부는,
    상기 m이 최소가 되도록, 상기 부분집합(S1~Sm)을 결정하는 것을 특징으로 하는 정보처리 장치.
  11. 제 9항에 있어서,
    상기 집합(N\R)을 나타내는 정보, 또는, 상기 집합(N\R)을 구성하는 상기 부분집합(S1~Sm)을 나타내는 정보를, 상기 단말장치에 송신하는 송신부를 더 갖추는 것을 특징으로 하는 정보처리 장치.
  12. 제 1항에 있어서,
    또한, 상기 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 복호하는 복호부를 갖추는 것을 특징으로 하는 정보처리 장치.
  13. 제 12항에 있어서,
    소정의 2분 트리 구조를 구성하는 잎 노드(1~n)(n은 자연수)의 하나 이상으로 대응 지어지고, 상기 세트키를 이용하여 암호화된 콘텐츠 또는 콘텐츠 키를 수신하는 수신부를 더 갖추는 것을 특징으로 하는 정보처리 장치.
  14. 제 13항에 있어서,
    상기 수신부가 수신하는 상기 암호화된 콘텐츠 또는 콘텐츠 키는, 상기 잎 노드(1~n)의 부분집합으로서 정의된 집합(Si) 중에서, 자신에게 대응 지어진 상기 잎 노드를 포함하는 집합(S)의 요소인 상기 잎 노드에 대응 지어진 1개 이상의 정 보처리 장치가 복호 가능하다는 것을 특징으로 하는 정보처리 장치.
  15. 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조에 대해, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중에서 좌단에 위치하는 상기 잎 노드의 번호가 lv, 그리고 우단에 위치하는 상기 잎 노드의 번호가 rv로 정의되어 있고,
    또한, 자연수(i 및 j(i≤j))에 대하여, 집합(i→j)이 {{i}, {i, i+1},...,{i, i+1,..., j-1, j}}로 표기되고, 집합(i←j)이 {{j}, {j, j-1},...,{j, j-1,..., i+1, i}}로 표기되는 것으로 가정되어 있고,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 상기 뿌리 노드에 대응 지어진 제1 수평좌표축이 설정되고,
    또, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 상기 뿌리 노드에 대응 지어진 제2 수평좌표축이 설정되어 있고,
    또한, 상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제3 수평좌표축이 설정되고,
    그리고 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제4 수평좌표축이 설정되고나서,
    소정의 정수(k)에 대해, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)에 따라 길이 ni /k(i=0, 1,..., x-1)을 가지는 복수의 유향지를 상기 제1~4 수평좌표축 상에 배치하여 형성된 가유향 그래프를 구성하는 적어도 1개의 상기 유향지를 보다 짧은 유향지로 치환하여 생성된 유향 그래프를 취득하는 유향 그래프 취득부와,
    상기 유향 그래프 취득부가 취득한 상기 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치.
  16. 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정하는 트리 구조 설정부와,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축과,
    집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축과,
    상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과,
    집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고,
    상기 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 상기 제 2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하는 좌표축 설정부와,
    소정의 정수(k)를 설정하고,
    n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서,
    정수(i=0~x-1)의 각각에 대하여,
    ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    상기 제1~4 수평좌표축의 각각에 대하여, 상기 가좌표점을 시점 또는 종점으로 하는 모든 상기 유향지를 제외하고,
    상기 제1~4 수평좌표축 상의 각 좌표점에 도달하는 상기 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써,
    집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고,
    집합(1→n-1)에 관한 가유향 그래프에 대해, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성부와,
    잔존하는 상기 유향지를 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성부를 갖추는 것을 특징으로 하는 정보처리 장치.
  17. 제 16항에 있어서,
    상기 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치.
  18. 제 17항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 상기 세트키 k(S)와, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력하는 것을 특징으로 하는 정보처리 장치.
  19. 제 17항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하는 것을 특징으로 하는 정보처리 장치.
  20. 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성부를 갖추고,
    상기 유향 그래프는,
    번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정하고,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축과,
    집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축과,
    상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과,
    집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌 표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고,
    상기 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 상기 제 2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하고,
    소정의 정수(k)를 설정하고,
    n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서,
    정수(i=0~x-1)의 각각에 대하여,
    ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    상기 제1~4 수평좌표축의 각각에 대하여, 상기가좌표점을 시점 또는 종점으로 하는 모든 상기 유향지를 제외하고,
    상기 제1~4 수평좌표축 상의 각 좌표점에 도달하는 상기 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써,
    집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고,
    집합(1→n-1)에 관한 가유향 그래프에 대해, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고,
    잔존하는 상기 유향지에 의해 형성된 유향 패스 중에서, 상기 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고,
    상기 각 유향 패스의 유향지 수가, 상기 최장의 유향 패스의 유향지 수를 넘지 않도록, 상기 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환함으로써 얻어지는 것을 특징으로 하는 단말장치.
  21. 제 20항에 있어서,
    상기 세트키를 이용하여, 상기 암호화된 콘텐츠 또는 콘텐츠 키를 복호하는 복호부를 더 갖추는 것을 특징으로 하는 단말장치.
  22. 제 20항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 상기 세트키 k(S)와, 해당 좌표점을 시점으로 하는 상기 유향지의 종점의 좌표점에 대응하는 부 분집합(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력하는 것을 특징으로 하는 단말장치.
  23. 제 20항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하는 것을 특징으로 하는 단말장치.
  24. 제 21항에 있어서,
    상기 복호부는,
    상기 세트키를 이용하여, 상기 암호화된 콘텐츠 키를 복호하고, 해당 복호된 콘텐츠 키를 이용하여, 상기 암호화된 콘텐츠를 복호하는 것을 특징으로 하는 단말장치.
  25. 제 20항에 있어서,
    상기 트리 구조의 잎 노드(1~n)의 부분집합을 Si로 정의했을 때에,
    상기 세트키 또는 상기 콘텐츠 키로 암호화된 상기 콘텐츠의 복호를 허가하는 상기 단말장치의 집합(N\R)이 결정되고, 상기 집합(N\R)=S1∪S2∪···∪Sm 을 만족시키는 m개의 부분집합(S1~Sm)이 결정되고, 상기 집합(N\R)을 나타내는 정보, 또는, 상기 집합(N\R)을 구성하는 상기 부분집합(S1~Sm)을 나타내는 정보를 수신했을 경우에,
    상기 단말장치는, 상기 수신한 정보에 의거하여, 해당 단말장치가 상기 부분집합(S1~Sm)의 어느 것인지에 속하여 있는지 아닌지 판단하고, 해당 판단 결과에 의거하여, 상기 암호화된 콘텐츠의 복호가 허가되어 있는지 아닌지를 판단하는 판단부를 갖추는 것을 특징으로 하는 단말장치.
  26. 제 25항에 있어서,
    상기 복호부는,
    상기 단말장치가 상기 부분집합(S1~Sm)의 어느 것인지에 속하여 있다고 판단되었을 경우에, 해당 단말장치가 속하는 상기 부분집합에 대응한 상기 세트키를 이용하여, 상기 콘텐츠 또는 콘텐츠 키를 복호하는 것을 특징으로 하는 단말장치.
  27. 복수의 유향지로 구성되는 가유향 그래프에 대해, 해당 가유향 그래프를 구성하는 적어도 1개의 상기 유향지를 보다 짧은 유향지로 치환함으로써 생성된 유향 그래프를 취득하는 유향 그래프 취득 스텝과,
    상기 유향 그래프 취득부에 의해 취득된 상기 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법.
  28. 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조에 대해, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중에서 좌단에 위치하는 상기 잎 노드의 번호가 lv, 그리고 우단에 위치하는 상기 잎 노드의 번호가 rv로 정의되어 있고,
    또한, 자연수(i 및 j(i≤j))에 대하여, 집합(i→j)이 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}로 표기되고, 집합(i←j)이 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 표기되는 것으로 가정되어 있고,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 상기 뿌리 노드에 대응 지어진 제1 수평좌표축이 설정되고,
    또, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 상기 뿌리 노드에 대응 지어진 제2 수평좌표축이 설정되어 있고,
    또한, 상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제3 수평좌표축이 설정되고,
    그리고 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제4 수평좌표축이 설정되고나서,
    소정의 정수(k)에 대해, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)에 따라 길이 ni /k(i=0, 1,... x-1)을 가지는 복수의 유향지를 상기 제1~4 수평좌표축 상에 배치하여 형성된 가유향 그래프를 구성하는 적어도 1개의 상기 유향지를 보다 짧은 유향지로 치환하여 생성된 유향 그래프를 취득하는 유향 그래프 취득 스텝과,
    상기 유향 그래프 취득부가 취득한 상기 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법.
  29. 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정하는 트리 구조 설정 스텝과,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상 에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축과,
    집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축과,
    상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과,
    집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고,
    상기 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 상기 제 2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하는 좌표축 설정 스텝과,
    소정의 정수(k)를 설정하고,
    n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서,
    정수(i=0~x-1)의 각각에 대하여,
    ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    상기 제1~4 수평좌표축의 각각에 대하여, 상기가좌표점을 시점 또는 종점으로 하는 모든 상기 유향지를 제외하고,
    상기 제1~4 수평좌표축 상의 각 좌표점에 도달하는 상기 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써,
    집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고,
    집합(1→n-1)에 관한 가유향 그래프에 대해, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성 스텝과,
    연속하는 상기 유향지에 의해 형성된 유향 패스 중에서, 상기 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정 스텝과,
    상기 각 유향 패스의 유향지 수가, 상기 최장의 유향 패스의 유향지 수를 넘 지 않도록, 상기 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법.
  30. 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하고,
    상기 유향 그래프는,
    번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정하고,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축과,
    집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축과,
    상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과,
    집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고,
    상기 제1~4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측과, 상기 제2~4 수평좌표축 상의 우단에 위치하는 좌표점의 우측에 각각 1개의 가좌표점을 배치하고, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 가좌표점으로서 설정하고,
    소정의 정수(k)를 설정하고,
    n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)를 산정하고나서,
    정수(i=0~x-1)의 각각에 대하여,
    ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유 향 패스를 형성하고,
    상기 제1~4 수평좌표축의 각각에 대하여, 상기가좌표점을 시점 또는 종점으로 하는 모든 상기 유향지를 제외하고,
    상기 제1~4 수평좌표축 상의 각 좌표점에 도달하는 상기 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써,
    집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고,
    집합(1→n-1)에 관한 가유향 그래프에 대해, 상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고,
    잔존하는 상기 유향지에 의해 형성된 유향 패스 중에서, 상기 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고,
    상기 각 유향 패스의 유향지 수가, 상기 최장의 유향 패스의 유향지 수를 넘지 않도록, 상기 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환함으로써 얻어지는 것을 특징으로 하는 키 생성 방법.
  31. 복수의 유향지로 구성되는 가유향 그래프에 대해, 해당 가유향 그래프를 구성하는 상기 복수의 유향지 중에서 보다 긴 상기 유향지를 남기고나서, 해당 남긴 유향지 중에서 적어도 1개의 상기 유향지를 보다 짧은 유향지로 치환함으로써 생성된 유향 그래프를 취득하는 유향 그래프 취득부와,
    상기 유향 그래프 취득부에 의해 취득된 상기 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치.
  32. 제 31항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 상기 세트키 k(S)와, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력하는 것을 특징으로 하는 정보처리 장치.
  33. 제 31항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하는 것을 특징으로 하는 정보처리 장치.
  34. 제 31항에 있어서,
    또한, 상기 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 암호화하는 암호화부를 갖추는 것을 특징으로 하는 정보처리 장치.
  35. 제 34항에 있어서,
    소정의 2분 트리 구조를 구성하는 잎 노드(1~n)(n은 자연수)의 일부 또는 전부에 각각 대응 지어진 단말장치에 대해, 상기 암호화부에 의해 암호화된 상기 콘텐츠 또는 상기 콘텐츠 키를 송신하는 송신부를 더 갖추는 것을 특징으로 하는 정보처리 장치.
  36. 제 31항에 있어서,
    상기 유향 그래프 취득부는,
    연속하는 상기 유향지로 구성되는 각 유향 패스의 종점 방향을 향하여, 보다 짧은 유향지가 배치되도록 상기 유향지가 치환된 상기 유향 그래프를 취득하는 것을 특징으로 하는 정보처리 장치.
  37. 제 35항에 있어서,
    상기 잎 노드(1~n)의 부분집합을 Si라고 정의하여, 상기 세트키 또는 상기 콘텐츠 키로 암호화된 상기 콘텐츠의 복호를 허가하는 상기 단말장치의 집합(N\R)을 결정하고, 상기 집합(N\R)=S1∪S2∪···∪Sm을 만족시키는 m개의 부분집합(S1~Sm)을, 상기 m이 최소가 되도록 결정하는 부분집합 결정부를 더 갖추는 것을 특징으로 하는 정보처리 장치.
  38. 제 37항에 있어서,
    상기 집합(N\R)을 나타내는 정보, 또는, 상기 집합(N\R)을 구성하는 상기 부분집합(S1~Sm)을 나타내는 정보를, 상기 단말장치에 송신하는 송신부를 더 갖추는 것을 특징으로 하는 정보처리 장치.
  39. 제 31항에 있어서,
    또한, 상기 세트키를 이용하여 콘텐츠 또는 콘텐츠 키를 복호하는 복호부를 갖추는 것을 특징으로 하는 정보처리 장치.
  40. 제 39항에 있어서,
    소정의 2분 트리 구조를 구성하는 잎 노드(1~n)(n은 자연수)의 하나 이상으로 대응 지어지고, 상기 세트키를 이용하여 암호화된 콘텐츠 또는 콘텐츠 키를 수신하는 수신부를 더 갖추는 것을 특징으로 하는 정보처리 장치.
  41. 제 40항에 있어서,
    상기 수신부가 수신하는 상기 암호화된 콘텐츠 또는 콘텐츠 키는, 상기 잎 노드(1~n)의 부분집합으로서 정의된 집합(Si) 중에서, 자신에게 대응 지어진 상기 잎 노드를 포함하는 집합(S)의 요소인 상기 잎 노드에 대응 지어진 1개 이상의 정 보처리 장치가 복호 가능한 것을 특징으로 하는 정보처리 장치.
  42. 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조에 대해, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중에서 좌단에 위치하는 상기 잎 노드의 번호가 lv, 그리고 우단에 위치하는 상기 잎 노드의 번호가 rv로 정의되어 있고,
    또한, 자연수(i 및 j(i≤j))에 대하여, 집합(i→j)이 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}로 표기되고, 집합(i←j)이 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 표기되는 것으로 가정되어 있고,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 상기 뿌리 노드에 대응 지어진 제1 수평좌표축이 설정되고,
    또, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 상기 뿌리 노드에 대응 지어진 제2 수평좌표축이 설정되어 있고,
    또한, 상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제3 수평좌표축이 설정되고,
    또, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제4 수평좌표축이 설정되고나서,
    소정의 정수(k)에 대해, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)에 따라 길이 ni /k(i=0, 1,... x-1)을 가지는 복수의 유향지를 상기 제1~4 수평좌표축 상에 배치하여 형성된 가유향 그래프를 처리하는 정보처리 장치이며,
    상기 가유향 그래프를 취득하는 가유향 그래프 취득부와,
    상기 가유향 그래프 취득부에 의해 취득된 상기 가유향 그래프를 구성하는 복수의 유향지 중에서, 보다 긴 상기 유향지를 남겨 유향 그래프를 생성하는 유향 그래프 생성부와,
    상기 유향 그래프를 구성하는 상기 복수의 유향지 중에서, 연속하는 상기 유향지의 최대수를 결정하는 최장 유향 패스 결정부와,
    상기 연속하는 유향지의 최대수를 넘지 않도록, 상기 유향 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환하여 유향 그래프를 재구성하는 유향지 치환부와,
    상기 유향지 치환부에 의해 재구성된 상기 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치.
  43. 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정하는 트리 구조 설정부와,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축과,
    집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축과,
    상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과,
    집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고,
    상기 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 상기 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고,
    상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하는 좌표축 설정부와,
    소정의 정수(k)를 설정하고,
    n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서,
    정수(i=0~x-1)의 각각에 대하여,
    ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    상기 제1~4 수평좌표축의 각각에 대하여, 상기 각 가좌표점을 시점 또는 종점으로 하는 모든 상기 유향지를 제외하고,
    상기 제1~4 수평좌표축 상의 각 좌표점에 도달하는 상기 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써,
    집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고,
    상기 집합(1→n-1)에 관한 가유향 그래프에 대해, 상기 제1 수평좌표축 상에 있는 상기 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성부와,
    연속하는 상기 유향지에 의해 형성된 유향 패스 중에서, 상기 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정부와,
    상기 각 유향 패스의 유향지 수가, 상기 최장의 유향 패스의 유향지 수를 넘지 않도록, 상기 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성부를 갖추는 것을 특징으로 하는 정보처리 장치.
  44. 제 43항에 있어서,
    상기 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 생성부를 갖추는 것을 특징으로 하는 정보처리 장치.
  45. 제 44항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 상기 세트키 k(S)와, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력하는 것을 특징으로 하는 정보처리 장치.
  46. 제 44항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하는 것을 특징으로 하는 정보처리 장치.
  47. 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성부를 갖추고,
    상기 유향 그래프는,
    번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정하고,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축과,
    집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축과,
    상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과,
    집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고,
    상기 제 3 수평좌표축 상의 우단에 위치하는 좌표점의 우측이라고 상기 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고,
    상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하고,
    소정의 정수(k)를 설정하고,
    n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서,
    정수(i=0~x-1)의 각각에 대하여,
    ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    상기 제1~4 수평좌표축의 각각에 대하여, 상기 각 가좌표점을 시점 또는 종점으로 하는 모든 상기 유향지를 제외하고,
    상기 제1~4 수평좌표축 상의 각 좌표점에 도달하는 상기 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써,
    집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고,
    상기 집합(1→n-1)에 관한 가유향 그래프에 대해, 상기 제1 수평좌표축 상에 있는 상기 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고,
    연속하는 상기 유향지에 의해 형성된 유향 패스 중에서, 상기 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고,
    상기 각 유향 패스의 유향지 수가, 상기 최장의 유향 패스의 유향지 수를 넘지 않도록, 상기 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 얻어지는 것을 특징으로 하는 단말장치.
  48. 제 47항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 중간키 t(S)의 입력에 따라, 해당 좌표점에 대응하는 부분집합(S)에 대응하는 상기 세트키 k(S)와, 해당 좌표점을 시점으로 하는 상기 유향지의 종점의 좌표점에 대응하는 부분집합(S1, S2,···, Sk)의 중간키 t(S1), t(S2),···, t(Sk)를 출력하는 것을 특징으로 하는 단말장치.
  49. 제 47항에 있어서,
    상기 키 생성부는,
    상기 유향 그래프에 있어서의 어느 좌표점에 대응하는 부분집합(S)의 세트키 k(S)의 입력에 따라, 해당 좌표점(S)을 시점으로 하는 상기 유향지의 종점의 좌표점(S1, S2,···, Sk)의 세트키 k(S1), k(S2),···, k(Sk)를 출력하는 것을 특징으로 하는 단말장치.
  50. 제 48항에 있어서,
    상기 세트키를 이용하여, 상기 암호화된 콘텐츠 키를 복호하고, 해당 복호된 콘텐츠 키를 이용하여, 상기 암호화된 콘텐츠를 복호하는 복호부를 더 갖추는 것을 특징으로 하는 단말장치.
  51. 제 50항에 있어서,
    상기 트리 구조의 잎 노드(1~n)의 부분집합을 Si로 정의했을 때에,
    상기 세트키 또는 상기 콘텐츠 키로 암호화된 상기 콘텐츠의 복호를 허가하는 상기 단말장치의 집합(N\R)이 결정되고, 상기 집합(N\R)=S1∪S2∪···∪Sm을 만족시키는 m개의 부분집합(S1~Sm)이 결정되고, 상기 집합(N\R)을 나타내는 정보, 또는, 상기 집합(N\R)을 구성하는 상기 부분집합(S1~Sm)을 나타내는 정보를 수신했을 경우에,
    상기 단말장치는, 상기 수신한 정보에 의거하여, 해당 단말장치가 상기 부분집합(S1~Sm)의 어느 것인지에 속하여 있는지 아닌지 판단하고, 해당 판단 결과에 의거하여, 상기 암호화된 콘텐츠의 복호가 허가되어 있는지 아닌지를 판단하는 판단부를 더 갖추고,
    상기 복호부는,
    상기 단말장치가 상기 부분집합(S1~Sm)의 어느 것인지에 속하여 있다고 판단되었을 경우에, 해당 단말장치가 속하는 상기 부분집합에 대응한 상기 세트키를 이용하여, 상기 콘텐츠 또는 콘텐츠 키를 복호하는 것을 특징으로 하는 단말장치.
  52. 복수의 유향지로 구성되는 가유향 그래프에 대해, 해당 가유향 그래프를 구성하는 상기 복수의 유향지 중에서 보다 긴 상기 유향지를 남기고나서, 해당 남긴 유향지 중에서 적어도 1개의 상기 유향지를 보다 짧은 유향지로 치환함으로써 생성된 유향 그래프를 취득하는 유향 그래프 취득 스텝과,
    상기 유향 그래프 취득부에 의해 취득된 상기 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화 또는 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법.
  53. 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조에 대해, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중에서 좌단에 위치하는 상기 잎 노드의 번호가 lv, 그리고 우단에 위치하는 상기 잎 노드의 번호가 rv로 정의되어 있고,
    또한, 자연수(i 및 j(i≤j))에 대하여, 집합(i→j)이 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}로 표기되고, 집합(i←j)이 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 표기되는 것으로 가정되어 있고,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 상기 뿌리 노드에 대응 지어진 제1 수평좌표축이 설정되고,
    또, 집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 상기 뿌리 노드에 대응 지어진 제2 수평좌표축이 설정되어 있고,
    또한, 상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제3 수평좌표축이 설정되고,
    또, 집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열되고, 어느 중간 노드(v)에 대응 지어진 제4 수평좌표축이 설정되고나서,
    소정의 정수(k)에 대해, n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 자연수(x)에 따라 길이 ni /k(i=0, 1,... x-1)을 가지는 복수의 유향지를 상기 제1~4 수평좌표축 상에 배치하여 형성된 가유향 그래프를 처리하는 정보처리 방법이며,
    상기 가유향 그래프를 취득하는 가유향 그래프 취득 스텝과,
    상기 가유향 그래프 취득부에 의해 취득된 상기 가유향 그래프를 구성하는 복수의 유향지 중에서, 보다 긴 상기 유향지를 남겨 유향 그래프를 생성하는 유향그래프 생성 스텝과,
    상기 유향 그래프를 구성하는 상기 복수의 유향지 중에서, 연속하는 상기 유향지의 최대수를 결정하는 최장 유향 패스 결정 스텝과,
    상기 연속하는 유향지의 최대수를 넘지 않도록, 상기 유향 그래프를 구성하는 적어도 1개의 유향지를 보다 짧은 유향지로 치환하여 유향 그래프를 재구성하는 유향지 치환 스텝과,
    상기 유향지 치환부에 의해 재구성된 상기 유향 그래프에 의거하여 콘텐츠 또는 콘텐츠 키를 암호화하기 위한 세트키를 생성하는 키 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법.
  54. 번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},...,{j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정하는 트리 구조 설정 스텝과,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축과,
    집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축과,
    상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제3 수평좌표축과,
    집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고,
    상기 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측과, 상기 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고,
    상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하는 좌표축 설정 스텝과,
    소정의 정수(k)를 설정하고,
    n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서,
    정수(i=0~x-1)의 각각에 대하여,
    ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    상기 제1~4 수평좌표축의 각각에 대하여, 상기 각 가좌표점을 시점 또는 종점으로 하는 모든 상기 유향지를 제외하고,
    상기 제1~4 수평좌표축 상의 각 좌표점에 도달하는 상기 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써,
    집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고,
    상기 집합(1→n-1)에 관한 가유향 그래프에 대해, 상기 제1 수평좌표축 상에 있는 상기 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하는 가유향 그래프 생성 스텝과,
    연속하는 상기 유향지에 의해 형성된 유향 패스 중에서, 상기 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하는 최장 유향 패스 결정 스텝과,
    상기 각 유향 패스의 유향지 수가, 상기 최장의 유향 패스의 유향지 수를 넘지 않도록, 상기 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 유향 그래프를 생성하는 유향 그래프 생성 스텝을 포함하는 것을 특징으로 하는 정보처리 방법.
  55. 유향 그래프에 의거하여, 콘텐츠 또는 콘텐츠 키를 복호하기 위한 세트키를 생성하는 키 생성 스텝을 포함하고,
    상기 유향 그래프는,
    번호(1~n(n은 자연수))가 대응 지어진 n개의 잎 노드와, 뿌리 노드와, 상기 뿌리 노드 및 상기 잎 노드 이외의 복수의 중간 노드로 구성되는 2분 트리 구조를 설정하고, 자연수(i 및 j(i≤j))에 관하여, 집합(i→j)을 {{i}, {i, i+1},..., {i, i+1,..., j-1, j}}, 집합(i←j)을 {{j}, {j, j-1},..., {j, j-1,..., i+1, i}}로 정의하여, 어느 중간 노드(v) 또는 뿌리 노드(v)의 하위에 배치된 복수의 상기 잎 노드 중, 좌단에 위치하는 상기 잎 노드의 번호를 lv, 우단에 위치하는 상기 잎 노드의 번호를 rv로 설정하고,
    집합(1→n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제1 수평좌표축과,
    집합(2←n)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 상기 뿌리 노드에 대응하는 제2 수평좌표축과,
    상기 중간 노드의 각각에 대하여,
    집합(lv→rv-1)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 왼쪽에서 오른쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노 드(v)에 대응하는 제3 수평좌표축과,
    집합(lv+1←rv)에 포함되는 각 부분집합에 대응 지어진 좌표점이, 수평좌표축 상에 오른쪽에서 왼쪽을 향해 포함 관계가 커지도록 배열된, 어느 중간 노드(v)에 대응하는 제4 수평좌표축을 설정하고,
    상기 제3 수평좌표축 상의 우단에 위치하는 좌표점의 우측이라고 상기 제2 및 제4 수평좌표축 상의 좌단에 위치하는 좌표점의 좌측에 각각 2개의 가좌표점을 배치하고,
    상기 제1 수평좌표축 상의 우단에 위치하는 좌표점을 제1의 가좌표점으로서 설정하고, 해당 제1의 가좌표점의 우측에 제2의 가좌표점을 배치하고,
    소정의 정수(k)를 설정하고,
    n(x-1)/k<(rv-lv+1)≤nx /k를 만족시키는 정수(x)를 산정하고나서,
    정수(i=0~x-1)의 각각에 대하여,
    ni /k의 길이를 가지는 우측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제1 및 제3 수평좌표축 상의 가장 왼쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    ni /k의 길이를 가지는 좌측방향을 향한 하나 또는 복수의 유향지를 연결하여 상기 제2 및 제4 수평좌표축 상의 가장 오른쪽에 있는 좌표점을 시점으로 하는 유향 패스를 형성하고,
    상기 제1~4 수평좌표축의 각각에 대하여, 상기 각 가좌표점을 시점 또는 종 점으로 하는 모든 상기 유향지를 제외하고,
    상기 제1~4 수평좌표축 상의 각 좌표점에 도달하는 상기 유향지 중, 최장의 유향지 이외의 유향지를 제외함으로써,
    집합(1→n-1), 집합(2←n), 집합(lv+1←rv), 집합(lv→rv-1)에 관한 가유향 그래프를 각각 생성하고,
    상기 집합(1→n-1)에 관한 가유향 그래프에 대해, 상기 제1 수평좌표축 상에 있는 상기 제1의 가좌표점을 종점으로 하는 길이 1의 유향지를 추가하여, 집합(1→n)에 관한 가유향 그래프를 생성하고,
    연속하는 상기 유향지에 의해 형성된 유향 패스 중에서, 상기 유향 패스를 구성하는 유향지 수가 최대가 되는 최장의 유향 패스를 결정하고,
    상기 각 유향 패스의 유향지 수가, 상기 최장의 유향 패스의 유향지 수를 넘지 않도록, 상기 각 유향 패스를 구성하는 유향지를, 보다 짧은 유향지로 치환하여 얻어지는 것을 특징으로 하는 키 생성 방법.
KR1020097009871A 2006-11-16 2007-10-03 정보처리 장치 KR20090089313A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2006-310182 2006-11-16
JPJP-P-2006-310226 2006-11-16
JP2006310182A JP2008131072A (ja) 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP2006310226A JP2008131079A (ja) 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、及び鍵生成方法

Publications (1)

Publication Number Publication Date
KR20090089313A true KR20090089313A (ko) 2009-08-21

Family

ID=39401484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097009871A KR20090089313A (ko) 2006-11-16 2007-10-03 정보처리 장치

Country Status (4)

Country Link
US (1) US8300816B2 (ko)
EP (1) EP2086160A1 (ko)
KR (1) KR20090089313A (ko)
WO (1) WO2008059672A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8265270B2 (en) * 2007-12-05 2012-09-11 Microsoft Corporation Utilizing cryptographic keys and online services to secure devices
US20140289530A1 (en) * 2011-10-24 2014-09-25 Netapp, Inc. Systems and methods for content delivery
WO2013142849A1 (en) 2012-03-23 2013-09-26 Clu Acquisition Llc Implementing policies for an enterprise network using policy instructions that are executed through a local policy framework
US8595262B1 (en) * 2012-03-29 2013-11-26 Amazon Technologies, Inc. Resource resolution in computing environments using directed graphs
KR20140028342A (ko) * 2012-08-28 2014-03-10 삼성전자주식회사 브로드캐스트 암호화를 위한 키 관리 방법 및 브로드캐스트 암호화를 이용한 메시지 전송 방법
KR102306676B1 (ko) * 2014-06-27 2021-09-28 삼성전자주식회사 스토리지 디바이스용 호스트 키 생성 방법 및 시스템
CN104809405B (zh) * 2015-04-24 2018-06-01 广东电网有限责任公司信息中心 基于分级分类的结构化数据资产防泄露方法
CN116796371B (zh) * 2023-08-24 2023-11-21 北京创元天成科技发展有限公司 一种客户数据安全信息分级处理系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028050B2 (en) * 2003-06-13 2011-09-27 Alcatel-Lucent Usa Inc. Restoration for virtual private networks
JP2006020292A (ja) * 2004-06-03 2006-01-19 Canon Inc 情報処理方法、情報処理装置
JP2008131079A (ja) 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP2008131072A (ja) 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、及び鍵生成方法

Also Published As

Publication number Publication date
WO2008059672A1 (fr) 2008-05-22
EP2086160A1 (en) 2009-08-05
US20100054465A1 (en) 2010-03-04
US8300816B2 (en) 2012-10-30

Similar Documents

Publication Publication Date Title
CN101663856B (zh) 密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法
KR20090089313A (ko) 정보처리 장치
US8300814B2 (en) Information processing unit, terminal unit, information processing method, key generation method and program
JP2008520158A (ja) ブロードキャスト暗号化のためのユーザキー管理方法
JP2005286959A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
CN107135062A (zh) 一种改进的大文件的加密方法
JP5198539B2 (ja) 記憶装置、アクセス装置およびプログラム
JP4632413B2 (ja) 情報暗号化装置及び情報配信装置並びにそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
KR101485460B1 (ko) 브로드캐스트 암호화에서 디바이스 키를 추적하는 방법
JP2008131076A (ja) 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
JP2008131072A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP5286748B2 (ja) 情報処理装置、鍵設定方法、及びプログラム
JP4161859B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
KR101951545B1 (ko) 와일드 카드를 포함하는 키 발급, 암호화 및 복호화 방법
JP4561074B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2008131079A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
US8150040B2 (en) Key providing system, terminal device, and information processing method
JP4635459B2 (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2021125810A (ja) 暗号化装置、復号装置、暗号化方法及び暗号化プログラム
JP2005191805A (ja) 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
KR100879083B1 (ko) 2 부분 차집합을 이용한 동보 메세지 암호화 방법
JP2008131078A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP2007020025A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2005252916A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid