-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine Technik zum Aktualisieren eines Hauptschlüssels in einem kryptografischen System.
-
Hintergrund zum Stand der Technik
-
Ein öffentlicher Hauptschlüssel, der als die Basis aller Chiffretexte dient, und ein geheimer Hauptschlüssel, der als die Basis aller Benutzergeheimschlüssel dient, sind für die ID-basierte Verschlüsselung, attributbasierte Verschlüsselung und funktionale Verschlüsselung verfügbar. Der öffentliche Hauptschlüssel und der geheime Hauptschlüssel bergen im Laufe der Zeit ein Sicherheitsminderungsrisiko, genauso wie es der Fall ist mit einem öffentlichen Schlüssel bei der allgemeinen Kryptographie mit öffentlichem Schlüssel, und müssen daher periodisch aktualisiert werden.
-
Wenn der öffentliche Hauptschlüssel und der geheime Hauptschlüssel aktualisiert werden, müssen auch alle Chiffretexte und alle Benutzergeheimschlüssel aktualisiert werden.
-
Nichtpatentliteratur 1 beschreibt eine Aktualisierung eines öffentlichen Hauptschlüssels und eines geheimen Hauptschlüssels bei der ID-basierten Verschlüsselung. Nichtpatentliteratur 1 beschreibt auch, dass dann, wenn der öffentliche Hauptschlüssel und der geheime Hauptschlüssel aktualisiert werden, kein Benutzergeheimschlüssel neu ausgegeben wird, sondern zur diesbezüglichen Bewerkstelligung aktualisiert wird.
-
Nichtpatentliteratur 2 beschreibt ein Verschlüsselungsschema, das die Sicherheit aufrechterhalten kann, selbst wenn gewisse Informationslecks eines geheimen Hauptschlüssels vorhanden sind.
-
Liste der zitierten Schriften
-
Patentliteratur
-
- Patentliteratur 1: WO 2011/135895
-
Nichtpatentliteratur
-
- Nichtpatentliteratur 1: ”A Forward Secure Scheme with Master Key Updat” Peng YANG und Kanta MATSUURA in SEISAN KENKYU 60. Aufl. (2008) Nr. 5 P 505–507.
- Nichtpatentliteratur 2: ”Identity-Based Encryption with Master Key-Dependent Message Security and Applications” David Galindo, Javier Herranz und Jorge Villar in ESORICS 2012.
-
Zusammenfassung der Erfindung
-
Technisches Problem
-
In Nichtpatentliteratur 1, wenn ein öffentlicher Hauptschlüssel und ein geheimer Hauptschlüssel aktualisiert werden, wird ein Benutzergeheimschlüssel nicht neu ausgegeben, sondern zur diesbezüglichen Bewerkstelligung aktualisiert. In Nichtpatentliteratur 1 muss allerdings ein Chiffretext neu erzeugt werden, wenn der öffentliche Hauptschlüssel und der geheime Hauptschlüssel aktualisiert werden. Der Chiffretext muss nämlich durch Entschlüsselung als Klartext wiederhergestellt werden, und muss dann auf Grundlage eines neuen öffentlichen Hauptschlüssels wieder verschlüsselt werden.
-
In Patentliteratur 2 kann die Sicherheit nicht aufrechterhalten werden, wenn das Informationsleck eines geheimen Hauptschlüssels eine zulässige Leckmenge überschreitet. Aus diesem Grund müssen ein öffentlicher Hauptschlüssel und ein geheimer Hauptschlüssel früher oder später aktualisiert werden.
-
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren zum Aktualisieren eines öffentlichen Hauptschlüssels und eines geheimen Hauptschlüssels zu realisieren, mit welchen die neue Erzeugung eines Benutzergeheimschlüssels und eines Chiffretexts nicht notwendig ist.
-
Lösung des Problems
-
Ein kryptografisches System gemäß der vorliegenden Erfindung enthält eine Hauptschlüsselaktualisierungseinrichtung, um einen öffentlichen Hauptschlüssel, der eine Basis enthält, und einen geheimen Hauptschlüssel, der eine Basis enthält, welche sich von der im öffentlichen Hauptschlüssel enthaltenen Basis unterscheidet, zu akquirieren, um die im öffentlichen Hauptschlüssel enthaltene Basis mit Aktualisierungsinformationen zu aktualisieren, um einen neuen öffentlichen Hauptschlüssel zu erzeugen, und um die im geheimen Hauptschlüssel enthaltene Basis mit den Aktualisierungsinformationen zu aktualisieren, um einen neuen geheimen Hauptschlüssel zu erzeugen.
-
Vorteilhafte Wirkungen der Erfindung
-
Gemäß der vorliegenden Erfindung werden ein öffentlicher Hauptschlüssel und ein geheimer Hauptschlüssel aktualisiert, indem eine im öffentlichen Hauptschlüssel enthaltene Basis und eine im geheimen Hauptschlüssel enthaltene Basis aktualisiert werden. Ein Benutzergeheimschlüssel und ein Chiffretext werden in die Lage versetzt, einen neuen öffentlichen Hauptschlüssel und einen neuen geheimen Hauptschlüssel zu bewerkstelligen, indem die Basis des Benutzergeheimschlüssels und die Basis des Chiffretexts aktualisiert werden; wobei der Benutzergeheimschlüssel und der Chiffretext nicht neu erzeugt werden müssen.
-
Kurzbeschreibung der Zeichnungen
-
1 ist eine erläuternde Zeichnung einer Zugriffsstruktur S, die in der funktionalen Verschlüsselung eingesetzt wird.
-
2 ist eine erläuternde Zeichnung einer Untermatrix Mδ.
-
3 ist eine erläuternde Zeichnung eines Geheimwerts s0 der geheimen Dispersion.
-
4 ist eine erläuternde Zeichnung der Dispersionswerte s1, ..., sL der geheimen Dispersion.
-
5 ist ein Konfigurationsdiagramm eines kryptografischen Systems 10 gemäß Ausführungsform 1.
-
6 ist ein Konfigurationsdiagramm einer Schlüsselerzeugungseinrichtung 100 gemäß Ausführungsform 1.
-
7 ist ein Konfigurationsdiagramm einer Verschlüsselungseinrichtung 200 gemäß Ausführungsform 1.
-
8 ist ein Konfigurationsdiagramm einer Entschlüsselungseinrichtung 300 gemäß Ausführungsform 1.
-
9 ist ein Konfigurationsdiagramm einer Hauptschlüsselaktualisierungseinrichtung 400 gemäß Ausführungsform 1.
-
10 ist ein Konfigurationsdiagramm einer Chiffretextaktualisierungseinrichtung 500 gemäß Ausführungsform 1.
-
11 ist ein Konfigurationsdiagramm einer Benutzergeheimschlüsselaktualisierungseinrichtung 600 gemäß Ausführungsform 1.
-
12 ist ein Flussdiagramm eines Setup-Algorithmus gemäß Ausführungsform 1.
-
13 ist ein Flussdiagramm eines KG-Algorithmus gemäß Ausführungsform 1.
-
14 ist ein Flussdiagramm eines Enc-Algorithmus gemäß Ausführungsform 1.
-
15 ist ein Flussdiagramm eines Dec-Algorithmus gemäß Ausführungsform 1.
-
16 ist ein Flussdiagramm eines ApdMKey-Algorithmus gemäß Ausführungsform 1.
-
17 ist ein Flussdiagramm eines ApdCT-Algorithmus gemäß Ausführungsform 1.
-
18 ist ein Flussdiagramm eines ApdSK-Algorithmus gemäß Ausführungsform 1.
-
19 ist ein Diagramm zum Darstellen eines Beispiels einer Hardware-Konfiguration von jeder der Schlüsselerzeugungseinrichtung 100, Verschlüsselungseinrichtung 200, Entschlüsselungseinrichtung 300, Hauptschlüsselaktualisierungseinrichtung 400, Chiffretextaktualisierungseinrichtung 500 und Benutzergeheimschlüsselaktualisierungseinrichtung 600, gezeigt in Ausführungsform 1.
-
Beschreibung der Ausführungsformen
-
Ausführungsform 1
-
Erläuterung der Notationen
-
Die Notationen in der folgenden Beschreibung werden erläutert.
-
Wenn A eine Zufallsvariable oder Verteilung ist, bezeichnet die Formel 101, dass y aus A entsprechend der Verteilung von A zufällig ausgewählt ist. In Formel 101 ist y nämlich eine Zufallszahl. [Formel 101]
-
Wenn A eine Gruppe/Menge ist, bezeichnet die Formel 102, dass y aus A Gleichmäßig ausgewählt ist. In der Formel 102 ist y nämlich eine gleichmäßige Zufallszahl.
-
-
Die Formel 103 bezeichnet, dass z in y festgelegt ist, y durch z definiert ist oder y durch z ersetzt ist.
-
[Formel 103]
-
-
Wenn a ein fester Wert ist, bezeichnet die Formel 104 ein Ereignis, dass eine Maschine (Algorithmus) A auf die Eingabe x a ausgibt.
-
[Formel 104]
-
-
A(x) → a
- Zum Beispiel
-
A(x) → 1
-
Die Formel 105 bezeichnet ein Feld der Ordnung q.
-
[Formel 105]
-
-
Die Formel 106 bezeichnet eine Vektordarstellung über dem finiten Feld Fq.
-
[Formel 106]
-
- x→ bezeichnet
-
(x1, ..., xn) ∈ F n / q
-
Die Formel 107 bezeichnet das Skalarprodukt, angegeben durch die Formel 109, von zwei Vektoren x→ und v→, angegeben in Formel 108.
-
[Formel 107]
-
-
[Formel 108]
-
-
[Formel 109]
-
-
Es wird darauf hingewiesen, dass xT die Transponierte der Matrix X bezeichnet.
-
Es wird darauf hingewiesen, dass für die in Formel 110 angegebenen Basen B und B* die Formel 111 bestimmt wird.
-
[Formel 110]
-
-
[Formel 111]
-
-
(x1, ..., xN)B := Σ n / i=1xibi,
-
(y1, ..., yN)B* := Σ n / i=1yib * / i
-
Es wird darauf hingewiesen, dass e→ i einen orthonormalen Basisvektor, angegeben in Formel 112, bezeichnet.
-
-
Beschreibung des Inhalts
-
Die Grundlagen der funktionalen Verschlüsselung mit der Chiffretext-Strategie werden erläutert, und anschließend der Inhalt einer Technik zum Aktualisieren eines öffentlichen Hauptschlüssels mpk und eines geheimen Hauptschlüssels msk erläutert.
-
Die Grundlagen der funktionalen Verschlüsselung mit der Chiffretext-Strategie werden erläutert.
-
1 ist eine erläuternde Zeichnung einer bei der funktionalen Verschlüsselung eingesetzten Zugriffsstruktur S.
-
Bei der funktionalen Verschlüsselung werden ein Tupel von einer L-Reihe, eine r-Spalten geheime Dispersionsmatrix M und ein Name/Label p von jeder Reihe der geheimen Dispersionsmatrix M als die Zugriffsstruktur S eingesetzt. Der Name p von jeder Reihe bezieht sich auf ein Literal von entweder positiven Literalen {p
1, ..., p
n} oder negativen Literalen
die durch eine Gruppe von Variablen {p
1, ..., p
n} gegeben sind.
-
Für eine Eingabesequenz δ = δ
i ∈ {0, 1} (i = 1, ..., n) ist eine Untermatrix M
δ der geheimen Dispersionsmatrix M definiert. Die Untermatrix M
δ besteht aus denjenigen Reihen der geheimen Dispersionsmatrix M, deren Namen p sich auf den Wert ”1” durch die Eingabesequenz δ beziehen. Die Submatrix M
δ besteht nämlich aus den Reihen der geheimen Dispersionsmatrix M, die sich auf ρ
i, mit welchem δ
i = 1 ist, und aus den Reihen der geheimen Dispersionsmatrix M, welche sich auf
mit welchem δ
i = 0 ist, beziehen.
-
2 ist eine erläuternde Zeichnung der Untermatrix Mδ.
-
Es wird darauf hingewiesen, dass in 2 n = 7, L = 6 und r = 5 ist. Das heißt, die Gruppe der Variablen ist {p1, ..., p7} und die Matrix M hat 6 Zeilen und 5 Spalten. In 2 wird angenommen, dass die Namen ρ so im Zusammenhang stehen, dass ρ1p2 entspricht, ρ2p1 entspricht, ρ3p4 entspricht, ρ4p5 entspricht, ρ5p3 entspricht und ρ6p5 entspricht.
-
Es wird angenommen, dass die Eingabesequenz δ, δ
1 = 1, δ
2 = 0, δ
3 = 1, δ
4 = 0, δ
5 = 0, δ
6 = 1 und δ
7 = 1 ist. In diesem Fall besteht die Untermatrix M
δ der Reihen der geheimen Dispersionsmatrix M, die sich auf die Literale (p
1, p
3, p
6, p
7,
) beziehen, welche in
2 mit unterbrochenen Linien umzeichnet sind. Das heißt, die Untermatrix M
δ besteht aus der 1sten Reihe (M
1), 2ten Reihe (M
2) und der 4ten Reihe (M
4) der geheimen Dispersionsmatrix M.
-
Wenn [ρ(j) = p
i] ∧ [δ
i = 1] oder [ρ(j) =
p
i] ∧ [δ
i = 0], dann ist das Kennfeld γ(j) = 1; ansonsten ist das Kennfeld γ(j) = 0. Der erstgenannte Fall kann ausgedrückt werden als M
δ := (M
j)
γ(j)=1. Es wird darauf hingewiesen, dass M die j-te Reihe der Matrix M ist.
-
Bei der funktionalen Verschlüsselung ist jede Variable p der Gruppe von Variablen in der Zugriffsstruktur S durch ein Tupel (t, v
→ i) eines Identifikators t und eines Vektors v
→ i definiert. Wenn eine Attributgruppe Γ, die ein Tupel (t, x
→ t) des Identifikators t ist, und ein Vektor x
→ t der Zugriffsstruktur S zugeordnet wird, dann wird für jede ganze Zahl i von i = 1 für das Kennfeld γ(i) definiert, dass es γ(j) = 1 wenn [ρ(i) = (t, v
→ i)] ∧ [(t, x
→ t) ∊ Γ] ∧ [v
→ i·x
→ t = 0] oder [ρ(i) =
(t, v
→ i)] ∧ [(t, x
→ t) ∊ Γ] ∧ [v
→ i·x
→ t ≠ 0] oder andernfalls γ(j) = 0 genügt.
-
Bei der funktionalen Verschlüsselung wird das Kennfeld γ(i) nämlich auf Grundlage des Skalarprodukts der Vektoren v→ i und x→ t berechnet. Wie vorstehend erläutert, wird durch das Kennfeld γ(i) bestimmt, welche Reihe der geheimen Dispersionsmatrix M in der Untermatrix Mδ aufzunehmen ist.
-
Die Zugriffsstruktur S akzeptiert die Attributgruppe Γ wenn, und nur wenn die lineare Kombination der Reihen der Untermatrix Mδ1→ ergibt, wobei 1 ein Reihenvektor ist, dessen Elemente alle 1 sind.
-
Zum Beispiel in dem Fall gemäß 2, akzeptiert die Zugriffsstruktur S die Attributgruppe Γ, wenn, und nur wenn die lineare Kombination der jeweiligen Reihen der Untermatrix Mδ, bestehend aus den 1sten, 2ten und 4ten Reihen der geheimen Dispersionsmatrix M1→ ergibt. Das heißt, wenn α1, α2 und α4 vorhanden sind, mit welchen α1(M1) + α2(M2) + α4(M4) = 1→ ist, akzeptiert die Zugriffsstruktur M die Attributgruppe Γ.
-
Insbesondere wenn angenommen wird, dass die Gruppe der Zeilennummern von einer in der Untermatrix Mδ enthaltenen geheimen Dispersionsmatrix als I definiert ist, akzeptiert die Zugriffsstruktur S die Attributgruppe Γ, wenn ein Koeffizient α1 vorhanden ist, der Σi∊IαiMi = 1→ genügt.
-
Bei der funktionalen Verschlüsselung mit der Chiffretext-Strategie wird ein Schlüsselelement k*t, in welchem der Vektor x→ t festgelegt ist, für den Identifikator t erzeugt, der in der Attributgruppe Γ enthalten ist, die das Benutzerattribut repräsentiert. Dann wird ein Benutzergeheimschlüssel skΓ, der das Schlüsselelement k*t enthält, für den in der Attributgruppe Γ enthaltenen Identifikator und für t = 0 erzeugt.
-
Das Schlüsselelement k*t für jeden Identifikator t des in der Attributgruppe Γ enthaltenen Identifikators t und von t = 0 ist ein Vektor über der Basis B*, deren Subbasis B*^ im geheimen Hauptschlüssel msk enthalten ist.
-
Der Identifikator t entspricht einer Attributkategorie. Der Attributwert der Attributkategorie, die dem Identifikator entspricht, ist im Vektor x→ t festgelegt. Die Attributkategorie ist eine Klassifizierung eines Attributs, wie die dazugehörige Abteilung, Geschlecht, Alter und so weiter. Wenn der Identifikator t zum Beispiel der dazugehörigen Abteilung entspricht, wird ein Wert, der die dazugehörige Abteilung des Benutzers des Geheimschlüssels skΓ repräsentiert, im Vektor x→ t festgelegt.
-
Bei der funktionalen Verschlüsselung mit der Chiffretext-Strategie wird für jede ganze Zahl i von i = 1, ..., L der geheimen Dispersion der i-ten Reihe der geheimen Dispersionsmatrix M der Zugriffsstruktur S ein Dispersionswert si zugeordnet. Für die i-te Reiche der geheimen Dispersionsmatrix M wird ein Chiffreelement ci erzeugt, in welchem der zugeordnete Dispersionswert si und der Vektor x→t festgelegt sind. Ein Chiffreelement c0 wird erzeugt, in welchem ein Geheimwert s0 festgelegt ist, der aus der Gruppe von Dispersionswerten si, die einer Bedingung genügen, berechnet ist. Ein Chiffreelement cd+1 wird erzeugt, das aus einer Nachricht m unter Verwendung eines Sitzungsschlüssels K verschlüsselt ist. Ein Chiffretext cts, der das Chiffreelement ci für jede ganze Zahl i von i = 0, ..., L, d + 1 und die Zugriffsstruktur S enthält, wird erzeugt.
-
Das Chiffreelement ci für jede ganze Zahl von i = 0, ..., L ist ein Vektor über der Basis B, dessen Subbasis B^ im öffentlichen Hauptschlüssel mpk enthalten ist.
-
Bei der funktionalen Verschlüsselung mit der Chiffretext-Strategie sind das Schlüsselelement k*t für den Identifikator t, der in der Attributgruppe Γ enthalten ist, und das Chiffreelement ci, das durch einen Namen ρ(i) identifiziert ist, der den Identifikator t aufweist, verknüpfungsoperiert. Durch die Verknüpfungsoperation werden das Skalarprodukt v→ t und der Vektor x→ t berechnet, und das Kennfeld γ(i) berechnet. Dann wird bestimmt, welche Reihe der geheimen Dispersionsmatrix M in der Untermatrix Mδ aufzunehmen ist.
-
Wenn die Zugriffsstruktur S die Attributgruppe Γ akzeptiert, wird eine Gruppe von Dispersionswerten si, die der Bedingung genügen, extrahiert, und der Geheimwert so berechnet. Der Sitzungsschlüssel K wird aus einem Schlüsselelement k*0, dem Chiffreelement c0 und dem Geheimwert s0 erzeugt. Die Nachricht m wird unter Verwendung des Sitzungsschlüssels K berechnet.
-
3 ist eine erläuternde Zeichnung des Geheimwerts s0 der geheimen Dispersion.
-
Der Geheimwert s0 ist die Summe der Elemente des Produkts eines Reihenvektors, dessen r von Elementen alle 1 sind, und ein Spaltenvektor f r der Elemente f1, ..., fr aufweist. Die Elemente des Reihenvektors f sind gleichmäßige Zufallszahlen.
-
4 ist eine erläuternde Zeichnung der Dispersionswerte s1, ..., sL der geheimen Dispersion.
-
Die Dispersionswerte s1, ..., sL sind die Produkte der geheimen Dispersionsmatrix M und des Spaltenvektors f. Ein Spaltenvektor s→T ist ein Vektor, der aus den Dispersionswerten s1, ..., sL als Elemente besteht.
-
Wie vorstehend erläutert, wenn die Zugriffsstruktur M die Attributgruppe Γ akzeptiert, dann ist der Koeffizient αi vorhanden, der Σi∊IαiMi = 1→ genügt. Der Koeffizient α1 kann in polynomischer Zeit in der Größe der geheimen Dispersionsmatrix M berechnet werden. Unter Verwendung des Koeffizienten wird Σi∊IαiMi = s0 aus den Definitionen des Geheimwerts s0 und den Dispersionswerten s1, ..., sL bestimmt.
-
Der Inhalt der Technik zum Aktualisieren des öffentlichen Hauptschlüssels mpk und des geheimen Hauptschlüssels msk wird nachfolgend erläutert.
-
Wie vorstehend erläutert, enthält der öffentliche Hauptschlüssel die Subbasis B^ von der Basis B und der geheime Hauptschlüssel enthält die Subbasis B*^ von der Basis *. Das Chiffreelement ci, das im Chiffretext cts enthalten ist, ist ein Vektor über der Basis B und ein Schlüsselelement K*i, das im Benutzergeheimschlüssel skΓ enthalten ist, ist ein Vektor über der Basis B*.
-
Diesbezüglich werden in Ausführungsform 1 unter Verwendung einer Zufallsmatrix als Aktualisierungsinformationen upk die in dem öffentlichen Hauptschlüssel mpk enthaltene Subbasis B^ und die im geheimen Hauptschlüssel msk enthaltene Subbasis B*^ mit den Aktualisierungsinformationen upk aktualisiert. Somit werden der öffentliche Hauptschlüssel mpk und der geheime Hauptschlüssel msk aktualisiert.
-
Die Basis B des Chiffreelements ci, die im Chiffretext cts enthalten ist, und die Basis B* des Schlüsselelements k*i, die im Benutzergeheimschlüssel skΓ enthalten ist, werden ebenfalls mit den Aktualisierungsinformationen upk aktualisiert. Somit werden der Chiffretext cts und der Benutzergeheimschlüssel sk in die Lage versetzt, die Aktualisierung des öffentlichen Hauptschlüssels mpk und des geheimen Hauptschlüssels msk zu bewerkstelligen.
-
Beschreibung der Konfiguration
-
5 ist ein Konfigurationsdiagramm eines kryptografischen Systems 10 gemäß Ausführungsform 1.
-
Das kryptografische System 10 ist mit einer Schlüsselerzeugungseinrichtung 100, einer Verschlüsselungseinrichtung 200, einer Entschlüsselungseinrichtung 300, einer Hauptschlüsselaktualisierungseinrichtung 400, einer Chiffretextaktualisierungseinrichtung 500 und einer Benutzergeheimschlüsselaktualisierungseinrichtung 600 ausgestattet.
-
Die Schlüsselerzeugungseinrichtung 100 nimmt als eine Eingabe ein Attributformat n→ und einen Sicherheitsparameter λ, und führt einen Setup-Algorithmus aus, um den öffentlichen Hauptschlüssel mpk, der die Basis B enthält, und den geheimen Hauptschlüssel, der die Basis B* enthält, welche sich von der in dem öffentlichen Hauptschlüssel mpk enthaltenen Basis unterscheidet, zu erzeugen. Die Schlüsselerzeugungseinrichtung 100 nimmt auch als eine Eingabe den öffentlichen Hauptschlüssel mpk, den geheimen Hauptschlüssel msk und die Benutzerattributgruppe Γ und führt den KG-Algorithmus aus, um den Benutzergeheimschlüssel skΓ zu erzeugen, der ein Schlüsselelement enthält, das ein Vektor über der Basis B* ist, die im geheimen Hauptschlüssel msk enthalten ist.
-
Die Schlüsselerzeugungseinrichtung 100 veröffentlicht den öffentlichen Hauptschlüssel mpk. In Antwort auf eine Anforderung von der Hauptschlüsselaktualisierungseinrichtung 400 gibt die Schlüsselerzeugungseinrichtung 100 den geheimen Hauptschlüssel msk an die Hauptschlüsselaktualisierungseinrichtung 400 im Geheimen aus.
-
Die Verschlüsselungseinrichtung 200 nimmt als Eingabe den öffentlichen Hauptschlüssel mpk, die Zugriffsstruktur S und die Nachricht m, und führt den Enc-Algorithmus aus, um den Chiffretext cts zu erzeugen, der aus der Nachricht m verschlüsselt ist, und der ein Chiffreelement enthält, das ein Vektor über der Basis B ist, die im öffentlichen Hauptschlüssel mpk enthalten ist. Die Verschlüsselungseinrichtung 200 gibt den Chiffretext cts an die Chiffretextaktualisierungseinrichtung 500 aus.
-
Die Entschlüsselungseinrichtung 300 nimmt als Eingabe den öffentlichen Hauptschlüssel mpk, den Benutzergeheimschlüssel skΓ und den Chiffretext cts oder einen aktualisierten Chiffretext cts', führt den Dec-Algorithmus aus und gibt die Nachricht m oder ein Symbol ⊥, das einen Entschlüsselungsfehler repräsentiert, aus.
-
Die Hauptschlüsselaktualisierungseinrichtung 400 nimmt als Eingabe den öffentlichen Hauptschlüssel mpk und den geheimen Hauptschlüssel msk und führt den ApdMKey-Algorithmus aus, um einen neuen öffentlichen Hauptschlüssel mpk', einen neuen geheimen Hauptschlüssel msk' und die Aktualisierungsinformationen upk zu erzeugen. Insbesondere aktualisiert die Hauptschlüsselaktualisierungseinrichtung 400 die Basis B, die im öffentlichen Hauptschlüssel mpk enthalten ist, der durch die Schlüsselerzeugungseinrichtung 100 erzeugt ist, mit den Aktualisierungsinformationen upk, wodurch der neue öffentliche Hauptschlüssel mpk' erzeugt wird. Die Hauptschlüsselaktualisierungseinrichtung 400 aktualisiert auch die Basis B*, die in dem geheimen Hauptschlüssel msk enthalten ist, der durch die Schlüsselerzeugungseinrichtung 100 erzeugt ist, mit den Aktualisierungsinformationen upk, wodurch der neue geheime Hauptschlüssel msk' erzeugt wird.
-
Die Hauptschlüsselaktualisierungseinrichtung 400 gibt den neuen öffentlichen Hauptschlüssel mpk' und den neuen geheimen Hauptschlüssel msk' an die Schlüsselerzeugungseinrichtung 100 im Geheimen aus, und gibt die Aktualisierungsinformationen upk an die Chiffretext-Aktualisierungseinrichtung 500 und die Benutzergeheimschlüsselaktualisierungseinrichtung 600 im Geheimen aus.
-
Die Chiffretextaktualisierungseinrichtung 500 speichert den Chiffretext cts und gibt den Chiffretext cts an die Entschlüsselungseinrichtung 300 in Antwort auf eine Anforderung von der Entschlüsselungseinrichtung 300 aus. Wenn der neue öffentliche Hauptschlüssel mpk' und der neue geheime Hauptschlüssel msk' erzeugt werden, nimmt die Chiffretextaktualisierungseinrichtung 500 die Aktualisierungsinformationen upk und den Chiffretext cts als Eingabe und führt den ApdCT-Algorithmus aus, um den neuen Chiffretext cts' zu erzeugen, der aus dem Chiffretext cts aktualisiert ist. Insbesondere aktualisiert die Chiffretextaktualisierungseinrichtung 500 ein Chiffreelement, das im Chiffretext cts enthalten ist, der durch die Verschlüsselungseinrichtung 200 erzeugt ist, mit den Aktualisierungsinformationen upk, wodurch der neue Chiffretext cts' erzeugt wird.
-
Der Chiffretextaktualisierungseinrichtung 500 löscht den Chiffretext cts, den diese managt, und speichert den erzeugten neuen Chiffretext cts als den Chiffretext cts.
-
Die Benutzergeheimschlüsselaktualisierungseinrichtung 600 speichert den Benutzergeheimschlüssel skΓ und gibt den gespeicherten Benutzergeheimschlüssel skΓ an die Entschlüsselungseinrichtung 300 im Geheimen aus.
-
Die Benutzergeheimschlüsselaktualisierungseinrichtung 600 nimmt als Eingabe die Aktualisierungsinformationen upk und den Benutzergeheimschlüssel skΓ und führt den ApdSK-Algorithmus aus, um einen neuen Benutzergeheimschlüssel skΓ' zu erzeugen, der aus dem Benutzergeheimschlüssel skΓ aktualisiert ist. Insbesondere aktualisiert die Benutzergeheimschlüsselaktualisierungseinrichtung 600 ein Schlüsselelement, das im Benutzergeheimschlüssel skΓ enthalten ist, mit den Aktualisierungsinformationen upk, wodurch der neue Benutzergeheimschlüssel skΓ' erzeugt wird.
-
Die Benutzergeheimschlüsselaktualisierungseinrichtung 600 löscht den Benutzergeheimschlüssel skΓ, den diese managt, und speichert den erzeugten neuen Benutzergeheimschlüssel skΓ' als den Benutzergeheimschlüssel skΓ.
-
6 ist ein Konfigurationsdiagramm der Schlüsselerzeugungseinrichtung 100 gemäß Ausführungsform 1.
-
Die Schlüsselerzeugungseinrichtung 100 ist mit einem Informationsakquirierungsteil, einem Hauptschlüsselerzeugungsteil 120, einem Benutzergeheimschlüsselerzeugungsteil 130 und einem Schlüsselausgabeteil 140 ausgestattet.
-
Der Informationsakquirierungsteil 110 akquiriert das Attributformat n→, den Sicherheitsparameter λ und die Attributgruppe Γ, die durch den Administrator des kryptografischen Systems 10 eingegeben werden.
-
Auf Grundlage des Attributformats n→ und des Sicherheitsparameters λ, die durch den Informationsakquirierungsteil 110 akquiriert werden, erzeugt der Hauptschlüsselerzeugungsteil 120 den öffentlichen Hauptschlüssel mpk, der die Basis B enthält, und den geheimen Hauptschlüssel msk, der die Basis B* enthält, welche sich von der im öffentlichen Hauptschlüssel mpk enthaltenen Basis B unterscheidet.
-
Auf Grundlage der Attributgruppe Γ, die durch den Informationsakquirierungsteil 110 akquiriert wird, und des öffentlichen Hauptschlüssels mpk und des geheimen Hauptschlüssels msk, die durch den Hauptschlüsselerzeugungsteil 120 erzeugt werden, erzeugt der Benutzergeheimschlüsselerzeugungsteil 130 den Benutzergeheimschlüssel skΓ, der ein Schlüsselelement enthält, das ein Vektor über der Basis B* ist, die im geheimen Hauptschlüssel msk enthalten ist.
-
Der Schlüsselausgabeteil 140 gibt den öffentlichen Hauptschlüssel mpk an einen Veröffentlichungsserver oder dergleichen aus, um den öffentlichen Hauptschlüssel mpk zu veröffentlichen, und gibt den Benutzergeheimschlüssel skΓ an die Benutzergeheimschlüsselaktualisierungseinrichtung 600 im Geheimen aus. Der Schlüsselausgabeteil 140 gibt außerdem den geheimen Hauptschlüssel msk an die Hauptschlüsselaktualisierungseinrichtung 400 im Geheimen aus.
-
Im Geheimen ausgeben bedeutet, zum Beispiel über Verschlüsselung in Entsprechung mit einer vorhandenen Kryptografie zu übertragen.
-
7 ist ein Konfigurationsdiagramm der Verschlüsselungseinrichtung 200 gemäß Ausführungsform 1.
-
Die Verschlüsselungseinrichtung 200 ist mit einem Informationsakquirierungsteil 210, einem Chiffretexterzeugungsteil 220 und einem Chiffretextausgabeteil 230 bereitgestellt,
-
Der Informationsakquirierungsteil 210 akquiriert den öffentlichen Hauptschlüssel mpk, der durch die Schlüsselerzeugungseinrichtung 100 erzeugt ist, und die Zugriffsstruktur S und die Nachricht m, die durch den Benutzer der Verschlüsselungseinrichtung 200 eingegeben werden.
-
Auf Grundlage des öffentlichen Hauptschlüssels mpk, der Zugriffsstruktur S und der Nachricht m, die durch den Informationsakquirierungsteil 210 akquiriert werden, erzeugt der Chiffretexterzeugungsteil 220 den Chiffretext cts, der aus der Nachricht m verschlüsselt ist, und der ein Chiffreelement enthält, das ein Vektor über der Basis B ist, die im öffentlichen Hauptschlüssel mpk enthalten ist.
-
Der Chiffretextausgabeteil 230 gibt den Chiffretext cts, der durch das Chiffretexterzeugungsteil 220 erzeugt ist, an die Chiffretextaktualisierungseinrichtung 500 aus.
-
8 ist ein Konfigurationsdiagramm der Entschlüsselungseinrichtung 300 gemäß Ausführungsform 1.
-
Die Entschlüsselungseinrichtung 300 ist mit einem Informationsakquirierungsteil 310, einem Chiffretextbestimmungsteil 320, einem Entschlüsselungsteil 330 und einem Ergebnisausgabeteil 340 ausgestattet.
-
Der Informationsakquirierungsteil 310 akquiriert den öffentlichen Hauptschlüssel mpk von der Schlüsselerzeugungseinrichtung 100, den Chiffretext cts von der Chiffretextaktualisierungseinrichtung 500 und den Benutzergeheimschlüssel skΓ von der Benutzergeheimschlüsselaktualisierungseinrichtung 600.
-
Der Chiffretextbestimmungsteil 320 bestimmt, ob oder ob nicht der durch den Informationsakquirierungsteil 310 akquirierte Chiffretext cts unter Verwendung des Benutzergeheimschlüssels skΓ entschlüsselbar ist.
-
Wenn der Chiffretextbestimmungsteil 320 den Chiffretext cts als entschlüsselbar bestimmt, entschlüsselt der Entschlüsselungsteil 330 den durch den Informationsakquierierungsteil akquirierten Chiffretext unter Verwendung des Benutzergeheimschlüssels skΓ auf Grundlage des öffentlichen Hauptschlüssels mpk.
-
Wenn der Chiffretextbestimmungsteil 320 bestimmt, dass der Chiffretext entschlüsselbar ist, gibt der Ergebnisausgabeteil 340 das Entschlüsselungsergebnis des Entschlüsselungsteils 330 aus. Wenn der Chiffretextbestimmungsteil 320 bestimmt, dass der Chiffretext nicht entschlüsselbar ist, gibt der Ergebnisausgabeteil 340 das Symbol ⊥ aus, das einen Entschlüsselungsfehler repräsentiert.
-
9 ist ein Konfigurationsdiagramm der Hauptschlüsselaktualisierungseinrichtung 400 gemäß Ausführungsform 1.
-
Die Hauptschlüsselaktualisierungseinrichtung 400 ist mit einem Hauptschlüsselakquirierungsteil 410, einem Aktualisierungsinformationserzeugungsteil 420, einem Hauptschlüsselaktualisierungsteil 430 und einem Aktualisierungsinformationsausgabeteil 440 ausgestattet.
-
Der Hauptschlüsselakquirierungsteil 410 akquiriert den öffentlichen Hauptschlüssel mpk, der die Basis B enthält, und den geheimen Hauptschlüssel, der die Basis B* enthält, welche sich von der Basis B unterscheidet, die im öffentlichen Hauptschlüssel mpk enthalten ist.
-
Der Aktualisierungsinformationserzeugungsteil 420 erzeugt die Aktualisierungsinformationen upk zum Aktualisieren des öffentlichen Hauptschlüssels mpk und des geheimen Hauptschlüssels msk.
-
Der Hauptschlüsselaktualisierungsteil 430 aktualisiert die Basis B, die im öffentlichen Hauptschlüssel mpk enthalten ist, der durch das Hauptschlüsselakquirierungsteil 410 akquiriert ist, mit den Aktualisierungsinformationen upk, die durch den Aktualisierungsinformationserzeugungsteil 420 erzeugt sind, um den neuen öffentlichen Hauptschlüssel mpk' zu erzeugen. Der Hauptschlüsselaktualisierungsteil 430 aktualisiert außerdem die Basis B*, die im geheimen Hauptschlüssel msk enthalten ist, der durch den Hauptschlüsselakquirierungsteil 410 akquiriert ist, mit den Aktualisierungsinformationen upk, die durch den Aktualisierungsinformationserzeugungsteil 420 erzeugt sind, um den neuen geheimen Hauptschlüssel msk' zu erzeugen.
-
Der Aktualisierungsinformationsausgabeteil 440 gibt den neuen öffentlichen Hauptschlüssel mpk' und den neuen geheimen Hauptschlüssel msk', die durch den Hauptschlüsselaktualisierungsteil 430 erzeugt sind, an die Schlüsselerzeugungseinrichtung 110 im Geheimen aus. Der Aktualisierungsinformationsausgabeteil 440 gibt auch die Aktualisierungsinformationen upk, die durch den Aktualisierungsinformationserzeugungsteil 420 erzeugt sind, an die Chiffretextaktualisierungseinrichtung 500 und die Benutzergeheimschlüsselaktualisierungseinrichtung 600 im Geheimen aus.
-
10 ist ein Konfigurationsdiagramm der Chiffretextaktualisierungseinrichtung 500 gemäß Ausführungsform 1.
-
Die Chiffretextaktualisierungseinrichtung 500 ist mit einem Chiffretextakquirierungsteil 510, einem Chiffretextspeicherteil 520, einem Aktualisierungsinformationsakquirierungsteil 530, einem Chiffretextaktualisierungsteil 540 und einem Chiffretextausgabeteil 550 ausgestattet.
-
Der Chiffretextakquirierungsteil 510 akquiriert den Chiffretext cts, der durch die Verschlüsselungseinrichtung 200 erzeugt ist.
-
Der Chiffretextspeicherteil 520 ist eine Speichereinrichtung zum Speichern des Chiffretexts cts, der durch den Chiffretextaktualisierungsteil 510 akquiriert ist.
-
Der Aktualisierungsinformationsakquirierungsteil 530 akquiriert die Aktualisierungsinformationen upk, die durch die Hauptschlüsselaktualisierungseinrichtung 400 erzeugt sind.
-
Der Chiffretextaktualisierungsteil 540 aktualisiert ein Chiffreelement, das im Chiffretext cts enthalten ist, der durch die Verschlüsselungseinrichtung 200 erzeugt ist, mit den Aktualisierungsinformationen upk, um den neuen Chiffretext cts' zu erzeugen. Insbesondere aktualisiert die Chiffretextaktualisierungseinrichtung 500 das Chiffreelement, das im Chiffretext cts enthalten ist, der durch die Verschlüsselungseinrichtung 200 erzeugt ist, mit den Aktualisierungsinformationen upk, um den neuen Chiffretext cts' zu erzeugen.
-
Der Chiffretextaktualisierungsteil 540 löscht den Voraktualisierungschiffretext cts, der im Chiffretextspeicherteil 520 gespeichert ist, und speichert den erzeugten neuen Chiffretext cts' als den Chiffretext cts.
-
In Antwort auf die Anforderung von der Entschlüsselungseinrichtung 300 gibt das Chiffretextausgabeteil 550 den im Chiffretextspeicherteil 520 gespeicherten Chiffretext cts an die Entschlüsselungseinrichtung 300 aus.
-
11 ist ein Konfigurationsdiagramm der Benutzergeheimschlüsselaktualisierungseinrichtung 600 gemäß Ausführungsform 1.
-
Die Benutzergeheimschlüsselaktualisierungseinrichtung 600 ist mit einem Benutzergeheimschlüsselakquirierungsteil 610, einem Benutzergeheimschlüsselspeicherteil 620, einem Aktualisierungsinformationsakquirierungsteil 630, einem Benutzergeheimschlüsselaktualisierungsteil 640 und einem Benutzergeheimschlüsselausgabeteil 650 ausgestattet.
-
Der Benutzergeheimschlüsselakquirierungsteil 610 akquiriert den Benutzergeheimschlüssel skΓ, der durch die Schlüsselerzeugungseinrichtung 100 erzeugt ist.
-
Der Benutzergeheimschlüsselspeicherteil 620 ist eine Speichereinrichtung zum Speichern des Benutzergeheimschlüssels skΓ, der durch den Benutzergeheimschlüsselakquirierungsteil 610 akquiriert ist.
-
Der Aktualisierungsinformationsakquirierungsteil 630 akquiriert die Aktualisierungsinformationen upk, die durch die Hauptschlüsselaktualisierungseinrichtung 400 erzeugt sind.
-
Der Benutzergeheimschlüsselaktualisierungsteil 640 aktualisiert ein Schlüsselelement, das im Benutzergeheimschlüssel skΓ enthalten ist, mit den Aktualisierungsinformationen upk, um den neuen Benutzergeheimschlüssel skΓ ' zu erzeugen. Insbesondere aktualisiert die Benutzergeheimschlüsselaktua lisierungseinrichtung 600 das im Benutzergeheimschlüssel skΓ enthaltene Schlüsselelement mit den Aktualisierungsinformationen, um den neuen Benutzergeheimschlüssel skΓ' zu erzeugen.
-
Der Benutzergeheimschlüsselaktualisierungsteil 640 löscht den Voraktualisierungsbenutzergeheimschlüssel skΓ, der im Benutzergeheimschlüsselspeicherteil 620 gespeichert ist, und speichert den erzeugten neuen Benutzergeheimschlüssel skΓ' als den Benutzergeheimschlüssel skΓ.
-
Der Benutzergeheimschlüsselausgabeteil 650 gibt den Benutzergeheimschlüssel skΓ, der im Benutzergeheimschlüsselspeicherteil 620 gespeichert ist, an die Entschlüsselungseinrichtung 300 im Geheimen aus, wenn der Benutzergeheimschlüsselakquirierungsteil 610 den Benutzergeheimschlüssel skΓ akquiriert, und wenn der Benutzergeheimschlüsselaktualisierungsteil 640 den neuen Benutzergeheimschlüssel skΓ' erzeugt.
-
Beschreibung der Operation
-
12 ist ein Flussdiagramm des Setup-Algorithmus gemäß Ausführungsform 1.
-
Der Setup-Algorithmus wird durch die Schlüsselerzeugungseinrichtung 100 ausgeführt.
-
S101: Informationsakquirierungsprozess
-
Der Informationsakquirierungsteil 110 akquiriert das Attributformat n→ := (d; n1, ..., nd) und den Sicherheitsparameter λ, der durch den Administrator oder dergleichen des kryptografischen Systems 10 unter Verwendung der Eingabeeinrichtung eingegeben wird.
-
S102: Basiserzeugungsprozess
-
Der Hauptschlüsselerzeugungsteil 120 nimmt als Eingabe das Attributformat n→ und den Sicherheitsparameter λ, die in Schritt S101 akquiriert sind, und berechnet die Formel 113, um einen Parameter paramn von Doppelverknüpfungsvektorräumen, Basen Bt und B*t für jede ganze Zahl t von t = 0, ..., d und einen Wert gT zu erzeugen.
-
-
-
In Formel 113 ist Gbpg eine Funktion, die bilineare Verknüpfungsgruppen erzeugt und Gdpvs ist eine Funktion, die Doppelverknüpfungsvektorräume erzeugt.
-
S103: Erzeugungsprozess des öffentlichen Schlüssels
-
Der Hauptschlüsselerzeugungsteil 120 erzeugt eine Subbasis B^0 von der Basis B0, die in Schritt S102 erzeugt ist, und eine Subbasis B^t für jede ganze Zahl t von t = 1, ..., d, wie in Formel 114 gezeigt.
-
-
Der Hauptschlüsselerzeugungsteil 120 führt die Subbasis B^0 und die Subbasis B^t des Sicherheitsparameters λ, die in S101 eingegeben sind, und den paramn, erzeugt in S102, zusammen, und behandelt das Ergebnis als den öffentlichen Hauptschlüssel mpk. Für jede ganze Zahl t von t = 1, ..., d, enthält der öffentliche Hauptschlüssel mpk die Subbasis B^t von der Basis Bt, die durch die Transformationsmatrix X aus einer kanonischen Basis A transformiert ist.
-
S104: Erzeugungsprozess des Geheimschlüssels
-
Der Hauptschlüsselerzeugungsteil 120 erzeugt eine Subbasis B^*0 von einer Basis B*0, die in Schritt S102 erzeugt ist, und eine Subbasis B^*t für jede ganze Zahlt von 1 = 1, ..., d, wie in Formel 115 angegeben.
-
[Formel 115]
-
- (for = für)
-
B*0 := (b * / 0,1, b * / 0,2, b * / 0,4),
-
-
Der Hauptschlüsselerzeugungsteil 120 behandelt die Subbasis B^*0 und die Subbasis B^*t als den geheimen Hauptschlüssel msk bildend. Der geheime Hauptschlüssel msk enthält nämlich die Subbasis B^*t der Basis B*t, die durch eine Transformationsmatrix (XT)–1, die aus der Transformationsmatrix X erzeugt ist, aus der Basis Bt für jede ganze Zahl t von t = 1, ..., d transformiert ist.
-
S105: Schlüsselausgabeprozess
-
Der Schlüsselausgabeteil 140 gibt den in Schritt S103 erzeugten öffentlichen Hauptschlüssel mpk an den Veröffentlichungsserver oder dergleichen aus, um den öffentlichen Hauptschlüssel zu veröffentlichen. Der Schlüsselausgabeteil 140 gibt auch den geheimen Hauptschlüssel msk an die Hauptschlüsselaktualisierungseinrichtung 400 im Geheimen in Antwort auf die Anforderung von der Hauptschlüsselaktualisierungseinrichtung 400 aus.
-
13 ist ein Flussdiagramm des KG-Algorithmus gemäß Ausführungsform 1. Der KG-Algorithmus wird durch die Schlüsselerzeugungseinrichtung 100 ausgeführt.
-
S201: Informationsakquirierungsprozess
-
Der Informationsakquierierungsteil 110 akquiriert die Benutzerattributgruppe Γ, die vom Administrator oder dergleichen des kryptografischen Systems 10 unter Verwendung der Eingabeeinrichtung eingegeben ist.
-
Die Attributgruppe Γ ist ein Tupel (t, x→ t) des Identifikators t und des Vektors x→ t. Der Identifikator t entspricht der Attributkategorie. Der Attributwert der Attributkategorie entsprechend des Identifikators t ist im Vektor x→ t festgelegt.
-
S202: Zufallszahlerzeugungsprozess
-
Der Benutzergeheimschlüsselerzeugungsteil 130 erzeugt Zufallszahlen, wie in Formel 116 angegeben.
-
-
S203: Schlüsselelementerzeugungsprozess
-
Auf Grundlage der Attributgruppe Γ, die in S201 akquiriert ist, und der in S202 erzeugten Zufallszahlen erzeugt der Benutzergeheimschlüsselerzeugungsteil 130 das Schlüsselelement k*0 und das Schlüsselelement K*t, welches für jeden Identifikator t ist, der in der Attributgruppe Γ enthalten ist, wie in Formel 117 angegeben.
-
-
Wie in Formel 117 angegeben, ist das Schlüsselelement k*t für t = 0 und für den in der Attributgruppe Γ enthaltenen Identifikator t ein Vektor über der Basis B*t.
-
S204: Schlüsselausgebeprozess
-
Der Schlüsselausgabeteil 140 gibt den Benutzergeheimschlüssel skΓ, der die Attributgruppe Γ enthält, die in S201 akquiriert ist, und das in S203 erzeugte Schlüsselelement k*0 und das Schlüsselelement K*t an die Benutzergeheimschlüsselaktualisierungseinrichtung 600 im Geheimen aus, wobei das Schlüsselelement k*t für jeden Identifikator t ist, der in der Attributgruppe Γ enthalten ist.
-
14 ist ein Flussdiagramm des Enc-Algorithmus gemäß Ausführungsform 1, Der Enc-Algorithmus wird durch die Verschlüsselungseinrichtung 200 ausgeführt.
-
S301: Informationsakquirierungsprozess
-
Der Informationsakquirierungsteil 210 akquiriert den öffentlichen Hauptschlüssel mpk, der durch die Schlüsselerzeugungseinrichtung 100 erzeugt ist, und die Zugriffsstruktur S := (M, ρ) und die Nachricht m, die vom Benutzer der Verschlüsselungseinrichtung 200 unter Verwendung der Eingabeeinrichtung eingegeben ist.
-
In der Zugriffsstruktur S wurde ein in Chiffretext-cts-entschlüsselbarer Bereich festgelegt.
-
S302: Dispersionswerterzeugungsprozess
-
Der Chiffretexterzeugungsteil 220 erzeugt den Geheimwert s0 und die Dispersionswerte s→T, wie in Formel 118 angegeben.
-
-
S303: Zufallszahlerzeugungsprozess
-
Der Chiffretexterzeugungsteil 220 erzeugt Zufallszahlen, wie in Formel 110 angegeben.
-
-
S304: Chiffreelementerzeugungsprozess
-
Der Chiffretexterzeugungsteil 220 erzeugt das Chiffreelement ci für jede ganze Zahl i von i = 0, ..., L, d + 1, wie in Formel 120 angegeben.
-
-
-
Wie in Formel 120 angegeben, ist das Chiffreelement ci für jede ganze Zahl i von i = 0, ..., L ein Vektor über der Basis B.
-
S305: Chiffretextausgabeprozess
-
Der Chiffretextausgabeteil 230 gibt den Chiffretext cts, der die Zugriffstruktur S enthält, die in S301 akquiriert ist, und das in S304 erzeugte Chiffreelement ci für jede ganze Zahl i von i = 0, ..., d – 1 an die Chiffretextaktualisierungseinrichtung 500 aus.
-
15 ist ein Flussdiagramm des Dec-Algorithmus gemäß Ausführungsform 1.
-
Der Dec-Algorithmus wird durch die Entschlüsselungseinrichtung 300 ausgeführt.
-
S401: Informationsakquirierungsprozess
-
Der Informationsakquirierungsteil 310 gibt eine Anforderung an die Chiffretextaktualisierungseinrichtung 500 aus, um den Chiffretext cts von der Chiffretextaktualisierungseinrichtung 500 zu akquirieren. Der Informationsakquirierungsteil 310 akquiriert den Benutzergeheimschlüssel skΓ von der Benutzergeheimschlüsselaktualisierungseinrichtung 600. Der Informationsakquirierungsteil 310 akquiriert den von der Schlüsselerzeugungseinrichtung 100 erzeugten öffentlichen Hauptschlüssel mpk.
-
Der Chiffretextbestimmungsteil 320 bestimmt, ob oder ob nicht die Zugriffsstruktur S, die in dem in Schritt S301 akquirierten Chiffretext cts enthalten ist, die Attributgruppe Γ akzeptiert, die in dem in Schritt S401 akquirierten Benutzergeheimschlüssel skΓ enthalten ist.
-
Wenn bestimmt wird, dass die Zugriffsstruktur S die Attributgruppe Γ akzeptiert, führt der Chiffretextbestimmungsteil 320 den Prozess weiter zu S403. Wenn bestimmt wird, dass die Zugriffsstruktur S die Attributgruppe Γ nicht akzeptiert, führt der Chiffretextbestimmungsteil 320 den Prozess weiter zu S406.
-
S403: Berechnungsprozess des komplementären Koeffizienten
-
Der Entschlüsselungsteil
330 berechnet die Gruppe I der Reihenzahlen und einen komplementären Koeffizienten {α
i}
i∈I, der Formel 121 genügt. [Formel 121]
wobei Mi die i-te Reihe von M ist,
und
-
S404: Sitzungsschlüsselberechnungsprozess
-
Der Entschlüsselungsteil 330 berechnet Formel 122 auf Grundlage des Chiffretexts cts und des in Schritt S401 akquirierten Benutzergeheimschlüssels skΓ und der in Schritt S403 akquirierten berechneten Gruppe I und des komplementären Koeffizienten {αi}i∊I, um den Sitzungsschlüssel K zu berechnen.
-
-
S405: Nachrichtenberechnungsprozess
-
Der Entschlüsselungsteil 330 berechnet die Nachricht m durch Dividieren eines Chiffreelements Cd+1, das im Chiffretext cts enthalten ist, durch den in S404 berechneten Sitzungsschlüssel K.
-
S406: Ergebnisausgabeprozess
-
Wenn in S402 bestimmt wird, dass die Zugriffsstruktur S die Attributgruppe Γ akzeptiert, gibt der Ergebnisausgabeteil 340 die in S405 berechnete Nachricht m aus. Wenn in S402 bestimmt wird, dass die Zugriffsstruktur S die Attributgruppe Γ nicht akzeptiert, gibt der Ergebnisausgabeteil 340 das Symbol ⊥ aus, das einen Entschlüsselungsfehler repräsentiert.
-
16 ist ein Flussdiagramm des ApdMKey-Algorithmus gemäß Ausführungsform 1.
-
Der ApdMKey-Algorithmus wird durch die Hauptschlüsselaktualisierungseinrichtung 400 ausgeführt.
-
S501: Hauptschlüsselakquirierungsprozess
-
Der Hauptschlüsselakquirierungsteil 410 akquiriert den derzeit angewandten öffentlichen Hauptschlüssel mpk und den geheimen Hauptschlüssel msk, die durch die Schlüsselerzeugungseinrichtung 100 erzeugt sind.
-
S502: Aktualisierungsinformationserzeugungsprozess
-
Für jede ganze Zahl t von t = 0, ..., d, erzeugt der Aktualisierungsinformationserzeugungsteil 420 eine Transformationsmatrix Wt als die Aktualisierungsinformationen upk, wie in Formel 123 gezeigt.
-
-
S503: Aktualisierungsprozess des öffentlichen Hauptschlüssels Für jede ganze Zahl t von t = 0, ..., d, multipliziert der Hauptschlüsselaktualisierungsteil 430 die Subbasis B^t des in S501 akquirierten öffentlichen Hauptschlüssels mpk mit der Transformationsmatrix Wt der in S502 erzeugten Aktualisierungsinformationen upk, um die Subbasis B^t von der Basis Bt zu aktualisieren, um dadurch eine neue Subbasis B^'t, wie in Formel 124 gezeigt, zu erzeugen.
-
[Formel 124]
-
- (for = für)
-
B ^ ' / t := B ^tWt for t = 0, ..., d
-
Der Hauptschlüsselaktualisierungsteil 430 ersetzt die neue Subbasis B^'t mit der Subbasis B^t des in S501 akquirierten geheimen Hauptschlüssels mpk, um den neuen öffentlichen Hauptschlüssel mpk' zu erzeugen.
-
S504: Aktualisierungsprozess des geheimen Hauptschlüssels
-
Für jede ganze Zahl t von t = 0, ..., d, multipliziert der Hauptschlüsselaktualisierungsteil 430 die Subbasis B*^t des in S501 akquirierten geheimen Hauptschlüssels mit einer Transformationsmatrix (Wt T)–1 , die aus der Transformationsmatrix Wt der in S502 erzeugten Aktualisierungsinformationen upk transformiert ist, um die Subbasis B*^t von der Basis B*t zu aktualisieren, um dadurch eine neue Subbasis B*^'t, wie in Formel 125 gezeigt, zu erzeugen.
-
[Formel 125]
-
- (for = für)
-
B ^ '* / t := B ^ * / t(Wt T)–1 for t = 0, ..., d
-
Der Hauptschlüsselaktualisierungsteil 430 ersetzt die neue Subbasis B*^'t mit der Subbasis B*^t des in S501 akquirierten öffentlichen Hauptschlüssels mpk, um den neuen geheimen Hauptschlüssel msk' zu erzeugen.
-
S505: Aktualisierungsinformationsausgabeprozess
-
Der Aktualisierungsinformationsausgabeteil 440 gibt den in S503 erzeugten neuen öffentlichen Hauptschlüssel mpk' und den in S504 erzeugten neuen geheimen Hauptschlüssel msk' an die Schlüsselerzeugungseinrichtung 100 im Geheimen aus. Der Aktualisierungsinformationsausgabeteil 440 gibt auch die in S502 erzeugten Aktualisierungsinformationen upk an die Chiffretextaktualisierungseinrichtung 500 und die Benutzergeheimschlüsselaktualisierungseinrichtung 600 im Geheimen aus.
-
17 ist ein Flussdiagramm des ApdCT-Algorithmus gemäß Ausführungsform 1.
-
Der ApdCT-Algorithmus wird durch die Chiffretextaktualisierungseinrichtung 500 ausgeführt.
-
S601: Chiffretextakquirierungsprozess
-
Der Chiffretextakquirierungsteil 510 akquiriert den von der Verschlüsselungseinrichtung 200 erzeugten Chiffretext cts. Der Chiffretextakquirierungsteil 510 speichert den akquirierten Chiffretext cts in dem Chiffretextspeicherteil 520.
-
S602: Aktualisierungsinformationsakquirierungsprozess
-
Der Aktualisierungsinformationsakquirierungsteil 530 akquiriert die durch die Hauptschlüsselaktualisierungseinrichtung 400 erzeugten Aktualisierungsinformationen upk.
-
S603: Chiffretextaktualisierungsprozess
-
Für jede ganze Zahl i von i = 0, ..., L, multipliziert der Chiffretextaktualisierungsteil 540 das Chiffreelement ci, das im Chiffretext cts enthalten ist, der im Chiffretextspeicherteil 520 gespeichert ist, mit der Transformationsmatrix Wt der in S602 akquirierten Aktualisierungsinformationen, um ein neues Chiffreelement ci', wie in Formel 126 gezeigt, zu erzeugen.
-
[Formel 126]
-
- (or = oder)
-
c ' / 0 := c0W0,
-
-
Der Chiffretextaktualisierungsteil 540 löscht den voraktualisierten Chiffretext cts, der im Chiffretextspeicherteil 520 gespeichert ist, und speichert den neuen Chiffretext cts', in welchem das Chiffreelement ci durch das neue Chiffreelement ci' ersetzt ist, als den Chiffretext cts im Chiffretextspeicherteil 520.
-
S604: Chiffretextausgabeprozess
-
In Antwort auf die Anforderung von der Entschlüsselungseinrichtung 300 gibt der Chiffretextausgabeteil 550 den im Chiffretextspeicherteil 520 gespeicherten Chiffretext cts an die Entschlüsselungseinrichtung 300 aus.
-
18 ist ein Flussdiagramm des ApdSK-Algorithmus gemäß Ausführungsform 1.
-
Der ApdSKk-Algorithmus wird durch die Benutzergeheimschlüsselaktualisierungseinrichtung 600 ausgeführt.
-
S701: Benutzergeheimschlüsselakquirierungsprozess
-
Der Benutzergeheimschlüsselakquirierungsteil 610 akquiriert den durch die Schlüsselerzeugungseinrichtung 100 erzeugten Benutzergeheimschlüssel skΓ. Der Benutzergeheimschlüsselakquirierungsteil 610 speichert den akquirierten Benutzergeheimschlüssel skΓ im Benutzergeheimschlüsselspeicherteil 620.
-
S702: Aktualisierungsinformationsakquirierungsprozess
-
Der Aktualisierungsinformationsakquirierungsteil 630 akquiriert die durch die Hauptschlüsselaktualisierungseinrichtung 400 erzeugten Aktualisierungsinformationen upk.
-
S703: Benutzergeheimschlüsselaktualisierungsprozess
-
Für t = 0 und jeden in der Attributgruppe Tenthaltenen Identifikator t multipliziert der Benutzergeheimschlüsselaktualisierungsteil 640 das Schlüsselelement k*t, das im Benutzergeheimschlüssel skΓ enthalten ist, der im Benutzergeheimschlüsselspeicherteil 620 gespeichert ist, mit der Transformationsmatrix (Wt T)–1 die aus der Transformationsmatrix Wt der in S702 akquirierten Aktualisierungsinformationen transformiert ist, um das Schlüsselelement k*t' zu aktualisieren, um dadurch ein neues Schlüsselelement k*t, wie in Formel 127 gezeigt, zu erzeugen.
-
[Formel 127]
-
- (for = für)
-
k '* / 0 := k * / 0(W0 T)–1,
-
k '* / t := k * / t(Wt T)–1 for (t, x →t), ∈ Γ
-
Der Benutzergeheimschlüsselaktualisierungsteil 640 löscht den voraktualisierten Benutzergeheimschlüssel skΓ, der im Benutzergeheimschlüsselspeicherteil 620 gespeichert ist, und speichert den neuen Geheimschlüssel skΓ', in welchem das neue Schlüsselelement k*t' das Schlüsselelement k*t als den Benutzergeheimschlüssel skΓ ersetzt, im Benutzergeheimschlüsselspeicherteil 620.
-
S704: Benutzergeheimschlüsselausgabeprozess
-
Der Benutzergeheimschlüsselausgabeteil 650 gibt den Benutzergeheimschlüssel skΓ, der im Benutzergeheimschlüsselspeicherteil 620 gespeichert ist, an die Entschlüsselungseinrichtung 300 aus.
-
Wirkung der Erfindung
-
Wie vorstehend erläutert, aktualisiert die Chiffretextaktualisierungseinrichtung 500 in dem kryptografischen System 10 gemäß Ausführungsform 1 den Chiffretext cts unter Verwendung der Aktualisierungsinformationen upk, die eingesetzt werden, wenn der öffentliche Hauptschlüssel mpk und der geheime Hauptschlüssel msk aktualisiert werden, so dass der Chiffretext cts den aktualisierten öffentlichen Hauptschlüssel mpk und den geheimen Hauptschlüssel msk bewerkstelligen kann.
-
Aus diesem Grund ist es in dem kryptografischen System 10 gemäß Ausführungsform 1, wenn der öffentliche Hauptschlüssel mpk und der geheime Hauptschlüssel msk aktualisiert werden, nicht notwendig, den Chiffretext cts temporär zu entschlüsseln und dann zu verschlüsseln. Somit besteht kein Informationsleckrisiko, dass sich aus dem temporären Entschlüsseln des Chiffretexts cts ergibt. Außerdem ist es nicht erforderlich, einen stark auslastenden Prozess zum temporären Entschlüsseln und dann Verschlüsseln des Chiffretexts Cts auszuführen.
-
In ähnlicher Weise aktualisiert die Benutzergeheimschlüsselaktualisierungseinrichtung 600 in dem kryptografischen System 10 gemäß Ausführungsform 1 den Benutzergeheimschlüssel skΓ unter Verwendung der Aktualisierungsinformationen upk, die eingesetzt werden, wenn der öffentliche Hauptschlüssel mpk und der geheime Hauptschlüssel msk aktualisiert werden, so dass der Benutzergeheimschlüssel skΓ den aktualisierten öffentlichen Hauptschlüssel mpk und den geheimen Hauptschlüssel msk bewerkstelligen kann.
-
Aus diesem Grund ist es in dem kryptografischen System 10 gemäß Ausführungsform 1, wenn der öffentliche Hauptschlüssel mpk und der geheime Hauptschlüssel msk aktualisiert werden, nicht notwendig, den Benutzergeheimschlüssel skΓ auf Grundlage des aktualisierten geheimen Hauptschlüssels msk neu zu erzeugen. Somit ist es nicht notwendig, einen stark auslastenden Prozess zum Erzeugen des Benutzergeheimschlüssels skΓ auszuführen.
-
In der vorstehenden Beschreibung sind die Schlüsselerzeugungseinrichtung 100, die Hauptschlüsselaktualisierungseinrichtung 400, die Chiffretextaktualisierungseinrichtung 500 und die Benutzergeheimschlüsselaktualisierungseinrichtung 600 unterschiedliche Einrichtungen. Dies bedeutet nicht zwangsläufig, dass die Schlüsselerzeugungseinrichtung 100, die Hauptschlüsselaktualisierungseinrichtung 400, die Chiffretextaktualisierungseinrichtung 500 und die Benutzergeheimschlüsselaktualisierungseinrichtung 600 in separaten Gehäusen untergebracht sein müssen. Zwei oder mehrere aus der Schlüsselerzeugungseinrichtung 100, Hauptschlüsselaktualisierungseinrichtung 400, Chiffretextaktualisierungseinrichtung 500 und der Benutzergeheimschlüsselaktualisierungseinrichtung 600 können in einem Gehäuse untergebracht sein, um eine Einrichtung zu bilden.
-
In der vorstehenden Beschreibung sind ein Verfahren zum Aktualisieren des öffentlichen Hauptschlüssels mpk, eines geheimen Hauptschlüssels msk, eines Chiffretexts cts und eines Benutzergeheimschlüssels skΓ in der funktionalen Verschlüsselung mit der Chiffretext-Strategie erläutert.
-
Das vorstehend erläuterte Aktualisierungsverfahren ist ein Verfahren zum Transformieren der Basen des öffentlichen Hauptschlüssels mpk, des geheimen Hauptschlüssels msk, des Chiffretexts cts und des Benutzergeheimschlüssels skΓ. Somit kann das vorstehend erläuterte Aktualisierungsverfahren zur funktionalen Verschlüsselung mit der Schlüsselstrategie angewendet werden, indem es nur formal verändert wird.
-
19 ist ein Diagramm zum Darstellen eines Beispiels einer Hardwarekonfiguration von jeder der Schlüsselerzeugungseinrichtung 100, Verschlüsselungseinrichtung 200, Entschlüsselungseinrichtung 300, Hauptschlüsselaktualisierungseinrichtung 400, Chiffretextaktualisierungseinrichtung 500 und der Benutzergeheimschlüsselaktualisierungseinrichtung 600, gezeigt in Ausführungsform 1.
-
Jede Einrichtung ist ein Computer. Ein Datenanzeigeprogramm kann konfiguriert sein, indem jedes Element von jeder Einrichtung als ein Programm implementiert ist.
-
Jede Einrichtung weist eine Hardwarekonfiguration auf, in welcher eine Recheneinrichtung 901, eine externe Speichereinrichtung 902, eine Hauptspeichereinrichtung 903, eine Kommunikationseinrichtung 904 und eine Eingabe-/Ausgabeeinrichtung 905 mit einem Bus verbunden sind.
-
Die Recheneinrichtung 901 ist eine CPU (Central Processing Unit = Zentrale Recheneinheit) oder dergleichen, welche ein Programm ausführt. Die externe Speichereinrichtung 902 ist zum Beispiel ein ROM (Read-Only-Memory), ein Flashspeicher, eine Festplatte oder dergleichen. Die Hauptspeichereinrichtung 903 ist zum Beispiel ein RAM (Random Access Memory) oder dergleichen. Die Kommunikationseinrichtung 904 ist zum Beispiel eine Kommunikationstafel oder dergleichen. Die Eingabe-/Ausgabeeinrichtung 905 ist zum Beispiel eine Maus, eine Tastatur, eine Anzeigeeinrichtung oder dergleichen.
-
Die Programme sind normalerweise in der externen Speichereinrichtung 902 gespeichert. Die Programme sind in die Hauptspeichereinrichtung 903 geladen und durch die Recheneinrichtung 901 ausgeführt.
-
Jedes Programm ist ein Programm, das eine Funktion implementiert, die als ein ”Teil” erläutert ist. Zudem speichert die externe Speichereinrichtung 902 auch ein Betriebssystem (OS). Das OS wird zumindest teilweise in die Hauptspeichereinrichtung 903 geladen. Die Recheneinrichtung 901 führt das Programm aus, während das OS ausgeführt wird.
-
In der Beschreibung von Ausführungsform 1 werden Informationen und so weiter, die als durch ein ”Teil” akquiriert, erzeugt, ausgegeben und so weiter erläutert sind, als Daten in der Hauptspeichereinrichtung 903 gespeichert.
-
Die Konfiguration gemäß 19 zeigt nur ein Beispiel der Hardwarekonfiguration von jeder Einrichtung. Die Hardwarekonfiguration von jeder Einrichtung ist nicht auf die in 19 gezeigte Konfiguration beschränkt. Jede Einrichtung kann eine andere Hardwarekonfiguration aufweisen.
-
Bezugszeichenliste
-
- 10: kryptografisches System; 100: Schlüsselerzeugungseinrichtung; 110: Informationsakquirierungsteil; 120: Hauptschlüsselerzeugungsteil; 130: Benutzergeheimschlüsselerzeugungsteil; 140: Schlüsselausgabeteil; 200: Verschlüsselungseinrichtung; 210: Informationsakquirierungsteil; 220: Chiffretexterzeugungsteil; 230: Chiffretextausgabeteil; 300: Entschlüsselungseinrichtung; 310: Informationsakquirierungsteil; 320: Chiffretextbestimmungsteil; 330: Entschlüsselungsteil; 340: Ergebnisausgabeteil; 400: Hauptschlüsselaktualisierungseinrichtung; 410: Hauptschlüsselakquirierungseinrichtung; 420: Aktualisierungsinformationserzeugungsteil; 430: Hauptschlüsselaktualisierungsteil; 440: Aktualisierungsinformationsausgabeteil; 500: Chiffretextaktualisierungseinrichtung; 510: Chiffretextakquirierungsteil; 520: Chiffretextakquirierungsteil; 520: Chiffretextspeicherteil; 530: Aktualisierungsinformationsakquirierungsteil; 540: Chiffretextaktualisierungsteil; 550: Chiffretextausgabeteil; 600: Benutzergeheimschlüsselaktualisierungseinrichtung; 610: Benutzergeheimschlüsselakquirierungsteil; 620: Benutzergeheimschlüsselspeicherteil; 630: Aktualisierungsinformationsakquirierungsteil; 640: Benutzergeheimschlüsselaktualisierungsteil; 650: Benutzergeheimschlüsselausgabeteil; A: kanonische Basis; B, B*: Basis; B^, B*^: Subbasis; msk: geheimer Hauptschlüssel; mpk: öffentlicher Hauptschlüssel; Γ: Attributgruppe; S: Zugriffsstruktur; m: Nachricht; skΓ: Benutzergeheimschlüssel; skΓ': neuer Benutzergeheimschlüssel; cts: Chiffretext; cts': neuer Chiffretext; upk: Aktualisierungsinformationen; t: Identifikator; k*t: Schlüsselelement; X, W: Transformationsmatrix