Cryptography Reference
In-Depth Information
x 2 mod n .
The family of Rabin functions R n , where R n (
) =
x
Associated with a security parameter 1 k , two parameters s 0 , s 1 such that if l
=
k
s 0
s 1 , we have that l
+
s 0
k
/
2. Typical values for these parameters,
mentioned in [34], are k
384, although larger values
may be used for added security as in the Maple implementation we give below.
=
1024, s 0 =
128 and l
=
l . Note that l
The plaintext space is
384 is sufficient for the most common
usage of a scheme like this one, which is to encrypt symmetric keys that typically
have 256 bits or less.
{
0
,
1
}
=
s 0 .Asinthe
case of OAEP, these functions are modeled as independent random oracles in the
security analysis of the scheme and in practice they will be derived from a hash
function such as SHA-256.
l
+
s 1
s 0 , H
s 1
l
+
Two functions G
:{
0
,
1
}
→{
0
,
1
}
:{
0
,
1
}
→{
0
,
1
}
Definition 8.15 Rabin-SAEP +
is the public encryption scheme
(
Gen
,
Enc
,
Dec
)
,
with these algorithms defined as follows:
Gen : On input 1 k , with k even, a modulus n
=
pq is computed, where p and q
k
2 k + 1
2 k + 1
2 k
are
-bit
integer whose two most significant bits are '10'. The output of Gen is the public
key n and the private key
(
2 +
1
)
-bit Blum primes and n
∈[
,
+
)
, i.e., n is a
(
k
+
2
)
(
,
)
p
q
.
l and the public key n , the following values
∈{
,
}
Enc : Given the message m
0
1
are successively computed:
s 1 ( r is a randomly chosen bit string of length s 1 ).
1. r
←{
0
,
1
}
s 0 .
2.
t
:=
G
(
m
||
r
) ∈{
0
,
1
}
l
+
s 0 .
3.
v
:=
m
||
t
∈{
0
,
1
}
l
+
s 0 .
4.
x
:=
v
H
(
r
) ∈{
0
,
1
}
k .
5.
y
:=
x
||
r
∈{
0
,
1
}
y 2 mod n
6.
c
Z n given by its
binary representation, and encrypted with the Rabin function using the public
key. In particular, as an integer, y
:=
∈ Z n (Here, y is regarded as a k -bit element of
2 k
<
<
n
/
2. The resulting ciphertext c
∈ Z n
may also be regarded as a bit string of length k
2 completing with zeros on the
left if necessary). The output of Enc is the ciphertext c .
+
Dec : Given the ciphertext c
∈ Z n and the private key
(
p
,
q
)
, the following steps
are performed:
c ( p + 1 ) 4 mod p and m q
c ( q + 1 ) 4 mod q which, as explained in
1. Compute m p :=
:=
Z p and
Z q , respectively.
Algorithm 8.3, are square roots of c in
2. Check that m p
and that m q
(
)
(
)
. If either condition does
not hold then c is not a quadratic residue modulo n and it is rejected as an invalid
ciphertext.
3. Use the Chinese remainder theorem as in Algorithm 8.3 to compute the four
square roots of c in
c
mod p
c
mod q
Z n ,say
y 1 , ±
y 2 }
. Two of these square roots are greater
than n
y 2 be the two
remaining square roots. We know that the plaintext is a k -bit integer so if none of
/
2 and hence they are discarded (since y
<
k
/
2). Let y 1 ,
 
Search WWH ::




Custom Search