È un approccio valido per il multi-segno?

2

Requisiti:
Un "testo arbitrario" dovrebbe essere crittografato, e le chiavi distribuite tra 3 persone, almeno due chiavi sono necessarie per sbloccare.

Ecco come ho intenzione di farlo, per favore fatemi sapere se mi manca qualcosa:

  1. Crea quattro chiavi simmetriche (AES-256), ciascuna con IV diverso. chiamiamoli S0, S1, S2, S3
  2. Crea tre keypair RSA (lunghezza chiave 2048), chiamiamoli A1, A2, A3

Cifra il testo arbitrario di S0 (AES256, modalità padding ISO10126, Cypher mode CBC), consente di chiamare l'output come ENCTEXT

Encrypt S0 sequenzialmente da S1 e S2, consente di chiamare l'output come S0-S1S2
Encrypt S0 sequenzialmente da S2 e S3, consente di chiamare l'output come S0-S2S3
Encrypt S0 in sequenza da S3 e S1, consente di chiamare l'output come S0-S3S1

Encrypt S1 di A1-Public
Cifra S2 con A2-Public
Cifra S3 con A3-Public

  1. Condividi ENCTEXT, S0-S1S2, S0-S2S3, S0-S3S1, IV0, IV1, IV2, IV3, A1Public, A2Public, A3Public apertamente con tutti
  2. Condividi A1-Privato, A2-Privato, A3-Privato con rispettivi proprietari di chiavi.

Dì, se i proprietari di chiavi 2 e 3 vogliono sbloccare il testo, usano le loro chiavi private per sbloccare S2, S3 rispettivamente, quindi sbloccare S0 usando quello, e infine sbloccare l'ENCTEXT usando S0.

Funzionerebbe? Esiste una vulnerabilità dal momento che S0 viene crittografato ripetutamente da altre chiavi Sx e rivelato (anche se ognuna avrà la sua IV)?

Sono un principiante e ho raccolto la maggior parte delle scelte di cui sopra leggendo vari forum, apprezzerei molto la convalida degli esperti.

Modifica 8/26: Grazie Mike e Ricky. Entrambi erano buoni indicatori, ora capisco che il nome formale per l'approccio sopra è Threshold Encryption, e l'algoritmo di Secret Sharing di Samir è un altro modo per implementarlo. Vedo che la differenza tra l'approccio sopra e l'algoritmo di condivisione segreta di Samir è: un nuovo segreto dovrebbe essere condiviso per ogni messaggio se uso l'algoritmo di Samir, la logica sopra avrà bisogno di distribuire le chiavi segrete solo una volta, e usare le stesse chiavi pubbliche ogni tempo per i nuovi messaggi (ovviamente nuove chiavi simmetriche e IV ogni volta, ma la versione crittografata di esso viene distribuita apertamente come parte del messaggio crittografato stesso). Devo ora ripensare a quale approccio si adatta al mio caso d'uso.

    
posta Mano 24.08.2016 - 23:25
fonte

0 risposte

Leggi altre domande sui tag