1. A method to encrypt and decrypt data comprising: providing input data to be encrypted, said input data made up of a plurality of sub-data, each said sub-data comprising sequence of bits of data; dynamically selecting a plurality of invertible encryption parameters; and performing one or more rounds of a combination of data modification, sequence modification and data-sequence modification using plurality of selected encryption parameters deriving encrypted data.