ECSearch is a procedure that searches for a point on a given elliptic curve with first coordinate between "lowerbound" and "upperbound". The lowerbound and the upperbound are positive random numbers.
ECAdd is a procedure that computes the sum of two points on a given elliptic curve using the elliptic curve operation.
ECTimes is a procedure that adds a point k-times (scalar) to itself for a given elliptic curve using the elliptic curve operation.
[3, 2, 11696876878768768767867687687687687678768768766876879878131]
[2378648723, 6207257298628741512609567607483777943219211043692587796100]
34239473274983742
Example. Create an elliptic curve public and private key.
[3, 2, 1169687687876876876786768768768768767876876876687687987811546546545646659]
[2378648723, 251129725725808360916423247622071249545935346397519406481708557006516860]
34239473274983742
[102185937035780644447440724514674909408114529521257498878576073830758885, 29294782479764415939896071953678258471598161093478693795502004627180723]
Example. Encrypt the plaintext "Cryptology" using the the elliptic curve and the key created in the previous example. The tolerance parameter is T=40.
[[6688568848488648448328448128842, 30713016421388513534069392095726691904699597855212477624228805094571897]]
34239473274983742
[102185937035780644447440724514674909408114529521257498878576073830758885, 29294782479764415939896071953678258471598161093478693795502004627180723]
[531594751936260343069237726792546775307287241364648309851908704952472378, 62836598762052693815835015170177315163174591233643267255681661239022069]
[60725488831383488099275639299974627203302101759526710107542683749459307, 786886098612758367049369768966181063935118105698230786854120868069958151]
Example. Decrypt the ciphertext from the previous example. IN CLASS!
Example. Encryption of a plaintext represented by a list of points in the elliptic curve group G.
[[7368168208605288208605287885288328448408128048565288048807888368488320, 121486482953176117528000809881749947571671902330970782925843120215624872], [8045845286928645288688608048605288368688328648208488328045288488448200, 903695374841292322370271174415204218208659055675797121100003842392500926], [8408648605845287368168045288488448208408648605287888568045288328208600, 452563156195183222674654981175834124068138520541249589841058897891287244], [8648048005288568208128168645287928048328448765287888408005288648168040, 354133454203841855971589741317387587553570850607256693528118869301689901], [8405288648168045288567888408008448365288408688367928048565287968168440, 566116327420959706426335734957260808053541488054698602617229920903468133], [8608048405287888408005288648168045288327888608645288448688648488688641, 190989246142380934866236751363212697612118794496744686603811386587621417], [5288208605288168448765288367888408845288488448208408648605287888568041, 425171620928964741474599056379821932316091568940530183178971060551595853], [5288408048048008048005840, 1036270550319895031743093327765070280126725147090778246179870977799274707]]
3423947327498374254646554654645
8
[502800681108808127999931477346298640902458497799276570157831511464842627, 249433093957737059630763632764052800806824499724831296249200563703070996]
[758836381415980725873880391356898132106948925841767677664020161182662238, 172885080124927030627775664387974993851680223072695154225919344264781309]
[[993011997632563665090520795819224461956877820256329108993458876624168267, 486967488472059785832649245344787601820108477716142036228174305706008047], [1025130127158111391286114497628784310721816018761263921410307202662962155, 1046214728711544478045606234428908877874990102826941182072699504231466650], [702163857070541572271486478402213299769149650327011285713214313411220209, 964390034282681070472559926854266573294570007713258722688970731401446070], [545974440942587589793355643326618406027250242128080874758407596428510512, 761850948586179337743907452723161818650832861623511156392451479702387930], [1007560043455625957074409098454581056661266112007216804759867237444073697, 568301847329160573315400903846138202220379078132258736522271094761757556], [197721450177956824925214814076136877509231101020546157774722389794437045, 364710051200340597882807263315974397500183542853128578183482144214813413], [1040787630887710087842592894781064728294150449155777473810980176110345869, 209262206482771129037093161089704974346792207851381833556910011562779092], [817585719106595758704863067855703256513213471986817100166846551663829691, 537939259557282367210288215732191700156429531225372888960276076554578723]]
[758836381415980725873880391356898132106948925841767677664020161182662238, 172885080124927030627775664387974993851680223072695154225919344264781309]
[[7368168208605288208605287885288328448408128048565288048807888368488320, 121486482953176117528000809881749947571671902330970782925843120215624872], [8045845286928645288688608048605288368688328648208488328045288488448200, 903695374841292322370271174415204218208659055675797121100003842392500926], [8408648605845287368168045288488448208408648605287888568045288328208600, 452563156195183222674654981175834124068138520541249589841058897891287244], [8648048005288568208128168645287928048328448765287888408005288648168040, 354133454203841855971589741317387587553570850607256693528118869301689901], [8405288648168045288567888408008448365288408688367928048565287968168440, 566116327420959706426335734957260808053541488054698602617229920903468133], [8608048405287888408005288648168045288327888608645288448688648488688641, 190989246142380934866236751363212697612118794496744686603811386587621417], [5288208605288168448765288367888408845288488448208408648605287888568041, 425171620928964741474599056379821932316091568940530183178971060551595853], [5288408048048008048005840, 1036270550319895031743093327765070280126725147090778246179870977799274707]]
'This is a longer example. It uses multiple points. The points are listed right below and then the random number chosen and the last output is how many points are needed.'
ECSearch is a procedure that searches for a point on a given elliptic curve with first coordinate between "lowerbound" and "upperbound". The lowerbound and the upperbound are positive random numbers.
ECAdd is a procedure that computes the sum of two points on a given elliptic curve using the elliptic curve operation.
ECTimes is a procedure that adds a point k-times (scalar) to itself for a given elliptic curve using the elliptic curve operation.
[3, 2, 11696876878768768767867687687687687678768768766876879878131]
[2378648723, 6207257298628741512609567607483777943219211043692587796100]
34239473274983742
Example. Create an elliptic curve public and private key.
[3, 2, 1169687687876876876786768768768768767876876876687687987811546546545646659]
[2378648723, 251129725725808360916423247622071249545935346397519406481708557006516860]
34239473274983742
[102185937035780644447440724514674909408114529521257498878576073830758885, 29294782479764415939896071953678258471598161093478693795502004627180723]
Example. Encrypt the plaintext "Cryptology" using the the elliptic curve and the key created in the previous example. The tolerance parameter is T=40.
[[6688568848488648448328448128842, 30713016421388513534069392095726691904699597855212477624228805094571897]]
34239473274983742
[102185937035780644447440724514674909408114529521257498878576073830758885, 29294782479764415939896071953678258471598161093478693795502004627180723]
[531594751936260343069237726792546775307287241364648309851908704952472378, 62836598762052693815835015170177315163174591233643267255681661239022069]
[60725488831383488099275639299974627203302101759526710107542683749459307, 786886098612758367049369768966181063935118105698230786854120868069958151]
Example. Decrypt the ciphertext from the previous example. IN CLASS!
Example. Encryption of a plaintext represented by a list of points in the elliptic curve group G.
[[7368168208605288208605287885288328448408128048565288048807888368488320, 121486482953176117528000809881749947571671902330970782925843120215624872], [8045845286928645288688608048605288368688328648208488328045288488448200, 903695374841292322370271174415204218208659055675797121100003842392500926], [8408648605845287368168045288488448208408648605287888568045288328208600, 452563156195183222674654981175834124068138520541249589841058897891287244], [8648048005288568208128168645287928048328448765287888408005288648168040, 354133454203841855971589741317387587553570850607256693528118869301689901], [8405288648168045288567888408008448365288408688367928048565287968168440, 566116327420959706426335734957260808053541488054698602617229920903468133], [8608048405287888408005288648168045288327888608645288448688648488688641, 190989246142380934866236751363212697612118794496744686603811386587621417], [5288208605288168448765288367888408845288488448208408648605287888568041, 425171620928964741474599056379821932316091568940530183178971060551595853], [5288408048048008048005840, 1036270550319895031743093327765070280126725147090778246179870977799274707]]
3423947327498374254646554654645
8
[502800681108808127999931477346298640902458497799276570157831511464842627, 249433093957737059630763632764052800806824499724831296249200563703070996]
[758836381415980725873880391356898132106948925841767677664020161182662238, 172885080124927030627775664387974993851680223072695154225919344264781309]
[[993011997632563665090520795819224461956877820256329108993458876624168267, 486967488472059785832649245344787601820108477716142036228174305706008047], [1025130127158111391286114497628784310721816018761263921410307202662962155, 1046214728711544478045606234428908877874990102826941182072699504231466650], [702163857070541572271486478402213299769149650327011285713214313411220209, 964390034282681070472559926854266573294570007713258722688970731401446070], [545974440942587589793355643326618406027250242128080874758407596428510512, 761850948586179337743907452723161818650832861623511156392451479702387930], [1007560043455625957074409098454581056661266112007216804759867237444073697, 568301847329160573315400903846138202220379078132258736522271094761757556], [197721450177956824925214814076136877509231101020546157774722389794437045, 364710051200340597882807263315974397500183542853128578183482144214813413], [1040787630887710087842592894781064728294150449155777473810980176110345869, 209262206482771129037093161089704974346792207851381833556910011562779092], [817585719106595758704863067855703256513213471986817100166846551663829691, 537939259557282367210288215732191700156429531225372888960276076554578723]]
[758836381415980725873880391356898132106948925841767677664020161182662238, 172885080124927030627775664387974993851680223072695154225919344264781309]
[[7368168208605288208605287885288328448408128048565288048807888368488320, 121486482953176117528000809881749947571671902330970782925843120215624872], [8045845286928645288688608048605288368688328648208488328045288488448200, 903695374841292322370271174415204218208659055675797121100003842392500926], [8408648605845287368168045288488448208408648605287888568045288328208600, 452563156195183222674654981175834124068138520541249589841058897891287244], [8648048005288568208128168645287928048328448765287888408005288648168040, 354133454203841855971589741317387587553570850607256693528118869301689901], [8405288648168045288567888408008448365288408688367928048565287968168440, 566116327420959706426335734957260808053541488054698602617229920903468133], [8608048405287888408005288648168045288327888608645288448688648488688641, 190989246142380934866236751363212697612118794496744686603811386587621417], [5288208605288168448765288367888408845288488448208408648605287888568041, 425171620928964741474599056379821932316091568940530183178971060551595853], [5288408048048008048005840, 1036270550319895031743093327765070280126725147090778246179870977799274707]]
'This is a longer example. It uses multiple points. The points are listed right below and then the random number chosen and the last output is how many points are needed.'