Cryptography Reference
In-Depth Information
[op(m), u]
end proc:
Example 10.2 As an example of the use of the previous function, we generate a
master key with a 2048-bit modulus and the corresponding u -parameter. As in the
case of RSA keys, the prime factors of the modulus are pseudo-randomly generated
and in order to do this random seeds of 128 bits or more should be provided.
> params := CocksIBESetup(1024, "c9a71d49bf75130f37188769ceb0ed782a",
"e9e5d7742eb98a6c0c0f5710877326a6bb"):
Let us now have a look at these parameters. The master public key is:
> mpk := params[1];
"d5e9e97cc764bb430f34e5aa1f21d26f09a179a8860b6525ced8cc9eb876233cdf4b82397494f66ec\
ed9ab9e1a300e4c443254b866047bb16c5d56013c59aa42e78cfa4d860fcd6617e6dc8e21dd72c09\
31ab519d87a15416f3c02c264eb8fc3912870f02371d39810cf751bb28be7f645108817dde0151b6\
de006551457387eed2f57f6ebf26134290b6a2f06256429ee7b66b121719e4759cbcdeb558679da1\
e8e4d9eea6b5f4e9c059df512c7c86742525c4dff075cd35a007b37e242e3744fe5767eb819c14b3\
514601259986f1710253c080530f61208f5b73786b95eff694b5ea2c60e9e51a8e2b80ef43277892\
3dcd269b6a9a7417812cf3a0e01e4fd"
The master private key is:
> msk := params[2];
["d1ddbc669e789567c2f186b51c4fff1b4c597b54e7d79db7b329a2067434548ee7178efbf212af\
65ef194361d40af3acccb4fc90caf25c168650bee96c326146e5e5f6dcbd914aa6f4eab20a7d5c40\
e831430ba655854b732964536138f924157ca0c0d456454043c79d5013b6f769632836602e9a5e6b\
b16a4af5d4c0b9e60b", "104eff4201c7d4836bcac04a8168c59d4a5c1bdfd0512cf67d22d18260\
efecfb1ec5c810781f45425920d5c5cbc1112a5699e2533a40987471779a16455c22962f78ffcdbd\
a6405c22bca5b1d65ddfa91166cae2c6b0b8546d8e29bbe019c2c27c80b3be5c086d88f447c5e2b0\
2db77a99e9c81ebb1aa274b74285449d250ee17"]
Finally, the u -parameter is:
> u := params[3];
"507c72a1c4ab6a9368afc217aff88f8dbbcb8318ba3add8482c10fbb61e890b52bc5de159a4722b9b\
0f3d8ea3ed6006da724d90f72363a78a399cbb618c097e2b6ebe510983a94e2c3f7ef31f32a4c8c2\
58e3b67aae3a85a577d6d75517cfc40669bba065c299ae4c1f3b00acbbe406d4d47c389bfb250340\
95be619b635464c873f3646ff43dcbcea11734080e471c73ddc03ad88cb3263927b477b1df3bddc5\
d31a1877897ba816c9e96b4399e8cc5e93af1e26dcbea94e2d69a6aa32f63bfede9073fa894c7d17\
cff5a56430c7c86f10dd29f1dd796aeb65f441ad73e3b1468d123e464eabc8f27aa8364b217a4f97\
db5b512097e05f60343b570f78f86f2"
We may check, for example, that u has Jacobi symbol 1 but is not a quadratic
residue modulo mpk . This is equivalent to u having Legendre symbol
1 modulo
both prime factors of the modulus:
> numtheory:-legendre (stringposint(u),stringposint (msk));
[-1, -1]
Proceeding with the implementation of the Cocks IBE scheme, it is now the turn
of the key derivation algorithm. This algorithm makes use of the hash function that
maps identity strings to elements of
1
n . We construct this hash function based
on the already used mask generating function MGF1 which, in turn, was based on
SHA-256. The hash function we will use is then the following, where the inputs are
QN
 
Search WWH ::




Custom Search