Clever Geek Handbook
📜 ⬆️ ⬇️

MulBasicIdent

MulBasicIdent is a basic multi -line encryption algorithm based on identification data . [1] This algorithm is a generalization of the common key generation method using bilinear pairings ( BasicIdent ) proposed by Dan Boneh and Matthew C. Franklin in 2001. [2]

Protocol Settings

The protocol uses the following parameters and groups :

  • n{\ displaystyle n} n - the number of parties involved in the generation of the common key;
  • IDi{\ displaystyle ID_ {i}} ID_{i} - unique binary number (identifier) ​​of user with numberi {\ displaystyle i} i ;
  • Gone{\ displaystyle G_ {1}} G_{1} - additive cyclic group ;
  • G2{\ displaystyle G_ {2}} G_{2} - multiplicative cyclic group.

GroupsGone {\ displaystyle G_ {1}} G_{1} andG2 {\ displaystyle G_ {2}} G_{2} are used to further construct a multi-line mapping.

Algorithm Description

This algorithm solves the problem of encrypting a message forn {\ displaystyle n} n subscribers with idsIDone,...,IDn {\ displaystyle ID_ {1}, \ ldots, ID_ {n}} {\displaystyle ID_{1},\ldots ,ID_{n}} . [1] The protocol consists of the initialization stages, obtaining the private key , encryption and decryption. Let bek∈Z {\ displaystyle k \ in \ mathbb {Z}} {\displaystyle k\in \mathbb {Z} } - the persistence parameter accepted by the algorithm at the initialization stage.

Initialization

  1. Basedk {\ displaystyle k} k The private key generation center (PKG) generates a simple order.q {\ displaystyle q} q groupsGone {\ displaystyle G_ {1}} G_{1} andG2 {\ displaystyle G_ {2}} G_{2} ,2n {\ displaystyle 2n} 2n multi-line mappingμ:Gone×Gone×...×Gone⏟2n→G2 {\ displaystyle \ mu \ colon \ underbrace {G_ {1} \ times G_ {1} \ times \ ldots \ times G_ {1}} _ {2n} \ to G_ {2}} {\displaystyle \mu \colon \underbrace {G_{1}\times G_{1}\times \ldots \times G_{1}} _{2n}\to G_{2}} and an arbitrary element of the groupP∈Gone {\ displaystyle P \ in G_ {1}} {\displaystyle P\in G_{1}} .
  2. PKG randomly selects itemssone,...,sn∈Zq∗ {\ displaystyle s_ {1}, \ ldots, s_ {n} \ in \ mathbb {Z} _ {q} ^ {*}} {\displaystyle s_{1},\ldots ,s_{n}\in \mathbb {Z} _{q}^{*}} and computes a set of public keysPpubone=soneP,...,Ppubn=snP {\ displaystyle P_ {pub_ {1}} = s_ {1} P, \ ldots, P_ {pub_ {n}} = s_ {n} P} {\displaystyle P_{pub_{1}}=s_{1}P,\ldots ,P_{pub_{n}}=s_{n}P} .
  3. PKG selects cryptographic hash functionsHone:{0,one}∗→Gone∗ {\ displaystyle H_ {1} \ colon \ {0,1 \} ^ {*} \ to G_ {1} ^ {*}} {\displaystyle H_{1}\colon \{0,1\}^{*}\to G_{1}^{*}} andH2:G2→{0,one}l {\ displaystyle H_ {2} \ colon G_ {2} \ to \ {0,1 \} ^ {l}} {\displaystyle H_{2}\colon G_{2}\to \{0,1\}^{l}} for somel∈Z {\ displaystyle l \ in \ mathbb {Z}} {\displaystyle l\in \mathbb {Z} } where{0,one}∗ {\ displaystyle \ {0,1 \} ^ {*}} {\displaystyle \{0,1\}^{*}} - the set of binary vectors of arbitrary length, and{0,one}l {\ displaystyle \ {0,1 \} ^ {l}} {\displaystyle \{0,1\}^{l}} - set of binary length vectorsl {\ displaystyle l} l .

