It should be a function f_N(x) whose input is an N-digit number and its output is an N-digit number . N is a constant and may be between 20-70. The function must be one-to-one. (It is invertible, meaning that decryption is possible. The decryption speed does not matter.)
I need to be in 3ns The following encryption requires about 333M inputs per second. For example, DES requires about 50Mbits per second. I need 333M inputs per second.
So far, I have used about 6 rounds of Feistel ciphers. This seems to require About 3ns.
Suggestion?
More notes
There are some questions so I will explain. I need to put the key into the hash table. The standard method is to hash the input key and add The result is used as the index of the table. Each row in the table must store the original key. Information theory tells us that the row of the table does not actually need to be as wide as the input key, but as wide as the input key, minus the table address The number of digits. For example:
>input: x (N digits)
> hash: x? 8 (8 bits)
>Verifier: floor(x / 128)(N-8 bits)
It is silly that integers are usually the same width on the CPU, but I do this in hardware Do.
x? 8 is a hash that is easy to crack. In fact, if the input key differs only in the first few digits, then you will break the hash in an accident. I want a hash that will not be broken in an accident, It may even be difficult to vandalize on purpose. I also tried LFSR. LFSR is fast, but two LFSRs of equal length generate linearly related hash results. (If f(x) and g(x) give two different polynomials the same Hash, then f(x 1) and g(x 1) are easily related.)
So, I need a function with N-bit input and V-bit, H-bit output (VH=N) , Where it is difficult to find two inputs of length N, so that both will output the same H. Encryption meets the requirements, it makes the length of the output the same as the input, and it is difficult to reverse. Things other than encryption may also be useful, although see It seems that what I want is almost the definition of encryption.
Sorry for not explaining all of this. Hope this clarifies things.
If latency is not as important as throughput, then is there any reason not to use the known safe standard Feistel cipher instead of outputting the full number of rounds from combinatorial logic (e.g. 16 in Blowfish) , Paste a register between each round in order to pipe the encryption algorithm? It essentially requires the same amount of hardware (adding some flip-flops to the register a little more) as a known secure encryption algorithm, but the propagation delay can only be one round of propagation delay of the Feistel network. Flip-flops.
< /div>
I need a very, very fast one-to-one algorithm. The algorithm does not need to be unbreakable. Reasonably strong enough but it must be lightning fast. I will implement it in hardware. Area It is also a problem, so it should not use too much logic.
It should be a function f_N(x) whose input is an N-digit number and its output is an N-digit number. N is a constant and may be between 20-70. The function must be one-to-one. (It is invertible, meaning that decryption is possible. The decryption speed does not matter.)
I need to be under 3ns Encryption, about 333M inputs per second. For example, DES requires about 50Mbits per second. I need 333M inputs per second.
So far, I have used about 6 rounds of Feistel ciphers. This seems to take about 3ns.
Suggestion?
More notes
There are some questions so I will explain. I need to put the key into the hash table. The standard method is to hash the input key and add The result is used as the index of the table. Each row in the table must store the original key. Information theory tells us that the row of the table does not actually need to be as wide as the input key, but as wide as the input key, minus the table address The number of digits. For example:
>input: x (N digits)
> hash: x? 8 (8 bits)
>Verifier: floor(x / 128)(N-8 bits)
It is silly that integers are usually the same width on the CPU, but I do this in hardware Do.
x? 8 is a hash that is easy to crack. In fact, if the input key differs only in the first few digits, then you will break the hash in an accident. I want a hash that will not be broken in an accident, It may even be difficult to vandalize on purpose. I also tried LFSR. LFSR is fast, but two LFSRs of equal length generate linearly related hash results. (If f(x) and g(x) give two different polynomials the same Hash, then f(x 1) and g(x 1) are easily related.)
So, I need a function with N-bit input and V-bit, H-bit output (VH=N) , Where it is difficult to find two inputs of length N, so that both will output the same H. Encryption meets the requirements, it makes the length of the output the same as the input, and it is difficult to reverse. Things other than encryption may also be useful, although see It seems that what I want is almost the definition of encryption.
Sorry for not explaining all of this. Hope this clarifies things.
When When you say “fast”, do you only care about throughput, or the most important delay itself?
If latency is not as important as throughput, then is there any reason not to use the known safe standard Feistel cipher instead of outputting the full number of rounds from combinatorial logic (e.g. 16 in Blowfish) , Paste a register between each round in order to pipe the encryption algorithm? It essentially requires the same amount of hardware (adding some flip-flops to the register a little more) as a known secure encryption algorithm, but the propagation delay can only be one round of propagation delay of the Feistel network. Flip-flops.
< /p>
WordPress database error: [Table 'yf99682.wp_s6mz6tyggq_comments' doesn't exist]SELECT SQL_CALC_FOUND_ROWS wp_s6mz6tyggq_comments.comment_ID FROM wp_s6mz6tyggq_comments WHERE ( comment_approved = '1' ) AND comment_post_ID = 1389 ORDER BY wp_s6mz6tyggq_comments.comment_date_gmt ASC, wp_s6mz6tyggq_comments.comment_ID ASC