Patent ID: 8184805

Claim:
An encrypting device that executes encryption including (a) arithmetic addition on N-bit (N is an integer of 2 or more) addition-target data X and N-bit key data K and (b) conversion of a result of the arithmetic addition, said encrypting device comprising at least one microprocessor configured to operate as the following units: a separation unit configured to separate the addition-target data X into n partial addition-target data x i (i=0 to n−1), each of which has N i bits sequentially obtained from a most significant bit in the addition-target data X; a conversion table storage unit configured to store, for each i (i=0 to n−1), a conversion table RTab i that outputs converted data generated by converting a partial addition result that is a result of arithmetic addition on at least the partial key data k i and N i -bit input data from among (a) partial key data k i , (b) carried data c i+1 , and (c) the input data, (a) the partial key data k i being included in n partial key data k 0 to k n−1 which are generated by separating the key data K by N i bits sequentially from a most significant bit in the key data K, and (b) the carried data c i+1 being obtained from an arithmetic addition on (b1) partial key data k i+1 included in the n partial key data k 0 to k n−1 and (b2) the partial addition-target data included in the n partial addition-target data x i (i=0 to n−1); an acquisition unit configured to acquire, for each i (i=0 to n−1), from the conversion table RTab i , a converted partial added data re i that is the converted data generated by converting the partial addition result where the input data is the partial addition-target data x i ; and a concatenation unit configured to concatenate the converted partial added data re i generated for i=0 to n−1, so as to generate converted data generated by converting a result of arithmetic addition on the addition-target data X and the key data K, wherein, for each i (i=1 to n−1), the conversion table RTab i is a table that outputs carried data c i indicating a carry to a higher digit of the partial addition result, to a conversion table RTab i−1 , and the conversion table RTab i of each i (i=0 to n−2) is a table that outputs converted data generated by converting a partial addition result which is a result of arithmetic addition on the partial key data k i , the input data, and the carried data c i+1 , when the carried data c i+1 outputted from a conversion table RTab i+1 indicates occurrence of a carry to a higher digit, and a table that outputs converted data generated by converting a partial addition result which is a result of arithmetic addition on the partial key data k i and the input data, when the carried data c i+i outputted from the conversion table RTab i+1 indicates no occurrence of a carry to a higher digit.