A system comprising: a serial number server integrated within a programmer and configured to: generate a serial number unique and serialized for a programmable device, the programmable device comprising any of: an integrated circuit, a programmable logic device, a field programmable gate array, FPGA, or a smartphone; a security controller configured to: generate a security key to protect a content of the programmable device; the programmer configured to: couple the programmable device to the programmer via an adapter, generate a device birth certificate that includes a manufacturing marker, the serial number generated by the serial number server, and the security key, the manufacturing marker identifying a location where the programmable device was manufactured, encrypt the contents of the device birth certificate with the security key, and program a secure non-volatile memory area of the programmable device with the device birth certificate at time of manufacture of the programmable device for improving security in a programming system using the programmed device birth certificate for subsequent authentication of the programmable device, wherein the secure non-volatile memory area includes an area of the programmable device that cannot be tampered with or illegally accessed by an unauthorized user and may be programmed to store the device birth certificate only during manufacture of the programmable device; and an authentication unit configured to: verify if the serial number sent from a host computer matches the serial number that has been saved to the programmable device for granting the host computer access to the programmable device that has been identified by the serial number. a serial number server integrated within a programmer and configured to: generate a serial number unique and serialized for a programmable device, the programmable device comprising any of: an integrated circuit, a programmable logic device, a field programmable gate array, FPGA, or a smartphone; a security controller configured to: generate a security key to protect a content of the programmable device; the programmer configured to: couple the programmable device to the programmer via an adapter, generate a device birth certificate that includes a manufacturing marker, the serial number generated by the serial number server, and the security key, the manufacturing marker identifying a location where the programmable device was manufactured, encrypt the contents of the device birth certificate with the security key, and program a secure non-volatile memory area of the programmable device with the device birth certificate at time of manufacture of the programmable device for improving security in a programming system using the programmed device birth certificate for subsequent authentication of the programmable device, wherein the secure non-volatile memory area includes an area of the programmable device that cannot be tampered with or illegally accessed by an unauthorized user and may be programmed to store the device birth certificate only during manufacture of the programmable device; and couple the programmable device to the programmer via an adapter, generate a device birth certificate that includes a manufacturing marker, the serial number generated by the serial number server, and the security key, the manufacturing marker identifying a location where the programmable device was manufactured, encrypt the contents of the device birth certificate with the security key, and program a secure non-volatile memory area of the programmable device with the device birth certificate at time of manufacture of the programmable device for improving security in a programming system using the programmed device birth certificate for subsequent authentication of the programmable device, wherein the secure non-volatile memory area includes an area of the programmable device that cannot be tampered with or illegally accessed by an unauthorized user and may be programmed to store the device birth certificate only during manufacture of the programmable device; and an authentication unit configured to: verify if the serial number sent from a host computer matches the serial number that has been saved to the programmable device for granting the host computer access to the programmable device that has been identified by the serial number.