Residue calculating sections respectively obtain residues which take a plurality
of integers as modulus, with respect to a user ID. The plurality of integers are
stored in modulus storage sections and are prime to each other. Based on these
residues and parameters stored in a coding parameter storage section, component
codes constructed by continuous sequences of 1 and 0 using a predetermined number
of bits as a unit are respectively generated by component code generating sections.
These component codes are concatenated by a concatenating section, thereby to obtain
a code to be embedded, which constructs watermark information.