Bloms schema är ett symmetriskt tröskelnyckelutbytesprotokoll i kryptografi . Upplägget föreslogs av den svenske kryptografen Rolf Blom i en serie artiklar i början av 1980-talet.
En betrodd part ger varje deltagare en hemlig nyckel och en offentlig identifierare, vilket gör det möjligt för två deltagare att oberoende skapa en delad nyckel för kommunikation. Men om en angripare kan äventyra nycklarna för minst k användare, kan de bryta schemat och rekonstruera varje delad nyckel. Bloms plan är en form av tröskelhemlighetsdelning .
Bloms schema används för närvarande av kopieringsskyddsschemat HDCP (endast version 1.x) för att generera delade nycklar för högupplösta innehållskällor och mottagare, såsom HD DVD- spelare och högupplösta TV-apparater .
Protokollet
Nyckelutbytesprotokollet involverar en betrodd part (Trent) och en grupp av användare. Låt Alice och Bob vara två användare av gruppen.
Protokollinställning
Trent väljer en slumpmässig och hemlig symmetrisk matris över det finita fältet , där p är ett primtal . krävs när en ny användare ska läggas till i nyckeldelningsgruppen.
Till exempel:
Infogar en ny deltagare
Nya användare Alice och Bob vill gå med i nyckelutbytargruppen. Trent väljer offentliga identifierare för var och en av dem; dvs k-elementvektorer:
.
Till exempel:
Trent beräknar sedan sina privata nycklar:
Använd enligt beskrivningen ovan:
Var och en kommer att använda sin privata nyckel för att beräkna delade nycklar med andra deltagare i gruppen.
Beräknar en delad nyckel mellan Alice och Bob
Nu vill Alice och Bob kommunicera med varandra. Alice har Bobs identifierare och hennes privata nyckel .
Hon beräknar den delade nyckeln , där betecknar matristransponering . Bob gör detsamma med sin privata nyckel och hennes identifierare, vilket ger samma resultat:
De kommer var och en att generera sin delade nyckel enligt följande:
Attackmotstånd
För att säkerställa att minst k nycklar måste komprometteras innan varje delad nyckel kan beräknas av en angripare, måste identifierare vara k-linjärt oberoende: alla uppsättningar av k slumpmässigt valda användaridentifierare måste vara linjärt oberoende. Annars kan en grupp illvilliga användare beräkna nyckeln för alla andra medlemmar vars identifierare är linjärt beroende av deras. För att säkerställa denna egenskap ska identifierarna företrädesvis väljas från en MDS-kodmatris (maximal distans separerbar felkorrigeringskodmatris). Raderna i MDS-matrisen skulle vara användarnas identifierare. En MDS-kodmatris kan väljas i praktiken med hjälp av kodmatrisen för Reed–Solomon felkorrigeringskod (denna felkorrigeringskod kräver endast lättbegriplig matematik och kan beräknas extremt snabbt).