In this algorithm, message spaces and ciphertexts are setsθ={0,one}l {\ displaystyle \ vartheta = \ {0,1 \} ^ {l}}   andC=Gone∗×{0,one}l {\ displaystyle C = G_ {1} ^ {*} \ times \ {0,1 \} ^ {l}}   accordingly, the elementssone,...,sn∈Zq∗ {\ displaystyle s_ {1}, \ ldots, s_ {n} \ in \ mathbb {Z} _ {q} ^ {*}}   are the master keys of subscribers, and the system parameters are set⟨Gone,G2,μ,l,P,Ppubone,...,Ppubn,Hone,H2⟩ {\ displaystyle \ langle G_ {1}, G_ {2}, \ mu, l, P, P_ {pub_ {1}}, \ ldots, P_ {pub_ {n}}, H_ {1}, H_ {2} \ rangle}   .

Getting the private key

For subscriber IDsIDone,...,IDn∈{0,one}∗ {\ displaystyle ID_ {1}, \ ldots, ID_ {n} \ in \ {0,1 \} ^ {*}}   :

  1. Center calculatesQIDone=Hone(IDone)∈Gone∗,...,QIDn=Hone(IDn)∈Gone∗ {\ displaystyle Q_ {ID_ {1}} = H_ {1} (ID_ {1}) \ in G_ {1} ^ {*}, \ ldots, Q_ {ID_ {n}} = H_ {1} (ID_ { n}) \ in G_ {1} ^ {*}}   .
  2. Center calculates private keysdIDone=sone Q I D one , ... , d I D n = s n Q I D n {\ displaystyle d_ {ID_ {1}} = s_ {1} Q_ {ID_ {1}}, \ ldots, d_ {ID_ {n}} = s_ {n} Q_ {ID_ {n}}}   wheresone,...,sn {\ displaystyle s_ {1}, \ ldots, s_ {n}}   - master keys.

Encryption

To encrypt the messageM {\ displaystyle M}   using idsIDone,...,IDn∈{0,one}∗: {\ displaystyle ID_ {1}, \ ldots, ID_ {n} \ in \ {0,1 \} ^ {*}:}   the subscriber performs the following operations:

  1. CalculatesQIDone=Hone(IDone)∈Gone∗,...,QIDn=Hone(IDn)∈Gone∗ {\ displaystyle Q_ {ID_ {1}} = H_ {1} (ID_ {1}) \ in G_ {1} ^ {*}, \ ldots, Q_ {ID_ {n}} = H_ {1} (ID_ { n}) \ in G_ {1} ^ {*}}   .
  2. Selects a random item.r∈Zq∗ {\ displaystyle r \ in \ mathbb {Z} _ {q} ^ {*}}   .
  3. Calculates CiphertextC=⟨rP,M⊕H2(gr)⟩ {\ displaystyle C = \ langle rP, M \ oplus H_ {2} (g ^ {r}) \ rangle}   whereg=μ(QIDone,...,QIDn,Ppubone,...,Ppubn)∈G2∗ {\ displaystyle g = \ mu (Q_ {ID_ {1}}, \ ldots, Q_ {ID_ {n}}, P_ {pub_ {1}}, \ ldots, P_ {pub_ {n}}) \ in G_ { 2} ^ {*}}   .

Decryption

To decrypt ciphertextC=⟨U,V⟩ {\ displaystyle C = \ langle U, V \ rangle}   caller IDIDi {\ displaystyle ID_ {i}}   using the private keydIDi∈Gone∗ {\ displaystyle d_ {ID_ {i}} \ in G_ {1} ^ {*}}   the plaintext is calculated as follows:

V⊕H2(μ(QIDone,...,QIDi-one,dIDi,QIDi+one,...,QIDn,Ppubone,...,Ppubi-one,U,Ppubi+one,...,Ppubn))=M{\ displaystyle V \ oplus H_ {2} (\ mu (Q_ {ID_ {1}}, \ ldots, Q_ {ID_ {i-1}}, d_ {ID_ {i}}, Q_ {ID_ {i + 1 }}, \ ldots, Q_ {ID_ {n}}, P_ {pub_ {1}}, \ ldots, P_ {pub_ {i-1}}, U, P_ {pub_ {i + 1}}, \ ldots, P_ {pub_ {n}})) = M}  

The correctness of the scheme

The correctness of the algorithm is confirmed by the following equality, the meaning of which is reduced to the substitution in the function argumentH2 {\ displaystyle H_ {2}}   at the stage of decrypting expressions for a private keydIDi=siQIDi {\ displaystyle d_ {ID_ {i}} = s_ {i} Q_ {ID_ {i}}}   and itemU=rP {\ displaystyle U = rP}   :

