Hi, I'm running Internet Explorer 10 and when I go into manage add on, I see Java is enabled. However, when I try to run the applet in this link http://www.certicom.com/index.php/33-experiment-an-elliptic-curve-model-over-fp about elliptic curve cryptography, I'm unable to run it. I just get a separate window with the info: Can someone help me with this problem? Thanks, Jack
I went to the site with Firefox and had problems as well. Some of the links wouldn't work unless I right-clicked and selected to open the link in a new tab. When I did manage to get the app to run, my Java Console displayed issues about the file sizes and I declined to allow it to run at that point. I don't know enough about the site to know whether to trust their unsigned apps. Unsigned apps with incorrect file sizes are more than I wish to run on my computer. Sorry I couldn't be more help. Java Plug-in 10.25.2.17 Using JRE version 1.7.0_25-b17 Java HotSpot(TM) Client VM security: Grant socket perm for http://www.certicom.com/ecc_tutorial/classes/ : java.security.Permissions@523fa1 ( ("java.net.SocketPermission" "www.certicom.com" "connect,accept,resolve") ) security: Accessing keys and certificate in Mozilla user profile: null network: Created version ID: 1.7.0.25 network: Created version ID: 1.7.0.25 security: Blacklist revocation check is enabled security: blacklist: created: NEED_LOAD, lastModified: 1377637631070 security: blacklist: hasBeenModifiedSince 1377637631091 (we have 1377637631070) security: Trusted libraries list check is enabled basic: Embedding dialogs not enabled in Configuration security: blacklist: hasBeenModifiedSince 1377637631158 (we have 1377637631070) security: blacklist: hasBeenModifiedSince 1377637631164 (we have 1377637631070) network: CleanupThread used 278419 us basic: exception: User declined to run unsigned sandbox app.
Ok Borg. Thanks for looking at it. I could code it from scratch (in Mathematica). Just will take a lot of time but I am interested in the material so doing some of the coding will help me understand it better too.
I tried another site below that I have bookmarked and got the same issues with the exact same dates so it's probably some setting on my computer causing that message. BTW, if you're looking for physics applets, here's a good site with lots of applets. Math, Physics, and Engineering Applets
I tried in in IE8 in Windows XP. I got the standard MS security warning window "this is an uncertified application, are you sure you want to run it", answered yes, and it seemed to run OK (the state of the UI and display was a bit underwhelming but I hadn't read the web pages so I didn't really know what it was supposed to do). Seems like the standard Java "write once, debug everywhere" scenario...
Note: All this is only for integer (mod n) discrete log, not rationals or anything else. Adapt from http://www2.math.umd.edu/~lcw/MathematicaCode/crypto6.nb In[1]:= addell[p1_, p2_, a_, b_, n_] := Module[{z, m, x3, y3, p3, z1}, z = 0; z1 = 1; If[p1 == {"infinity", "infinity"}, p3 = p2; z = 1, " "]; If[z == 1, " ", If[p2 == {"infinity", "infinity"}, p3 = p1; z = 1, " "]]; If[z == 1, " ", If[p1[[1]] == p2[[1]] && p1[[2]] == p2[[2]] == 0, p3 = {"infinity", "infinity"}; z = 1, " "]]; If[z == 1, " ", If[p1[[1]] == p2[[1]] && p1[[2]] != p2[[2]], p3 = {"infinity", "infinity"}; z = 1, " "]]; If[z == 1, " ", If[p1 == p2 && GCD[p1[[2]], n] != 1 && GCD[p1[[2]], n] != n, z = 1; z1 = GCD[p1[[2]], n], " "]]; If[z == 1, " ", If[p1 == p2, m = Mod[(3*p1[[1]]^2 + a)*PowerMod[2*p1[[2]], -1, n], n]; z = 1; x3 = m^2 - p1[[1]] - p2[[1]]; y3 = m*(p1[[1]] - x3) - p1[[2]]; p3 = Mod[{x3, y3}, n], " "]]; If[z == 1, " ", If[GCD[p2[[1]] - p1[[1]], n] != 1, z = 1; z1 = GCD[p2[[1]] - p1[[1]], n], " "]]; If[z == 1, " ", m = Mod[(p2[[2]] - p1[[2]])*PowerMod[p2[[1]] - p1[[1]], -1, n], n]; x3 = m^2 - p1[[1]] - p2[[1]]; y3 = m*(p1[[1]] - x3) - p1[[2]]; p3 = Mod[{x3, y3}, n]]; If[z1 == 1, p3, {"factor=", z1}]]; Now use that to solve the discrete log problem. dlog[{px,py},{qx,qy},a,b,n] finds the discrete log k of p*k==q on the curve y^2==x^3+ax+b mod n In[2]:= dlog[p_, q_, a_, b_, n_] := Module[{r}, r = p; For[k = 1, k < 2*n, k++, r = addell[r, p, a, b, n]; If[r == q, Break[]]]; k + 1]; Test this on http://www.certicom.com/index.php/52-the-elliptic-curve-discrete-logarithm-problem In[3]:= dlog[{16, 5}, {4, 5}, 9, 17, 23] Out[3]= 9 Test this on http://modular.math.washington.edu/edu/2007/spring/ent/ent-html/node89.html In[4]:= dlog[{2, 2}, {0, 6}, 1, 1, 7] Out[4]= 3 Test this on https://www.crm.cat/Paginas/Conferences/0607/ContentSecurity/Slides/Leprevost.pdf In[5]:= dlog[{1, 237}, {190, 271}, 71, 602, 1009] Out[5]= 419 Please test this on lots more examples, and possibly even reverse engineer the code to try to prove correctness, before you even begin to think about trusting it. And this is brute force sequential searching for the discrete log, so if you are thinking of trying anything more than 24 bit coefficients you should expect to wait a very long time. And on the comment "Seems like the standard Java "write once, debug everywhere" scenario..." Rule 1: EVERY internet service will be abused. Rule 2: NOBODY effectively plans for Rule 1. Java seemed like it was very good, at least until every petty criminal and moron on the planet tried hijacking every computer they could find and web browser authors started shoveling in partly baked, broken and very late attempts at fixing their security cess pool products.
Well dang Big. I asked to watch the movie and you brought the crew! I'm looking at the code and will work with it. There was a thread in the math forum asking why elliptic curves are important. I hadn't a clue until I started looking into it. Very interesting subject for me. The objective now is to write a short (one screen-full) exposition describing what it means in such a way that an educated novice would understand the underlying principles. :) Yeah, I think the Java problem is due to it not being compatible with newer versions of IE. That's ok. I can work with the code above. Thanks guys for looking into it! Jack
I didn't realize you wanted a movie, I assumed you wanted simple code to understand. Perhaps this "movie" will provide more what you are looking for. http://demonstrations.wolfram.com/AdditionOfPointsOnAnEllipticCurveOverTheReals/ Unfortunately it seems to me that, by the time someone gets done with all the layers of stuff it takes to turn it into a movie, the code for the demonstrations is usually much more complicated than the code for a simple example would be. It might be possible with enough work to simplify that code even more and make the process even more obvious. Having a very small very simple elliptic curve example would seem helpful to other people, but I didn't find one in my quick search and it has been far too long since I've looked at this to be able to write that myself on the first, or second or third, try.
Java applets are now problematic on Windows. They keep getting disabled on my three Windows 8 machines whenever I update the OS. Then I struggle to get them running the browsers again, because one of my favorite games (Four Rivers) is only available as a Java applet. Sigh.