1. A method for encrypting a data stream used to program a field programmable gate array comprising: receiving said data stream wherein said data stream is a string of bits; detecting a first gap in said data stream wherein said first gap is bits in said stream for an unused address in said field programmable gate array; determining whether encryption is enabled for said first gap; inserting an encryption identifier into said first gap identifying whether encryption has been enabled; encrypting bits in said stream of bits from a beginning of said first gap a prespecified number of bits at a time utilizing a prespecified set of bits as a bit mask, wherein: the encrypting is a loop comprising: selecting a next prespecified number of bits from the stream of bits as a selected set of bits; toggling the specified set of bits from the selected set of bits; and repeating the selecting and the toggling until a second gap in said stream for an unused address in said field programmable gate array is encountered; detecting the second gap; ending encryption of bits in said stream of bits at a beginning of said second gap in response to detecting said second gap; and wherein the encrypting further comprise: encrypting a first portion of bits in said first gap from said begining of said first gap responsive to a determination that encrypting is enabled; and compressing data in a second portion of said first gap responsive to a determination that encrypting is not enabled.