μ(QIDone,...,QIDi-one,dIDi,QIDi+one,...,QIDn,Ppubone,...,Ppubi-one,U,Ppubi+one,...,Ppubn)=μ(QIDone,...,QIDn,Ppubone,...,P,...,Ppubn)sir=μ(QIDone,...,QIDn,Ppubone,...,Ppubn)r=gr{\ displaystyle {\ begin {aligned} \ mu (Q_ {ID_ {1}}, \ ldots, Q_ {ID_ {i-1}}, d_ {ID_ {i}}, Q_ {ID_ {i + 1}} , \ ldots, Q_ {ID_ {n}}, P_ {pub_ {1}}, \ ldots, P_ {pub_ {i-1}}, U, P_ {pub_ {i + 1}}, \ ldots, P_ { pub_ {n}}) \\ = \ mu (Q_ {ID_ {1}}, \ ldots, Q_ {ID_ {n}}, P_ {pub_ {1}}, \ ldots, P, \ ldots, P_ {pub_ {n}}) ^ {s_ {i} r} \\ = \ mu (Q_ {ID_ {1}}, \ ldots, Q_ {ID_ {n}}, P_ {pub_ {1}}, \ ldots, P_ {pub_ {n}}) ^ {r} = g ^ {r} \\\ end {aligned}}}  

BecauseV=M⊕H2(gr) {\ displaystyle V = M \ oplus H_ {2} (g ^ {r})}   then at the decryption stage we getM⊕H2(gr)⊕H2(gr)=M {\ displaystyle M \ oplus H_ {2} (g ^ {r}) \ oplus H_ {2} (g ^ {r}) = M}   .

Cryptographic Strength

The protocol is persistent in an adaptive attack with a choice of plaintext and assuming the complexity of the multilinear Diffie-Hellman problem ( MDH ). [one]

Protocol Attack Description

The security models of broadcast encryption are based on games played by an attacker (an attacking algorithm) with a challenger (challenger).

The game of an attacker conducting an attack on the broadcast encryption algorithm consists of an initialization procedure, 2 stages of conducting requests, setting a task and outputting the result.

Initialization

Requester accepts persistencek∈N {\ displaystyle k \ in \ mathbb {N}}   , starts the algorithm initialization procedure, sends the parameters to the attacking algorithm.params {\ displaystyle params}   and keeps master keysmaster-keys {\ displaystyle master-keys}   in secret. IdentifiedGone {\ displaystyle G_ {1}}   - additive cyclic group of simple orderq {\ displaystyle q}   forming elementP {\ displaystyle P}   andG2 {\ displaystyle G_ {2}}   - multiplicative cyclic group of simple orderq {\ displaystyle q}   .

Stage 1

Attacking algorithm generates queriesqone,...,qm {\ displaystyle q_ {1}, \ ldots, q_ {m}}   and sends them to the requestor, whereqi {\ displaystyle q_ {i}}   is an:

  1. Request Private Key⟨IDi′⟩ {\ displaystyle \ langle ID_ {i} '\ rangle}   . In this case, the requestor runs the procedure for generating the private key.di′∈Gone {\ displaystyle d_ {i} '\ in G_ {1}}   corresponding to the public key⟨IDi′⟩ {\ displaystyle \ langle ID_ {i} '\ rangle}   and transmitsdi′∈Gone {\ displaystyle d_ {i} '\ in G_ {1}}   attacking algorithm.
  2. Request decryption⟨IDi′,Ci′⟩ {\ displaystyle \ langle ID_ {i} ', C_ {i}' \ rangle}   . In this case, the requestor runs the procedure for generating the private key.di′∈Gone {\ displaystyle d_ {i} '\ in G_ {1}}   corresponding to the public key⟨IDi′⟩ {\ displaystyle \ langle ID_ {i} '\ rangle}   . Next, it starts the ciphertext decryption procedure.Ci′ {\ displaystyle C_ {i} '}   viadi′ {\ displaystyle d_ {i} '}   and passes the resulting plaintext to the attacking algorithm.

These requests are carried out adaptively, i. every requestqi {\ displaystyle q_ {i}}   may depend on responses to requestsqone,...,qi-one {\ displaystyle q_ {1}, \ ldots, q_ {i-1}}   .

