Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
8 years ago

Encryption or Obfuscation of OpenCL kernels

I've developed a couple of Kernels for a customer and would very much like to encrypt or at least obfuscate the kernel contents. Has anyone successfully done this? I've begun playing around with attempting to import 1st stage compile output files from one project to another but have so far been unsuccessful. Any ideas would be greatly appreciated.

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    C:/intelFPGA_pro/17.0/quartus/bin64/encrypt_1735 --quartus --language=verilog | VHDL <file>. You can encrypt entire collection of kernel files in kernel_hdl starting from 17.0 tools. Then build the PR or flat version of the project by the Tcl script or in Quartus GUI. Our company has successfully done this IEEE_1735 encryption of IP merged with OpenCL flow.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Forgot one more thing. You have to mark protected code sections with `pragma protect begin and `pragma protect end. Read Quartus handbook section on IEEE 1735 support and pragmas, but it turns out that the begin and end pragmas is all you need. Yet another undocumented feature ;).