https://safecurves.cr.yp.to/ (joint work between Daniel J. Bernstein, University of Illinois at Chicago, USA, and Tanja Lange, Technische Universiteit Eindhoven, Netherlands) has rated Curve25519 as "safe"
The specific reasons why CryptoNote creators chose Curve25519 are unclear but it appears to be trusted by top cryptographers.
Monero developers trust ...
The members of the MRL have all earned their PhD (which fact the website does not reflect at present) in various mathematical fields.
Their publications have received various levels of peer review. The RingCT paper, for instance, has been submitted to the Ledger journal, and has been approved to be included in the first edition.
To answer the two other ...
It will get wrapped around because it's later passed through sc_reduce32 function which performs mod l operation on the input.
See below example using silent Matt's big int library which is loaded with llcoins. Easiest to just open the developer tab and type stuff into JS console.
To calculate 2^252 + 27742317777372353535851937790883648493:
l = JSBigInt(2)...
You can check if a point is on the curve by attempting to decode it (it is checked as part of that).
In c this is here, but that doesn't make a lot of sense.
In python (ctrl+f "isoncurve", which is called by "decodepoint"), it's laid out pretty succinctly. It doesn't cost much.
Now, I realize this isn't the answer to your question, but I think it might be ...
They are all group elements (hence the ge_ prefix) and are different representations.
From some ed25519 source:
ge means group element.
Here the group is the set of pairs (x,y) of field elements (see fe.h)
satisfying -x^2 + y^2 = 1 + d x^2y^2
where d = -121665/121666.
ge_p2 (projective): (X:Y:Z) satisfying x=X/Z, y=Y/Z
Monero uses ed25519. The code in the github link you referenced (which I helped write) uses curve25519 instead of ed25519. The reason is that that code was to prototype RTRS RingCT, which relies heavily on variable base scalar multiplication. Curve25519 is higher performance at variable base scalar multiplication than ed25519.
Prior to switching that ...
Elliptic curve cryptography (ECC) is a form of public-key cryptography where mathematical properties of elliptic curves are used to ensure security of cryptographic methods used. This allows to perform the following in a secure way:
Public key encryption, where the sender can encrypt a message using the recipient's public key, and the recipient can decrypt ...