Создайте несколько общих секретов в (самодельной) инфраструктуре открытых / приватных ключей - PullRequest
0 голосов
/ 27 декабря 2018

Я просто пытаюсь понять криптографию, пожалуйста, будьте осторожны.Это не предназначено, чтобы быть безопасным или профессиональным.Я создаю 3 номера для каждой партии.открытый ключ, секретный ключ и модуль.Первая сторона (A) создает свои ключи

let pri = 133
let mod = 256
let pub = mod - pri

и делится "модом" и "пабом" с другими участниками (B, C).Когда B хочет зашифровать строку, он берет открытый ключ и модуль A и делает

// B encrypts
let enc = ( input + pubA ) % modA

A на своей стороне делает

// B decrypts
let dec = ( enc + priA) % modA

, чтобы расшифровать ее.Моя проблема в том, что я могу создать несколько пар ключей, но только 1 связанный открытый ключ с каждым секретным ключом, потому что мне нужно разделить модуль каждой пары для en / decryption.

Можно ли (в этой ситуации) создать несколько публичных номеров для одного частного номера?И если да, то как я могу это сделать?

Спасибо (и извините, если это плохой вопрос)

РЕДАКТИРОВАТЬ Даже если это не "хорошо" для созданияваш собственный шифр, я хочу сделать это ..

Я понял, что пропустил секретный показатель d, так что фи делит (e * expo) -1.

/* Pseude code */

p = q = primes()
n = p * q
phi = (p-1) * (q-1)

e = 3
d = ? // <-- have to find my own secret exponent!

if( gcd(e, p-1) != gcd(e, q-1) ) exit(0)

expo = 0
for(expo < 100000)
    if( (e * expo)-1 == phi ) ) d = expo

И поэтому у меня может быть

public(n,e)
private(n,d)

, чтобы я мог поделиться (n, e).Это правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...