After completing stage 1, the attacking algorithm generates 2 open textsM0,Mone∈θ {\ displaystyle M_ {0}, M_ {1} \ in \ vartheta}   equal length and set of caller IDsIDone,...,IDn {\ displaystyle ID_ {1}, \ ldots, ID_ {n}}   for which he conducts an attack whereθ {\ displaystyle \ vartheta}   - A set of open texts of arbitrary length. The only limitation is the fact thatIDi≠IDj′ {\ displaystyle ID_ {i} \ neq ID_ {j} '}   ati=one,...,n,j=one,...,m {\ displaystyle i = 1, \ ldots, n, j = 1, \ ldots, m}   during phase 1.

Problem Statement

Requestor randomly selects a bitb∈{0,one} {\ displaystyle b \ in \ {0,1 \}}   and sendsCb=Encrypt(params,IDone,...,IDn,Mb) {\ displaystyle C_ {b} = Encrypt (params, ID_ {1}, \ ldots, ID_ {n}, M_ {b})}   to the algorithm.

Stage 2

The attacking algorithm generates and sends additional requests to the requestor.qm+one,...,ql {\ displaystyle q_ {m + 1}, \ ldots, q_ {l}}   whereqi {\ displaystyle q_ {i}}   is an:

  1. Request Private Key⟨IDj′⟩ {\ displaystyle \ langle ID_ {j} '\ rangle}   whereIDi≠IDj′ {\ displaystyle ID_ {i} \ neq ID_ {j} '}   fori=one,...,n,j=m+one,...,l {\ displaystyle i = 1, \ ldots, n, j = m + 1, \ ldots, l}   . The interrogator responds in the same way as during stage 1.
  2. Request decryption⟨IDj′,Cj′⟩ {\ displaystyle \ langle ID_ {j} ', C_ {j}' \ rangle}   where⟨IDj′,Cj′⟩≠⟨IDi′,Ci′⟩ {\ displaystyle \ langle ID_ {j} ', C_ {j}' \ rangle \ neq \ langle ID_ {i} ', C_ {i}' \ rangle}   fori=one,...,n,j=m+one,...,l {\ displaystyle i = 1, \ ldots, n, j = m + 1, \ ldots, l}   . The interrogator responds in the same way as during stage 1.

These requests can be carried out adaptively, as during phase 1.

Result

Attacking algorithm returns a bitb′∈{0,one} {\ displaystyle b '\ in \ {0,1 \}}   and wins the game ifb=b′ {\ displaystyle b = b '}   .

Winnings of the attackerA {\ displaystyle A}   on the algorithmE {\ displaystyle E}   called the next function parameter of persistencek∈N {\ displaystyle k \ in \ mathbb {N}}   :AdvE,A(k)=| P r [ b = b ′ ] - one 2 | {\ displaystyle Adv_ {E, A} (k) = \ left | Pr [b = b '] - {\ frac {1} {2}} \ right |}   wherePr[b=b′] {\ displaystyle Pr [b = b ']}   - the probability of an event consisting in the coincidence of the values ​​of bitsb {\ displaystyle b}   andb′ {\ displaystyle b '}   .

Improve

Based on the MulBasicIdent algorithm using the Fujisaki-Okamoto method, a complete broadcast encryption algorithm was built based on the MulFullIdent identification data.

Notes

  1. ↑ 1 2 3 Kosolapov D. O. Construction of multi-sided multilinear algorithms in different security models: Diss .. Cand. Phys.-Mat. sciences. - M. , 2010.
  2. ↑ Boneh D. and Franklin M. Identity-based encryption from the Weil Pairing, Crypto'2001 // Springer-Verlag: Lecture Notes in Computer Science. - 2001.

Literature

  • Kosolapov D.O. Construction of multilateral multilinear algorithms in different security models. - 2010.
  • Kosolapov D.O., Kharin E.A., Goncharov S.M., Kornyushin P.N. Multilinear cryptosystems in asymmetric cryptography (Rus.) : An article in a journal is a scientific article. - Tomsk: Tomsk State University of Control Systems and Radioelectronics, 2008. - № 2-1 (18) . - pp . 51-53 . - ISSN 1818-0442 .
Source - https://ru.wikipedia.org/w/index.php?title=MulBasicIdent&oldid=96981743


More articles:

  • Telecentric Lens
  • Art Worker
  • 1937 Switzerland Tour
  • Thank U, Next (album)
  • EdDSA
  • Cycling Parade
  • Medyanka (Tributary tributary)
  • Cuvage
  • Criminology
  • Willy Adler

All articles

Clever Geek | 2019