A method to encode and decode a digital fingerprint code by an identification encoder and an identification decoder wherein the digital fingerprint code includes a plurality of N-bit data embedded on a set of curves by changed thicknesses in the curves.