I need a function in C that:
1- takes base, exponent, and modulus .i.e. modular_pow(base, exponent, modulus).
The base is binary and it is 128-bits, the exponent is integer and it is 128-bits, and the modulus is integer and it is 512-bits. Since C has no primitive data types that can hold 128-bits or 512-bits, you many need to use char!! then converting char to integer for multiplications and for taking the modulus.
2- The function must perform Square and Multiply algorithm the Right-to-left binary method, this algorithm reduce the complexity. i.e. 2^23 need only 9 multiplications instead of 22. Here is the pseudocode.
modular_pow(a, e, n)
convert e to binary: ks ks-1 ... k1 k0
b = a^b0 ; c = a;
for(i=1, i<=s; i++) {
c = c*c mod n;
if (ki == 1)
b = b * c mod n ;
}
return b;
3- Must works on Arduino UNO.
Before you propose, please please make sure that you fully understand the complexity of this function!!.
Hi, Dear Employer!
How are you?
I am really interested in your project.
I have enough experience on python, C/C++, C#, java programming.
I am 100% sure i can satisfy your requirements perfectly.
User-Friendly Interface And Clear Algorithm Will Encourage Your Project.
I want a long term relationship with you.
Thank you and best regards!
Hi. I have an Arduino UNO to test this on. Would it be okay if I need to resort to assembly code for certain functionality? (It might not be necessary - but I just wanted to check.)
I certainly don't regard myself as an "expert in number theory" (or even C for that matter) - but I don't think this requires expert level to be honest.
Is it the RSA algorithm you are trying to implement?
I am based in Ireland - GMT timezone.
Honorable Seniors.I have experience in developing C++, Java, Python developer with 7+ years.
I can complete your project perfectly because I have experience in that filed.
I will work for you all my best. Thank you in advance for your time and consideration. I look forward to working with you soon.
- Desktop Application: C/C++/C#, Java/JavaFX, ASP.NET, Python, OpenCV, OCR, OpenGL.
- Other Application: Matlab, Haskell, Mathematics.
Hello ,
I have bachelor's degree in computer science and i have been programming in C/C++ for both linux and windows
for more than 8 years.I have written various network applications some of which are down to the IP packet level.
I have written a linux based network packet analyzer without using except the standard C library.
and also written simple versions of network diagnostic tools ping and traceroute.
With extensive knowledge cryptology and underlying mathematics.
Additionally I have previous experience with intel assembly.
And i have implemented the binary method in C a few years ago so i have it ready.
let me know if you're interested.
I don't have an actual Arduino UNO so I will implement and test the code in a virtual Uno simulation environment. By the way, did you mean C++ instead of C?
How r u?Bro,,No need of heavy budgets for simple projects like this. Its a task of an hour or two. U will feel brotherhood,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Hi.
I have read your requirements.
Inbox me for more detail.
I guarantee high work, quickly answer your message and responsibilities.
I would like to do job first with your 100% satisfaction and then paid I am great in C++/C
so looking forward to hearing from you. Thank you for the opportunity!!
Regards,
Sohaib
I am a computer science and engineering undergraduate with a lot of knowledge in languages like C and optimization in algorithm level using number theory.
Requirement Details:
- Need to implement modular_pow module in C
- Understood Right to Left Algorithm to implemented for minimum multiplication
- Need to run the code on Arduino UNO
Constraints:
- the base and exponent size is 128-bits and the modulus size is 512-bits
- whereas C Support max of 64 bit as datatypes
My Skill:
-Having the experience in C Programming of 12 years.
-Having the experience in Optimizing the C source for Embedded Processor.
-Having wide experience in implementing C programming for various DSP Processor.
Solution:
- Variable size 128/512 bits can be implemented as you suggested using char or this can be done using data structure i.e user defined data types and using it, it will be handled easily with multiplication operation.
Based on your requirement, it can be optimized in term of time.
So please feel free to contact in case if you have any query.
I'm eager to take up this project and provide best result.
Thanks!
Regards,
sakthi
i have done something similar to this before in c , as i used to multiply and add long number 1000 digit we could extend it if you want . i have used to take numbers as char and compute operation on them .
just contact me to show you samples .
I am in the Final year of my graduation in Computer Science and Engineering. I have a strong command over programming in C. I am also among top 500 coders in Data Structures at HackerEarth, one of the leading platform for competitive coding.
I would ensure minimum memory use in program and on time delivery of the project.
I am a good programmer and I have a lot of experience in C programming. Algoritms is one of my strongest field. I have also read this algorithm and I fully understand the complexity of this algorithm. I also understand that the complexity of this project lies in the handling of numbers in char pointers. Since I am new to this website, I don't have good ratings but I have a good programming experience than these ratings say about me.
I am ready to write the function you asked for.
I understand the complexity of the function but I know I can write it.
The only thing is that I do not know anything about Arduino UNO.