Patent ID: 7724897

Claim:
A program converter which converts, by computer microprocessor execution of a converting program stored in memory, an encryption program for executing encryption into a converted encryption program for executing encryption equivalent to the encryption, the encryption program including arithmetic addition processing of executing an arithmetic addition on N-bit (N is an integer of 2 or more) addition-target data X and N-bit key data K and thereby obtaining key added data E as a result of the arithmetic addition, said program converter comprising: a computer microprocessor; a key-data separation unit that separates the key data K into n partial key data k i (i=0 to n−1), each of which has N i bits sequentially obtained from a most significant bit in the key data K; an addition-target-data separation unit that separates 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; an arithmetic-addition-table generation unit that generates an arithmetic addition table add i for each i (i=0 to n−1), the arithmetic addition table add i being indicated by (i) an element which is data including at least added data y i , among the added data y i and carried data c i which result from an arithmetic addition on (a) the partial key data k i , (b) the partial addition-target data x i , (c) carried data c i+1 of an arithmetic addition on partial key data k i+1 and partial addition-target data x i+1 , and (ii) an index which is data including at least the partial addition-target data x i , among the partial addition-target data x i and the carried data c i+1 , the element being associated with the index; and a randomized-conversion-table generation unit that generates a randomized conversion table RTab i of each i (i=0 to n−1), by randomizing, using a random number, the arithmetic addition table add i generated by said arithmetic-addition-table generation unit.