|
Thanks for your answering Skippums
The AES is common knowing algorithm nowadays. I'm looking for the simulation program for the AES only. The simulation program which is a real AES program that shows some operations' results inside AES on the screen. First, I need to compare between encryption time of the AES for certian data and encryption time for my algorithm for same certian data with AES aslo. Second, I need to check the randomness of the key generator. Third the check the....., Fourth......
Therefore i'm looking for the simulation AES program.
Maybe anybody knows about that, please help?
you can get idea about simulation program from here.
http://islab.oregonstate.edu/koc/ece575/03Project/Held-Zier/
You are important person.
Thank you.
|
|
|
|
|
Sorry, but I don't know anything about an AES simulation program... I have used the .Net class in C# before to perform encryption, but that is about the extent of my knowlege. Sorry I can't be more help.
Jeff
|
|
|
|
|
Bimbaa wrote: you can get idea about simulation program from here.
that has the the AES program there in the link.
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
Hi El Corazon
Yeah that has a link of the simulation prog there. That prog is only demo version. I put that link in previous message for other to know about that. If you have any idea about simulation for AES, please share me your idea. I need to simulate my prog. Still looking for the simulation prog of the AES.
Thank you
Choices can result in failure, even if our intentions are good.
|
|
|
|
|
I don't know what is wrong with the site you have found, it includes a download of a visual studio project.
I'm not sure what you mean by the simulation program for AES, but if you use google you can find multiple source code listings of AES, including some linked from the NIST website which may have a reasonable pedigree.
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|
Simulation program, which is a program for to simulate with other similar models, looks like most operations inside model displays on the screen and It can show what process is going on the model by showing numbers, result or graphics. I can handle the simple AES coding easily. But the problem is that coding is not for simulation, that is only simple coding. I'm not so good ability at the coding. If simple makes into the coding then i can't simulate with others without taken measuring value of the operations inside and outside.
If somebody knows about simulation program for AES, please help?
The person, who are not sure,Please check this site out and take the some idea about simulation from the demo program.
Thnks
|
|
|
|
|
Bimbaa wrote: Simulation program, which is a program for to simulate with other similar models
That is the simulation program. It has all the internal operations and shows the ouput of the functioning parts, though not the processing within the functioning parts. For that you would simply have to add your own additional outputs. But everything is there.
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
Thanks for your leaving suggestion.
I told about no more ability at the programing previous time but if it had no choice then i would be faced to get someone has my coding for my simulation prog. Short time, maybe i can't make myself to coding for my simulation.
thank you
|
|
|
|
|
Bimbaa wrote: I told about no more ability at the programing previous time but if it had no choice then i would be faced to get someone has my coding for my simulation prog. Short time, maybe i can't make myself to coding for my simulation.
I think you are doing yourself a grave injustice. I do simulation often, knowing programming allows you to see inside the simulation much better. What one person wants to let you see is not necessarily what you want to see when looking inside. Learning a bit of programming is a good thing.
Good luck looking for a simulation that has everything you want, nothing that you don't want, and has been all laid out for you on a silver platter ready for you to use. That is a lot to hope for.
Good luck!
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
Ok. Sounds interesting that you always do simulation. I think maybe you can advice me about right or wrong way for my preferring simulation. If i follow explaining simulation below then is that correct way for my simulation? My algorithm is a stream algorithm and focused only on the numbers ?/input one byte/, /output 128 bytes/. Process of between input and output is around 4 to 8 rounds. Each round includes substitute, shift and inversion operations that work on the series of the input bytes. My algorithm is focused on the binary numbers only. This is why I don't want that my simulation is not like many standard simulations. I just want to make my simulation between mine and AES by certian criteria such as encryption and decryption time, key randomness, length of the key and design of the algorithm. If i get simulation results from that comparisons then it can be right simulation?
Thank you.
Knowledge is the perception of the agreement or disagreement of two ideas
John Locke
|
|
|
|
|
Simulation program, which is a program for to simulate with other similar models, looks like most operations inside model displays on the screen and It can show what process is going on the model by showing numbers, result or graphics. I can handle the simple AES coding easily. But the problem is that coding is not for simulation, that is only simple coding. I'm not so good ability at the coding. If simple makes into the coding then i can't simulate with others without taken measuring value of the operations inside and outside.
If somebody knows about simulation program for AES, please help?
The person, who are not sure,Please check this site out http://islab.oregonstate.edu/koc/ece575/03Project/Held-Zier/
and take the some idea about simulation from the demo program.
Thnks
|
|
|
|
|
Hi all,
I am looking to create a set of numbers that are random... yet not so random. I shall try and explain using the type of result that I want.
Lets say I want a 10000 numbers in my result, starting from 0.
The requirement is that each set of ten numbers (0-9, 10-19, ...) should contain all digits 0 to 9 in the units position. Extrapolating, each set of 100 numbers should contain 00 to 99 in the last two right-most positions... and similarly for each set of 1000s. The catch is that the digits (or set of digits) should not repeat...
I hope I have managed to explain clearly...
Is there an algorithm for this? Does it have a name?
All help appreciated.
Thank you in advance.
Chandra
|
|
|
|
|
I think that you can quickly accomplish this by assigning ordinately the requested numbers to an array and then randomly scrambling the array itself.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
CPallini wrote: I think that you can quickly accomplish this by assigning ordinately the requested numbers to an array and then randomly scrambling the array itself.
Thanks for your answer... but I'm not sure I get what you mean.
If I assign all numbers to an array, then should it not be some kind of "recursive scrambling", seeing that I need sub-groups also to contain all digits?
|
|
|
|
|
By your definition I guessed the set composed by all the numbers ranging from 0 to 10000 . Maybe my guess was wrong, let me know it.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
CPallini wrote: By your definition I guessed the set composed by all the numbers ranging from 0 to 10000. Maybe my guess was wrong, let me know it.
Ok, maybe I did not explain it well enough...
Maybe an example will help
I am giving below the first 10 numbers... of course this is only intended as an example, and not the numbers that I actually want.
21890
34775
54684
02397
17208
28116
59012
60271
72543
80849
In the above set of 10, you can see that the last digit occurs exactly once. Similar, the next set of 10 should also contain the digits 0 to 9 in the units position, and so on. The additional requirement being that the first set of 100 numbers should contain all numbers from 00 to 99 in the last two positions. In the above example, 10 of those are already filled in, leaving out the other 90.
I hope I have done a better job of explaining now
Thanks
Chandra
|
|
|
|
|
Now the task is clear; unfortunately I have no good idea (in fact no idea at all) about
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
CPallini wrote: Now the task is clear; unfortunately I have no good idea (in fact no idea at all) about
That's ok... thanks for your time.
|
|
|
|
|
I think Pallini actually has your answer. Think of it on a smaller scale at first...
With the numbers you gave, you just satisfied the first condition (Set of 10, ending in each digit from 0 to 9). Of course, just the numbers 0 to 9 would satisfy that condition.
Now move to the 100s... You basically need 100 numbers that end in 00-99, and 00, 01, 02, ... 98, 99 satisfies that condition. Move to the thousands, and the ten thousands, and there you are.
So technically, a set of 00000-99999 in order satisfies every condition except the randomness. If you want bigger numbers, you can just prepend a few random digits to each, the same way you use "21890" instead of just "0" in your example. Since the last N digits are unique, the number as a whole is unique.
So if I'm right so far, I have your answer.
Create an array of numbers from 0 to 99999 (Maximum - 1) such that Array[N] = N. Just to start off.
Start by randomly sorting each block of 10. First randomize elements 0-9, them 10-19, and so on.
Then sort the blocks themselves. Treat 0-9 as a cohesive unit, 10-19 as a unit, and so on. Sort each block of 100 as if it was comprised of ten blocks.
As you can probably see by now, you just move up one power of ten at a time. Next you sort each block of 1000, treating it as 10 blocks of 100 each, then the whole array as 10 blocks of 1000 each.
You could even do this backwards, first sorting the big blocks, then the little blocks.
At this point, the entire array is randomized, yet will still satisfy your conditions.
This will of course take quite a while if you use a larger set, but there are ways around that too. Use a tree instead. Build a tree where each node has ten children (Except the leaf nodes). These children start out as "0", "1", ..., "8", "9". Traverse the whole tree, level by level, and shuffle the children of each node. Then just traverse the tree to grab all of the shuffled numbers in order, and pipe them into an array. Someone elsewhere in the thread showed you how to quickly search for them.
Ok, this post is way longer than I intended, and I was going to leave the office over a half hour ago, so good luck
|
|
|
|
|
Hi
I think the tree is a really good idea...
As I said before, I have already written the bruteforce method that CPallini was talking about earlier.
I will try out the tree algorithm as it seems a more elegant solution to my problem.
Thank you for taking the time to look through this
Regards
Chandra
|
|
|
|
|
There is a brute force way to arrange these, but it is easier to describe a randomiser:
1. Start with the set of 10,000 numbers in order.
2. Generate a set of swap commands, swap the ith element with one n places away, i in [0,10000) n in [1,10000) with circular referencing. If the swap is within 10 places it always happens, if 10 - 99 places then it swaps with the nearest element in the range 10 - 99 with the same LSB, if 100 - 999 then to the nearest element with the same 2 LSB etc...
continue random swaps until the set is randomised.
To arrange by brute force:
1. generate 10000 random LSB so that each group of 10 contains {0,..,9}
2. for each group of 100 LSB's generate a random group of 100 next LSB's (i.e. 10 '0's, 10'1's etc) call these {Ai}. Assign these Ai as follows - Assign Ao to the first number. Then assign Ai with the lowest i such that the number formed by the two LSBs is not already in this group.
3. Do the same for the next LSB assigning 1000 numbers etc ..
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|
cp9876 wrote: There is a brute force way to arrange these, but it is easier to describe a randomiser:
1. Start with the set of 10,000 numbers in order.
2. Generate a set of swap commands, swap the ith element with one n places away, i in [0,10000) n in [1,10000) with circular referencing. If the swap is within 10 places it always happens, if 10 - 99 places then it swaps with the nearest element in the range 10 - 99 with the same LSB, if 100 - 999 then to the nearest element with the same 2 LSB etc...
continue random swaps until the set is randomised.
To arrange by brute force:
1. generate 10000 random LSB so that each group of 10 contains {0,..,9}
2. for each group of 100 LSB's generate a random group of 100 next LSB's (i.e. 10 '0's, 10'1's etc) call these {Ai}. Assign these Ai as follows - Assign Ao to the first number. Then assign Ai with the lowest i such that the number formed by the two LSBs is not already in this group.
3. Do the same for the next LSB assigning 1000 numbers etc ..
Thank you... I shall try and post back... I am already doing the brute force method, but the first one seems quite interesting.
Meanwhile, is it possible, given a number, to say exactly where in the list it is? Speed is of essence - I will need to give out the answers within a 20 second framework, considering that I will have close to 2 million numbers that will form the base list. I cannot use any database engine...
The reason in my original post to ask for any algorithm for the generation was to see if I could utilize the reverse of that to find the position of numbers too...
|
|
|
|
|
ChandraRam wrote: considering that I will have close to 2 million numbers that will form the base list. I cannot use any database engine
If you need 2 million numbers such that each number only occurs once, then it may be best to precompute as any calculation process has state information that includes all previous numbers (of the 2 million) that have been issued. Unless you can come up with an algorithm that uses less state information, you may need to store up to 2 million numbers - so precomputation may be attractive.
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|
The speed of the generation is not so much an issue (as in hours, is also OK) as the ability to instantly retrieve any number's position in the list...
|
|
|
|
|
Unless you have RAM issues, generate two arrays each of 2 million integers:
a[i] being the randomised numbers
b[j] such that b[a[i]] = i
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|