S. Guritman, N. Aliatiningtyas, T. Wulandari and M. Ilyas 180
2. Modular Arithmetic Ring Polynomial
In this section, we describe the algorithm for arithmetic ring polynomial modular
[ ]
x f
x
p
Z
with parameters primes p and f is a polynomial of three terms trinomial is defined as
,
n i
i
x x
f f
x f
+ +
=
where
{ }
1 ,
1 ,
− ∈
f f
i
1 with integer i selected in the interval
. 1
1 −
≤ ≤
n i
A complete review of this topic refers to article [6].
We denote
{ }
1 ...,
, 2
, 1
, −
= p
p
Z
as a field over prime integer hereinafter, simply called prime field with the addition and multiplication
operation modulo p. Then,
[ ]
x
p
Z
as a polynomial ring over
p
Z
with the addition and multiplication operation over
.
p
Z
Then,
[ ]
x f
x
p
Z
as modular ring polynomial whose members all polynomials over
p
Z
and with degree at most
1 −
n
with the addition and multiplication operation modulo
. x
f
In this case,
[ ]
x f
x
p
Z
also has a structure as vector space over
p
Z
with the addition and multiplication polynomial operation. From the fact that the vector space
[ ]
,
n p
p
x f
x
Z Z
≅ then the
computational aspects is much simpler from each
[ ]
x f
x x
a x
a x
a a
x a
p n
n n
n
Z
∈ +
+ +
+ =
− −
− −
1 1
2 2
1
can be represented isomorphic as vector data .
, ...,
, ,
1 2
1 n
p n
n
a a
a a
Z
∈ =
− −
a
As a result, the amount of computational operations in the modular ring
[ ]
x f
x
p
Z
is as efficient as computing the vector addition operation modulo p. Moreover, the efficiency of the multiplication operation
[ ]
x f
x
p
Z
described as follows.
Construction of Family of Hash Functions Based on Ideal Lattice 181 Let
[ ]
x f
x x
b x
a
p
Z
∈ ,
represented by vectors ,
,
n p
Z
∈
b a
and
[ ]
x f
x b
x a
mod ⋅
is represented as f
b a
mod :
multiplication operation in
.
n p
Z
Suppose f in equation 1 represented as an ordered pair
{ }
{ }
1 ...,
, 2
, 1
1 ,
1 ,
− ±
± ±
× −
∈ =
n j
f f
with
, j
i =
1 =
i
f
if ,
j and
1 −
=
i
f
if .
j As an illustration, for
, 64
= n
37 ,
1 −
=
f
is a representation of the trinomial
. 1
64 37
x x
x f
+ −
=
Thus, the calculation of
x f
x xa
mod
can efficiently be demonstrated through the following algorithm.
Algorithm 1 Rotation-Substitution Algorithm
Input: Integer n with
, 1
n odd prime p, ordered pair
j f ,
=
f
as a representation of trinomial
, x
f
and vector
1 2
1
..., ,
, ,
−
=
n
a a
a a
a
n p
Z
∈ as a representation of
[ ]
. x
f x
x a
p
Z
∈
Output: The vector
1 2
1
..., ,
, ,
−
=
n
c c
c c
c as
[ ]
x f
x x
xa
p
Z
∈ 1.
, :
a c
= where
a
denotes the rotation of
a
one component to the right.
2.
c subs
c ,
, :
1 −
− =
n
a f
denotes the substitution 0th component from
c
with
.
1 −
−
n
a f
3. If ,
j compute
, ,
, :
,
1 1
c subs
c
s j
a a
s
n j
= −
=
− −
and if
, j
compute .
, ,
: ,
1 1
c subs
c
s j
a a
s
n j
− =
+ =
− −
4.
return c
. Furthermore, since
x f
x b
x a
mod can be written as
x f
x a
x b
x a
x b
x a
x b
x a
b
n n
mod
1 1
2 2
1
⋅ +
+ ⋅
+ ⋅
+ ⋅
− −
the calculation of
f b
a
mod
:
efficiently is demonstrated through the following algorithm.
S. Guritman, N. Aliatiningtyas, T. Wulandari and M. Ilyas 182
Algorithm 2 Operation Algorithm
mod f b
a
:
Input: Vector
1 2
1
..., ,
, ,
−
=
m
a a
a a
a and
1 2
1
..., ,
, ,
−
=
n
b b
b b
b
in the ring
[ ]
. x
f x
p n
p
Z Z ≅
Output: The vector
1 2
1
..., ,
, ,
−
=
n
c c
c c
c as the product of a and b
in the ring .
n p
Z 1. Initialization
a c
: b =
denotes a scalar times vector and .
: a w
= 2. For integer
1 =
i to
, 1
− = n
i
calculate: a
f w
RotSubs w
, :
= call Algorithm 1.
b If ,
≠
i
b calculate
. :
w c
c
i
b +
=
3. returnc.