ENCRYPTION DEVICE AND OPERATION METHOD THEREOF
An encryption device for performing virtual and real operations and a method of operating the encryption device. The method includes performing a virtual operation; when a real operation request signal is received, determining whether the virtual operation being performed is completed; and in response to the virtual operation being completed, performing a real operation in response to the real operation request signal.
1 . A method of operating an encryption device, the method comprising:
performing a virtual operation;
when a real operation request signal is received, determining whether the virtual operation being performed is completed; and
in response to the virtual operation being completed, performing a real operation in response to the real operation request signal.
2 . The method of claim 1 , further comprising receiving a delay number from outside of the encryption device,
wherein the performing of the virtual operation comprises:
in response to the virtual operation being completed, performing the virtual operation a number of times equal to the delay number before the real operation is performed.
3 . The method of claim 2 , wherein the delay number comprises a value received from a host outside the encryption device.
4 . The method of claim 2 , wherein the delay number comprises a random value received from a random value generator outside the encryption device.
5 . The method of claim 1 , wherein each of the virtual operation and the real operation comprises a plurality of round operations, and
one round of the virtual operation and one round of the real operation each comprise a plurality of sub-round operations.
6 . The method of claim 5 , wherein the plurality of sub-round operations are classified into real sub-round operations and virtual sub-round operations, and
the method further comprises forming a plurality of rounds, each comprising a real sub-round operation and a plurality of virtual sub-round operations of a first number.
7 . The method of claim 6 , wherein the encryption device further comprises a counter and a real sub-round operation register configured to store a random value, and
the forming of the plurality of rounds comprises:
initializing the counter and the random value and starting forming a first round;
sequentially counting, by the counter, the plurality of sub-round operations and deriving a count value;
performing the real sub-round operation when the count value is equal to the random value, and performing one virtual sub-round operation when the count value is different from the random value; and
completing the first round when the count value is equal to a reference count value.
8 . The method of claim 6 , wherein the first number is a value obtained by 2 n −1, where n is a positive integer.
9 . The method of claim 6 , wherein the encryption device comprises a plurality of virtual operation registers, each of which is configured to store dummy data and a dummy encryption key on which the virtual sub-round operations are based.
10 . The method of claim 9 , further comprising:
receiving a plurality of random bits;
selecting one of the plurality of virtual operation registers, based on the plurality of random bits; and
performing a sub-round operation based on the dummy data and the dummy encryption key stored in the one of the plurality of virtual operation registers.
11 . A method of operating an encryption device for performing a virtual operation and a real operation, each of which comprises a plurality of round operations each comprising a plurality of sub-round operations classified into real sub-round operations and virtual sub-round operations, the method comprising:
initializing a count value and a random value regarding the plurality of sub-round operations and starting forming a round comprising a plurality of sub-round operations including one real sub-round operation and a plurality of virtual sub-round operations;
deriving a count value by counting the sub-round operations;
performing the one real sub-round operation when the count value is equal to the random value, and performing one of the plurality of virtual sub-round operations when the count value is different from the random value; and
when the count value is equal to a reference count value, completing the round.
12 . The method of claim 11 , wherein a sum of a first number of times that the one real sub-round operation is performed and a second number of times that the plurality of virtual sub-round operations are performed is equal to 2 n , where n is a positive integer, and
wherein the one real sub-round operation and the plurality of virtual sub-round operations are comprised in the round.
13 . The method of claim 11 , further comprising:
performing the virtual operation;
when a real operation request signal is received, determining whether the plurality of round operations comprised in the virtual operation, which is being performed, are completed; and
in response to the plurality of round operations being completed, performing the real operation in response to the real operation request signal.
14 . The method of claim 13 , further comprising receiving a delay number from the outside of the encryption device,
wherein the performing of the real operation comprises:
in response to the plurality of round operations being completed, performing the virtual operation a number of times equal to the delay number before the real operation is performed.
15 . The method of claim 11 , wherein the encryption device comprises a first virtual operation register and a second virtual operation register, each of which is configured to store dummy data and a dummy encryption key on which the plurality of virtual sub-round operations are based,
wherein the method further comprises:
selecting one of the first virtual operation register and the second virtual operation register based on a random bit; and
performing a sub-round operation based on the dummy data and the dummy encryption key stored in the selected one of the first virtual operation register and the second virtual operation register.
16 . The method of claim 15 , wherein the random value comprises the random bit.
17 . An encryption device for performing a virtual operation and a real operation each comprising a plurality of round operations each comprising a plurality of sub-round operations classified into real sub-round operations and virtual sub-round operations, the encryption device comprising:
a first virtual operation register configured to store first dummy data and a first dummy encryption key on which the virtual sub-round operations are based;
a second virtual operation register configured to store second dummy data and a second dummy encryption key on which the virtual sub-round operations are based; and
a first multiplexer configured to receive a first output from the first virtual operation register and a second output from the second virtual operation register, select one of the first output or the second output based on a random bit, and output the one of the first output or the second output that is selected.
18 . The encryption device of claim 17 , further comprising:
a real operation register configured to store real data and a real encryption key on which the real sub-round operations are based; and
a second multiplexer configured to receive a third output from the real operation register and a fourth output from the first multiplexer, select one of the third output or the fourth output in response to a real sub-round operation performance signal, and output the one of the third output or the fourth output that is selected.
19 . The encryption device of claim 17 , further comprising:
a data function module configured to perform an encryption operation based on the virtual operation and the real operation; and
an encryption/decryption controller configured to receive a delay number from the outside of the encryption device, and when the data function module receives a real operation performance request while the virtual operation is being performed, control the data function module to perform the virtual operation a number of times equal to the delay number.
20 . The encryption device of claim 17 , wherein each of the plurality of round operations comprises one real sub-round operation and a plurality of virtual sub-round operations.