Forum Discussion

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

Creating and encrypting netlists

I am trying to create a design for a customer that is part netlist, that they cannot edit, investigate or reverse engineer and part VHDL. They bought an algorithm that integrates into one of our boards that they wish to modify (it is an open source algorithm) but obviously we do not want them to get hold of our IP that contains memory interfaces, PCI core etc. I am trying to find out if it is possible to provide an encrypted netlist. I have found the steps to make a .qxp file, but dont understand if this is encrypted or not. Is it possible to view or edit a .qxp file?

16 Replies

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

    I think so. It wouldn't be too easy, but should be do-able. When providing a .qxp, it's a binary, but after place-and-route the design isn't encrypted or anything. They could look in the Technology Map Viewer to see what logic is in there(it's not intuitive at all, but again, do-able). If you really need something encrypted, try and get in touch with Altera. They and their IP providers do have a way of encrypting IP(often source) so that it is unreadable in all phase of the fit.

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

    I have been in this very position, and spoken to altera about it.

    Apparetly the only way to go about encrypting at this level would be to join the Altera IP development program or whatever it is (the thing that provides PCI cores and the like) but then your IP becomes available to the world.

    Basically there is no way to actually encrypt the QXP file as is, you'll just have to hope they dont try and reverse engineer it (though, if its a fairly involved design, that would take some serious resource that they could probably have used to develop their own version in the first place!)
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    It would be nice if the .qxp's could be encrypted, basically a button that says this can't be looked at in Altera back-end tools. It wouldn't need a license or anything, it would just do some of the stuff that's already done with the licensed IP. The IP could still be compiled by anyone who had the .qxp file, so it doesn't prevent re-use, it just puts up more roadblocks for reverse engineering. I filed something, but please file an SR too. It won't help today, but might be something down the road...

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

    I think the reason that there is no "user" encryption is because all the IP encryption, is more a security by obscurity than a true secure encryption.

    If you think about it, there is no way to securely encrypt an IP at this level. Like it or not, Quartus must be able to decrypt the IP to produce the configuration file, which means that the key and decryption routine must be local to the user computer.

    All you (and Altera) can do is obfuscation, and keep the encryption/decryption process as private and as undocumented as possible.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    I think so. It wouldn't be too easy, but should be do-able. When providing a .qxp, it's a binary, but after place-and-route the design isn't encrypted or anything. They could look in the Technology Map Viewer to see what logic is in there(it's not intuitive at all, but again, do-able)

    --- Quote End ---

    I've browsed the qxp using the technology map viewer but it seems to me that constant values are some how synthesized away, are you it is doable to find them?

    --- Quote Start ---

    I have been in this very position, and spoken to altera about it.

    Apparetly the only way to go about encrypting at this level would be to join the Altera IP development program or whatever it is (the thing that provides PCI cores and the like) but then your IP becomes available to the world.

    Basically there is no way to actually encrypt the QXP file as is, you'll just have to hope they dont try and reverse engineer it (though, if its a fairly involved design, that would take some serious resource that they could probably have used to develop their own version in the first place!)

    --- Quote End ---

    assuming that my bosses would agree to making our design open to world(though it is relevant to very narrow market), would altera charge a fee for joining the program?

    my main concern is about duplicating our design to more boards then we know of, not reverse engineering (most of the IP is implemented in SW which they get a binary of)

    --- Quote Start ---

    It would be nice if the .qxp's could be encrypted, basically a button that says this can't be looked at in Altera back-end tools. It wouldn't need a license or anything, it would just do some of the stuff that's already done with the licensed IP. The IP could still be compiled by anyone who had the .qxp file, so it doesn't prevent re-use, it just puts up more roadblocks for reverse engineering. I filed something, but please file an SR too. It won't help today, but might be something down the road...

    --- Quote End ---

    I've opened a service request explaining the problem and I'm waiting for a replay.

    another thought that came to my head, are there any third part tools that might help me, like precision that creates edf, maybe it is not viewable in the technology map viewer.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    They will synthesize down the downstream logic. So a constant 1 will not show up in the logic, it would just get removed and whatever it drove would have logic reductions based on that. The constant will not be obvious by any means, but it is probably "do-able" if you really know what you're doing and had lots of time.