Рейтинг:1

Тестовые векторы (точки) для Ed25519

флаг vn

Я пытаюсь проверить реализацию Ed25519, но не могу найти тестовые векторы для точек кривой.Все тестовые векторы ориентированы непосредственно на конструкции подписи (EdDSA).

я пытался использовать https://asecuritysite.com/ecc/nacl07 но это, кажется, дает неправильные результаты. Например, он сообщает, что аффинные координаты точки 5G:

х = 49384254074273129950593193138861175954739393969723597783743362437597626495704

у = 100993238402330024465140605900252962566919016078863090678826226962847795431661

но это даже не на кривой ... Существуют ли какие-либо надежные эталонные тестовые векторы для проверки общих операций на Ed25519?

kelalaka avatar
флаг in
В разделе Ed25519 уже есть код Python. Раздел 6.
Рейтинг:1
флаг es

Просто используйте надежную библиотеку для создания тестовых векторов. Например, используя эллиптический:

const elliptic = require('elliptic');
const ed25519 = new require('elliptic').eddsa('ed25519');
const BN = требуется ('bn.js');

функция printPointInfo(описание, P) {
  console.log(`${desc}: hex: ` + elliptic.utils.toHex(ed25519.encodePoint(P)));
  console.log(`${desc}: координата x: ` + P.getX());
  console.log(`${desc}: координата y: ` + P.getY());
  консоль.лог();
}

пусть G = ed25519.curve.g;
пусть a = '12581e70a192aeb9ac1411b36d11fc06393db55998190491c063807a6b4d730d';
пусть б = '0c2340b974bebfb9cb3f14e991bca432b57fb33f7c4d79e15f64209076afcd00';
пусть aG = G.mul(elliptic.utils.intFromLE(a));
пусть bG = G.mul(elliptic.utils.intFromLE(b));
printPointInfo('G', G);
printPointInfo('2G', G.mul(новый BN(2)));
printPointInfo('5G', G.mul(новый BN(5)));
printPointInfo('АГ', АГ);
printPointInfo('bG', bG);

Ожидаемый результат:

G: шестнадцатеричный: 5866666666666666666666666666666666666666666666666666666666666
G: x-координата: 15112221349535400772501151409588531511454012693041857206046113283949847762202
G: координата Y: 46316835694926478169428394003475163141307993866256225615783033603165251855960

2G: шестнадцатеричный: c9a3f86aae465f0e56513864510f3997561fa2c9e85ea21dc2292309f3cd6022
2G: x-координата: 24727413235106541002554574571675588834622768167397638456726423682521233608206
2G: координата Y: 15549675580280190176352668710449542251549572066445060580507079593062643049417

5G: шестнадцатеричный: edc876d6831fd2105d0b4389ca2e283166469289146e2ce06faefe98b22548df
5G: x-координата: 33467004535436536005251147249499675200073690106659565782908757308821616914995
5G: координата Y: 43097193783671926753355113395909008640284023746042808659097434958891230611693

aG: шестнадцатеричный: 14e35209936de59710e4a3a55b1887a6f3a390c0b1b2d132a0158ff3b60581e0
aG: x-координата: 46953515626174660128743374276590207025464948126956050456964432034683890442435
aG: координата Y: 43649996176441760651255662656482711906128939437336752974722489909985414406932

bG: шестнадцатеричный: cca4cc575d5eb9057834ad8b759272d37feb95c9f7197bf251814f37a4413f1d
bG: x-координата: 48108495825706412711799803692360228025391948835486250305831184019146948949994
bG: координата y: 13228837014764440841117560545823854143168584625415590819123131242008409842892

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.