Technical Field
The present invention relates to a data calculating device and a data
encryptor/decryptor for calculation of data to encrypt and/or decrypt the data.
Background Art
A device shown in Fig. 5 is contrived as an encryptor/decryptor conforming
with an encryption algorithm of DES (Data Encryption Standard).
Key data (secret key) and input data (plain text data or encrypted
text data) are each composed of 64 bits and are latched in latch circuits 81 and
82, respectively, according to a clock CLK. And a mode signal indicative of encryption
or decryption is latched in a latch circuit 83 according to the clock CLK.
The key data outputted from the latch circuit 81 are supplied to a
key generator 90, and the key data K1 to K16 of 16 stages each composed of 48 bits
are outputted sequentially from the key generator 90.
More specifically, the 64-bit key data outputted from the latch circuit
81 are converted into 56-bit key data in a conversion circuit 91, and higher-order
28-bit data and lower-order 28-bit data are shifted by 1 bit or 2 bits in shift
circuits 93 and 94, and then are combined together to form 56-bit key data, which
are converted into 48-bit key data in a conversion circuit 95, whereby first-stage
key data are generated.
Thereafter similar bit shift and conversion are executed, so that
key data of 16 stages are generated and then are inputted to a selector 99. Subsequently
the selector 99 is controlled by the mode signal outputted from the latch circuit
83, and key data K1 to K16 of 16 stages each composed of 48 bits are outputted sequentially
according to the pulses of the clock CLK.
The output data (plain text data or encrypted text data) from the
latch circuit 82 are supplied to a calculator 100, where the following calculation
is executed.
First, the 64-bit data outputted from the latch circuit 82 are transposed
bit by bit in an initial transposition circuit 101, and the lower-order 32 bits
out of the entire 64-bit data obtained after such initial transposition and the
key data K1 are calculated together in a first-stage conversion circuit 102, and
further after conversion by the use of a function F, the 32-bit data outputted from
the conversion circuit 102 and the higher-order 32 bits out of the entire 64-bit
data after the initial transposition are calculated together in an XOR (exclusive
OR) circuit 103.
Subsequently, the 32-bit data outputted from the XOR circuit 103 and
the key data K2 are calculated together in a second-stage conversion circuit 104,
and after conversion by the use of a function F, the 32-bit data outputted from
the conversion circuit 104 and the lower-order 32 bits out of the entire 64-bit
data obtained after the initial transposition are calculated together in an XOR
circuit 105.
Thereafter, similarly to the above, the higher-order 32 bits and the
lower-order 32 bits are mutually replaced and, after execution of the calculations
in the third and subsequent stages, the 32-bit data inputted to a 16th-stage conversion
circuit 107 and the 32-bit data outputted from a 16th-stage XOR circuit 108 are
combined with each other, and the 64-bit data obtained after such combination are
transposed bit by bit in an inverse transposition circuit 109.
The 64-bit data after such inverse transposition are latched in a
latch circuit 84 according to the clock CLK, and then either encrypted or decrypted
data are outputted from the latch circuit 84.
However, in the encryption/decryption calculating device described
above, the key generator 90 is an asynchronous circuit including none of latch circuit
(sampling circuit), wherein 16-stage key data are generated at a time from the input
key data and are merely selected by the selector 99, so that much noises (changes
in the signal line potential) are superposed, in the vicinities of the change points,
on the key data K1 to K16 outputted from the key generator 90, and therefore the
power consumption in the calculator 100 is increased.
In view of such problems, an object of the present invention resides
in realizing an improved calculating device which is adapted for remarkable decrease
of the power consumption.
Disclosure of Invention
The calculating device of the present invention comprises first latch
means for latching input data; first calculation means for calculating asynchronous
data inputted from an asynchronous calculation circuit which performs an asynchronous
operation, and also the input data latched in the first latch means; synchronizing
means for synchronizing the calculated data outputted from the first calculation
means; and a second calculation for further calculating the synchronized data obtained
from the synchronizing means. In the calculating device of the above structure,
the power consumption can be remarkably decreased and the circuit scale thereof
is reducible.
Brief Description of Drawings
- Fig. 1 is a block diagram showing an encryption/decryption calculating device
as an embodiment which represents a calculating device of the present invention;
- Fig. 2 is a block diagram showing principal components in the encryption/decryption
calculating device of Fig. 1;
- Fig. 3 is a diagram for explaining the operation performed in the encryption/decryption
calculating device of Fig. 1;
- Fig. 4 is a block diagram showing a data recording/reproducing apparatus as
an embodiment of a data receiver of the present invention; and
- Fig. 5 is a block diagram showing a conventional encryption/decryption calculating
device.
Best Mode for Carrying out the Invention
[Embodiment of calculating device: Figs. 1 to 3]
Figs. 1 and 2 show an embodiment representing a calculating device
of the present invention constructed as an encryption/decryption calculating device,
wherein Fig. 2 shows details of a conversion circuit 70 in a calculator 60 included
in Fig. 1.
An encryption algorithm adopted in the encryption/decryption calculating
device of this embodiment conforms with the encryption algorithm of DES.
Key data (secret key) and input data (plain text data or encrypted
text data) are each composed of 64 bits and are latched in latch circuits 41 and
46, respectively, according to a clock CLK1.
And a mode signal indicative of encryption or decryption is latched
in a latch circuit 42 according to the clock CLK1. Further, the clock CLK1 is counted
by a 16-stage counter 44 from the time point of a start signal.
The key data outputted from the latch circuit 41, the mode signal
outputted from the latch circuit 42 and the output signal from the counter 44 are
supplied to a key generator 50, and key data K1 to K16 of sixteen stages each composed
of 48 bits are outputted sequentially from the key generator 50.
More specifically, the 64-bit key data outputted from the latch circuit
41 are converted into 56-bit key data in a conversion circuit 51, and the 56-bit
key data are shifted sequentially in a shift register 53, by one bit or two bits
at a time, in accordance with the output signal of the latch circuit 42, whereby
sixteen key data each composed of 56 bits are obtained.
Further, the sixteen 56-bit key data are each converted into 48-bit
key data in a conversion circuit 55, and the sixteen 48-bit key data are sequentially
selected, per pulse of the clock CLK1, in accordance with the output signal of the
counter 44 in a selector 57, so that the aforementioned key data K1 to K16 are obtained
sequentially per pulse of the clock CLK1.
Thus, in the key generator 50, there is performed a mere operation
of generating 16-stage key data at a time from the input key data and selecting
the data by the selector 57, wherein the key data K1 to K16 outputted from the key
generator 50 are such that much noises (changes in the signal line potential) are
superposed thereon in the vicinities of the change points.
The output data (plain text data or encrypted text data) from the
latch circuit 46 are supplied to a calculator 60. This calculator 60 is so formed
that the calculations of sixteen stages are repeated cyclically by a one-stage calculating
circuit in a calculator 100 shown in Fig. 5.
That is, first the 64-bit data outputted from the latch circuit 46
are transposed bit by bit in an initial transposition circuit 61, and the 64-bit
data after the initial transposition are outputted from a selector 62 controlled
by the counter 44. Then the lower-order 32 bits out of the entire 64-bit data and
the key data K1 are calculated together in a conversion circuit 70, where the data
are converted by the use of a function F.
More specifically, in the conversion circuit 70, as shown in Fig.
2, the lower-order 32-bit data are transposed bit by bit in an expanded transposition
circuit 71, and the same bit is selected plural times so that the above data are
converted into 48-bit data, and thereafter the 48-bit data thus obtained and the
48-bit key data K1 are calculated together in an XOR circuit 73.
Further the 48-bit data outputted from the XOR circuit 73 are latched
in a latch circuit 75 according to a clock CLK2 different in phase from the foregoing
clock CLK1.
Such operation of latching the output data of the XOR circuit 73 by
the clock CLK2 different in phase from the clock CLK1 is performed for the reason
that, since the output key data K1 to K16 of the key generator 50 and the output
data of the expanded transposition circuit 71 are delayed from the change point
(leading edge) of the clock CLK1 as shown in Fig. 3, the output data of the XOR
circuit 73 are also delayed, and therefore, in case the output data of the XOR circuit
73 are latched according to the clock CLK1, the latched data are those preceding
by one clock pulse. More concretely, for example, the clock CLK2 is set to be opposite
in phase to the clock CLK1.
As the output data of the XOR circuit 73 are thus latched in the latch
circuit 75, the aforementioned noises in the output key data K1 to K16 of the key
generator 50 are absorbed, so that the potential of the output signal from the latch
circuit 75 is varied merely at the change point of the clock CLK2, hence achieving
a remarkable reduction of the power consumption in the circuits posterior to the
latch circuit 75.
The 48-bit data outputted from the latch circuit 75 are divided into
eight data each composed of six bits, and each of the 6-bit data is replaced with
4-bit data according to a look-up table 77.
Further, the eight 4-bit data after such replacement are combined
together to form 32-bit data, which are then transposed bit by bit in a transposition
circuit 79.
The processing mentioned above is executed completely in the conversion
circuit 70 during the first-stage calculation. Subsequently, the 32-bit data outputted
from the transposition circuit 79 and the higher-order 32-bit data in the entire
64-bit data outputted from the selector 62 after the initial transposition are calculated
in the XOR circuit 64 as the first-stage calculation.
The calculation in the first stage is thus completed. Thereafter the
32-bit data inputted to the expanded transposition circuit 71 and the 32-bit data
outputted from the XOR circuit 64 are combined together to form 64-bit data in such
a manner that the higher-order 32 bits and the lower-order 32 bits are replaced
mutually in a replacement/combination circuit 66, and the 64-bit data obtained after
such combination are latched in the latch circuit 47 according to the clock CLK1.
In the calculation executed in each of the second and subsequent stages,
the output 64-bit data of the latch circuit 47 are outputted from the selector 62
instead of the output data from the initial transposition circuit 61, and the key
data K2 or subsequent key data are inputted, instead of the key data K1, to the
XOR circuit 73 in the conversion circuit 70, and the same calculation as the first-stage
calculation is executed.
After completion of the calculation in the 16th stage, replacing the
higher-order 32 bits and the lower-order 32 bits in the replacement/combination
circuit 66 is no longer necessary, and therefore the 64-bit data obtained after
the replacement and combination in the circuit 66 are. supplied to a replacement
circuit 67, where the higher-order 32 bits and the lower-order 32 bits are replaced
with each other, and then the data are transposed bit by bit in an inverse transposition
circuit 69.
The 64-bit data after such inverse transposition are latched in the
latch circuit 48 according to the clock CLK1, and then encrypted or decrypted data
are outputted from the latch circuit 48.
In the encryption/decryption calculating device of this embodiment,
the power consumption is remarkably decreased as mentioned. Moreover, since the
calculator 60 is so structured that calculations of 16 stages are executed through
cyclic repetition by the one-stage calculating circuit, the number of gates in the
calculating apparatus can be decreased to consequently reduce the circuit scale.
The embodiment described above represents an exemplary case of complying
with the DES encryption algorithm. However, it is not exactly necessary to comply
with the DES encryption algorithm alone, and some modifications may be made by changing
the bit lengths of the input data (plain text data or encrypted text data) and the
key data, or increasing the number of stages of calculations.
[Embodiment of data receiver: Fig. 4]
Fig. 4 shows a data receiving system including a recording/reproducing
apparatus as an embodiment of a data receiver of the present invention which is
equipped with the encryption/decryption calculating device of the invention.
In the data receiving system of this example, encoded data encrypted
by a secret key are received in a terminal unit 10 such as a PC through ripping
from a recording medium 1 or down-loading from a delivery system 2 using the Internet.
The encrypted data thus received are transmitted from the terminal
unit 10 to a recording/reproducing apparatus 20 connected to a USB (Universal Serial
Bus) terminal of the terminal unit 10.
The recording/reproducing apparatus 20 records the data on a recording
medium 5 and reproduces the data therefrom. The apparatus 20 is equipped with an
encryptor/decryptor 30.
The encryptor/decryptor 30 comprises an encryption/decryption processor
40 consisting of the aforementioned encryption/decryption calculating device shown
in Figs. 1 and 2, and also comprises a CPU 31 with a bus 32 which connects thereto
a ROM 33 where programs and required fixed data are written for transfer of commands
to be executed by the CPU 31 and also for encryption and decryption of the data,
a RAM 34 functioning as a work area of the CPU 31, a USB interface 36 for transferring
the command from and/or to the terminal unit 10 and acquiring the data from the
terminal unit 10, an interface 37 for outputting the data to a DSP (Digital Signal
Processor) 26 of the recording/reproducing apparatus, and an interface 39 for transferring
the command from and/or to the CPU 21 of the recording/reproducing apparatus.
The encryptor/decryptor 30 is formed into a one-chip LSI (Large Scale
Integration).
In the recording/reproducing apparatus, there are connected, to a
bus 22 of a CPU 21, a ROM 23 where programs to be executed by the CPU 21 and required
fixed data are written, a RAM 24 functioning as a work area of the CPU 21, and the
aforementioned DSP 26. And further a recording/reproduction processor 27 and an
output processor 28 are connected to the DSP 26.
In the encryptor/decryptor 30, the encoded data encrypted by the secret
key and inputted from the terminal unit 10 via the USB interface 36 are decrypted
as mentioned in the encryption/decryption processor 40, and the encoded data as
decrypted plain text data are sent to the DSP 26 via the interface 37, and after
being processed in the DSP 26, the data are recorded on the recording medium 5 by
the recording/reproduction processor 27 or are delivered to the output terminal
29 after conversion into analog signal by the output processor 28.
The recording medium 5 may be any of optical disk, hard disk, flexible
disk, magnetic tape, memory card and semiconductor memory.
The present invention is applicable not only to such recording/reproducing
apparatus but also to an apparatus having no recording function and capable of merely
receiving, decrypting and reproducing the encrypted data.
Industrial Applicability
According to the present invention, as described hereinabove, it becomes
possible to realize an improved calculating device where the power consumption is
remarkably decreased.