From 0e8b826b88bcdceaa86f496600be99ff0128d0a4 Mon Sep 17 00:00:00 2001 From: mii8080 <39086319+morioka22@users.noreply.github.com> Date: Thu, 7 Jul 2022 02:25:30 +0000 Subject: [PATCH] add gpsl submodule --- .gitmodules | 3 +++ gpsl | 1 + src/main.rs | 31 +++++++++++++++++++------------ 3 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 .gitmodules create mode 160000 gpsl diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..21c87fa --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "gpsl"] + path = gpsl + url = https://github.com/morioka22/gpsl diff --git a/gpsl b/gpsl new file mode 160000 index 0000000..8805271 --- /dev/null +++ b/gpsl @@ -0,0 +1 @@ +Subproject commit 88052718015a612386d39dfe74c9670597772fdd diff --git a/src/main.rs b/src/main.rs index 5506238..2b3d5be 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,26 +1,33 @@ use encrypt::{elliptic_curve::elliptic_curve::EllipticCurvePoint, common::finite_field::FiniteFieldElement}; use primitive_types::U512; - +/* +[6139062701328441600, +[258929920560, 23709360], +[[Mod(3308825380872319861, 6139062703770505681), Mod(4839630718792142583, 6139062703770505681)], +[Mod(4767914906170010398, 6139062703770505681), Mod(2445476831433994309, 6139062703770505681)]]] + */ fn main() { - let p = U512::from_str_radix("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37", 16).unwrap(); + let p = U512::from_str_radix("6717051393902806321", 10).unwrap(); let secp256_k1_a = FiniteFieldElement::new(U512::from(0u8), p); - let secp256_k1_b = FiniteFieldElement::new(U512::from(3u8), p); + let secp256_k1_b = FiniteFieldElement::new(U512::from_str_radix("1603830326921046894", 10).unwrap(), p); - let g = { - let x = FiniteFieldElement::new(U512::from_str_radix("DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D", 16).unwrap(), p); - let y = FiniteFieldElement::new(U512::from_str_radix("9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D", 16).unwrap(), p); + let P = { + let x = FiniteFieldElement::new(U512::from_str_radix("3410381082791005532", 10).unwrap(), p); + let y = FiniteFieldElement::new(U512::from_str_radix("3959394867921462649", 10).unwrap(), p); EllipticCurvePoint::Point { x, y, a: secp256_k1_a, b: secp256_k1_b } }; - let p = g * U512::from_str_radix("2343432432243", 10).unwrap(); - let q = g * U512::from_str_radix("4233434343432443243", 10).unwrap(); - let r = U512::from_str_radix("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D", 16).unwrap(); + let Q = { + let x = FiniteFieldElement::new(U512::from_str_radix("6030658041738565471", 10).unwrap(), p); + let y = FiniteFieldElement::new(U512::from_str_radix("34549622697239310", 10).unwrap(), p); + EllipticCurvePoint::Point { x, y, a: secp256_k1_a, b: secp256_k1_b } + }; + let r = U512::from_str_radix("1135596179020030", 10).unwrap(); - let f = EllipticCurvePoint::weil(p, q, r); - let f1 = EllipticCurvePoint::weil(p.exp(U512::from(2u8)), q.exp(U512::from(1u8)), r); + let f = EllipticCurvePoint::weil(P, Q, r); - println!("{}", search(f, f1)); + println!("{}", f); } pub fn search(base: FiniteFieldElement, target: FiniteFieldElement) -> U512 {