mboost-dp1

SXC - clix

Stort skridt fremad for homomorf kryptografi

- Via ScienceDaily - , redigeret af Pernicious

Forestil dig at du kunne besvare et spørgsmål uden at vide hvad spørgsmålet var. Dette er, populært sagt, en af kryptografiens hellige graler. Såkaldt homomorf kryptografi gør det muligt at foretage beregninger på krypterede værdier, således at man kan bestemme resultatet af en beregning uden at kende værdierne selv. Kan man både foretage addition og multiplikation på denne måde er det muligt udføre en hvilken som helst matematisk operation på værdierne.

Hidtil har det været muligt at udføre enten addition eller multiplikation vidensløst, men ikke begge dele med samme system. Men nu har den britiske kryptolog Nigel Smart gjort fremskridt mod et fuldt homomorft kryptosystem, der understøtter begge operationer. Selvom systemet ikke er helt praktisk at anvende endnu, og kun kan udføre relativt små operationer, ses det som et vigtigt skridt på vejen til system, der kan operere helt vidensløst på matematiske værdier.

Et sådant system ville kunne få stor betydning for bl.a. cloud computings fremtid, da det ville gøre det muligt at uploade krypterede data til skyen, og lade servercomputere behandle dem og returnere et resultat – uden nogensinde at vide hvad de oprindelige data var. Dermed minimeres en af de største ulemper ved cloud computing, nemlig problematikken omkring datasikkerheden.

Andre områder hvor fuld homomorf kryptografi forventes at kunne få betydning er ved statistiske beregninger, da forskellige organisationer vil kunne udføre fælles statistikker uden at afsløre sine fortrolige data til hinanden, og elektroniske valg, hvor en valgholder vil kunne tælle alle stemmer sammen uden at vide hvad de enkelte stemmer er.





Gå til bund
Gravatar #1 - el_barto
1. jun. 2010 07:02
Nu udstiller jeg lige min egen uvidenhed, men man kan da ikke "besvare et spørgsmål uden at vide hvad spørgsmålet var"?

I det mindste ikke uden ledetråde :)
Gravatar #2 - ghostface
1. jun. 2010 07:02
*wooooosh* det var lige homomorf kryptografi der fløj totalt hen over hovedet på mig :)

Jeg bryster mig ikke med at være noget geni men skulle da mene jeg har haft evnerne til at sætte mig ind i lidt af hvert. Her må jeg dog give op. Det er simpelthen over min fatteevne hvordan det kan være muligt at udføre matematik på krypterede værdier.

Igennem hele artiklen sprang det rundt i mit hovede med forskellige problematikker omkring sikkerheden men måtte i sidste ende indrømme at en post hvori jeg skrev dem ned ville være ren varm luft. (nu kan jeg se at #1 ikke helt har samme pli som mig :P)

Hvis nogen helt down to basic kan forklare hvordan det gøres (ikke nødvendigvis med et praktisk eksempel :D) så gør det endeligt.
Gravatar #3 - Anderslm
1. jun. 2010 07:13
Av!

Mit hoved gør ondt!
Gravatar #4 - el_barto
1. jun. 2010 07:13
Jeg retter lige mig selv - svaret var naturligvis 42...Doh!
Gravatar #5 - angelenglen
1. jun. 2010 07:17
Hvis man kan udføre matematiske beregninger på noget, uden at vide hvad den oprindelige værdi var, kan man så ikke beregne baglæns?

Fx hvis jeg udfører operationen "<hemmeligt tal> + 1" og får resultatet 101, så ved jeg da at det hemmelige tal var 100 ?

Jeg er 100 % sikker på jeg ikke har forstået det, for hvis jeg har forstået det korrekt, er der pludselig ingen sikkerhed i at kryptere data længere?
Gravatar #6 - mathiass
1. jun. 2010 07:18
#1: Nyheden er også ret fattig på forståelse og sensationspræget som det jo skal være på newz.
Jeg er ikke den store ørn til kryptologi, men jeg forstår det som noget i den her retning:
Idéen er selvfølgelig at selv om man ikke kender den værdi der regnes på (a), så har man noget andet data(b) som beregningen foretages på i stedet. Et resultat på dette data(c) kan så oversættes til et resultat på det oprindelige data(d) hvis man kender dette. Egentlig er idéen ret simpel, det eneste man har brug for er en måde at oversætte fra a til b og en måde at oversætte fra c til d givet a.
Ordet 'homomorf' betyder sådan set bare at a og b i en forstand opfører sig på samme måde når man laver beregninger på dem.
Gravatar #7 - AlienDarkmind
1. jun. 2010 07:18
Lyder godt nok syret.. Det må da kunne bruges til alt slags sikkerhed på nettet?? og ikke kun cloud teknologi?
Gravatar #8 - mathiass
1. jun. 2010 07:19
#5: Du kender heller ikke resultatet. Hvor skulle du have fået det fra?
Gravatar #9 - AlienDarkmind
1. jun. 2010 07:20
#6 så lige som de det de brugte i anden verdenskrig med at de taster F.eks "A" men bogstavet der kommer ud af det er "T"? Men på den måde ved modtageren jo egentlig godt hvad resultatet er, den omformer det bare ikke?
Gravatar #10 - mathiass
1. jun. 2010 07:23
#9: Jo, men der lige et krav mere (det er det 'homomorf' betyder), nemlig at man ikke bare kan bytte cifrene tilfældigt ud, for beregningerne på den krypterede værdi skal stadig give mening. På en måde kan man sige at man laver beregningen på den krypterede værdi og når man dekrypterer resultatet så har man resultatet som man ville have fået hvis man havde lavet beregningen på det ikke-krypterede data.
Gravatar #11 - angelenglen
1. jun. 2010 07:24
mathiass (8) skrev:
#5: Du kender heller ikke resultatet. Hvor skulle du have fået det fra?

Hvis man ikke får resultatet, hvordan kan man så lave fx statistik?
Gravatar #12 - mathiass
1. jun. 2010 07:24
#9: Modtageren ved ikke hvad den oprindelige værdi er. Det ville kræve en nøgle at dekryptere, og den får han ikke med...
Gravatar #13 - mathiass
1. jun. 2010 07:26
#11: Man kunne forestille sig at man kun kunne lave krypteret statistik, som først ville give mening når man kender de oprindelige værdi. Jeg aner ikke om det er muligt, men det må det vel være med + og -...
Gravatar #14 - Orange
1. jun. 2010 07:38
nyhed (0) skrev:
Andre områder hvor fuld homomorf kryptografi forventes at kunne få betydning er ved statistiske beregninger, da forskellige organisationer vil kunne udføre fælles statistikker uden at afsløre sine fortrolige data til hinanden, og elektroniske valg, hvor en valgholder vil kunne tælle alle stemmer sammen uden at vide hvad de enkelte stemmer er.


For ikke at nævne til brug i forskning, det er oftest umuligt at få brugbar data til større empiriske undersøgelser. Alle er bange for at frigive data, selv til universiteterne.
Gravatar #15 - tubintosh
1. jun. 2010 08:04
Så den ukrypterede værdi skal være en integer? Sick stuff though.
Gravatar #16 - Kian
1. jun. 2010 08:28
Jeg ved godt at det bare er mig der ikke fatter pointen ordentligt, men det forekommer mig ganske svært at forstå at man kan udføre matematik på krypteret data. Ikke så meget det at 'man kan' - det forstår jeg alligevel ikke, men at man kan og samtidig ikke finde nøglen... for hvis man udføre matematik må man vel på en eller anden måde behandle den krypterede data som var den ikke-krypteret? og i så fald skal der vel teknisk set ikke ret meget mere til for at finde nøglen? man kan vel sætte nogle if-konstruktioner ind - fx hvis man nu tager den her omgang krypteret data og plusser med 5 og bagefter minusser med 6 - hvad sker der så med dataen - ehm - man må da vel somehow kunne bruteforce sig igennem.
Min pointe kort: når man kan sende operatorer og tal ind i en krypterede datamængde og få datamængden til at morfe, så må man da også kunne dekryptere den... eller?
Gravatar #17 - fennec
1. jun. 2010 08:41
Jeg er en af dem som heller ikke kender til dette område, men som jeg opfatter det, så sker det på denne måde:

Brugeren kryptere tallene 1 og 2 med sin nøgle. Derved får han værdierne "h27jh782" og "lsd8j276". Han sender så disse 2 værdier til en server med et + imellem (h27jh782 + lsd8j276). Serveren kan så med homomorf kryptografi lægge de 2 krypteret værdier samme og returnere "jhdas63h73jd". Denne værdi kan brugeren decryptere med sin nøgle og få værdien 3.

Det der vel egentlig sker er at uanset hvilken nøgle man har brugt til at kryptere tallene 1, 2 og 3 så vil "forskellen" mellem de krypterede værdierne være den samme.

Altså. Man behøver ikke vide at A + B svare til 1 og 2 for at finde svaret C (som er 3). Det kan så udvides så abc+def = ghi.

Krypterede værdier er stadig beregnet ud fra en fast rutine, og kender man rutinen (uden at kende nøglen), burde det være muligt at lægge krypterede værdier sammen. Jeg går derfor ud fra at hans metode kun virker på en bestemt krypteringsalgoritme. Eller også skal den i hvert fald have at vide hvilken algoritme der er brugt.
Gravatar #18 - Space Hopper
1. jun. 2010 08:45
I stedet for at drone derudad, hvorfor slår i ikke bare op hvordan det virker:
http://en.wikipedia.org/wiki/Homomorphic_encryptio...
Gravatar #19 - AlienDarkmind
1. jun. 2010 09:08
#18 Fordi det giver lige så lidt mening;) En guide for dummies kunne være godt her:P
Gravatar #20 - HenrikH
1. jun. 2010 09:18
Space Hopper (18) skrev:
I stedet for at drone derudad, hvorfor slår i ikke bare op hvordan det virker:
http://en.wikipedia.org/wiki/Homomorphic_encryptio...

Dovenskab :-P
Darkmind (19) skrev:
#18 Fordi det giver lige så lidt mening;) En guide for dummies kunne være godt her:P

Den giver da lidt mening.... Men ellers kan du jo bare tage #17's svar ;-)
Gravatar #21 - angelenglen
1. jun. 2010 09:19
fennec (17) skrev:
Brugeren kryptere tallene 1 og 2 med sin nøgle. Derved får han værdierne "h27jh782" og "lsd8j276". Han sender så disse 2 værdier til en server med et + imellem (h27jh782 + lsd8j276). Serveren kan så med homomorf kryptografi lægge de 2 krypteret værdier samme og returnere "jhdas63h73jd". Denne værdi kan brugeren decryptere med sin nøgle og få værdien 3.


Hvis brugeren kender både tallet 1 og tallet 2, kan han selv lægge dem sammen og få 3 uden hjælp fra nogen mellemmand.
Det må da være endnu mere sikkert?
Gravatar #22 - PaulPeterPorges
1. jun. 2010 09:30
Det giver vel også nogle interessante muligheder for at lave en form for man-in-the-middle angreb, hvor man uden brugen kan se det, og uden man kender brugerens data, kan ændre i data arbitrært. Det er vel nok det største problem. Dataenes integritet bliver derved kompromitteret. Hvad er kryptering uden dataintegritet?

Jeg kan nu se at der findes systemer som tager delvis højde for dette med brug af public keys for at kunne udføre operationer på krypteret data.
Gravatar #23 - MeepMeep
1. jun. 2010 09:32
#21

Homomorf kryptografi går basalt set ud på at foretage nogle regneoperationer på krypterede værdier. Man behøver ikke at kende X + Y for at vide hvordan man lægger X og Y sammen.

At kunne foretage regneoperationer på krypterede tal giver vel god mening, hvis man f.eks. vil beregne på tal via f.eks. cloud computing, men ikke vil lade andre kende til de hemmelige værdier.

Hvis man selv har regnekraft nok, ja så kan man selvfølgelig blot regne resultaterne ud selv.
Gravatar #24 - René.O
1. jun. 2010 09:36
#21

Hvad hvis din applikation ligger på en mobiltelefon, som vil tage 2 dage om at lave en udregning. Men oppe i skyen vil du kunne få resultatet på 5 sekunder. Hvorfor så ikke vælge skyen, når du nu kan stole på dine data ikke kan opsnappes/bruges af andre?
Gravatar #25 - buchi
1. jun. 2010 11:03
Forestil jer 2 der krypteret er 4 og 6 der krypteret er 9. 4 og 9 udfører man + operationerne på, og får 19. 19 dekryptere man og får 8
Gravatar #26 - kr00z0r
1. jun. 2010 11:08
Darkmind (19) skrev:
En guide for dummies kunne være godt her:P
Sådan som jeg forstår det er både klientens værdier og serverens svar krypteret på samme måde, som kun klienten kender. Hvis krypteringen f.eks. består i at gange med et tilfældigt tal for at kryptere kan man dividere med samme tal for at dekryptere. Nøglen kunne f.eks. være 100, og værdierne 3 og 4. Det vil sige at serveren får værdierne 300 og 400 at regne på, som den fx kan lægge sammen til 700, som klienten herefter kan dekryptere til 7.
Gravatar #27 - Vegedus
1. jun. 2010 13:27
Huh, lyder sgu ret smart. Og til dem der ikke forstår hvordan man gør, så ville man jo nok ikke først have fundet ud af hvordan man ganger OG plusser i et sådant system NU, hvis det var let at forstå, eller gøre.
Gravatar #28 - Anders Fedеr
1. jun. 2010 16:07
Angelenglen (21) skrev:
Hvis brugeren kender både tallet 1 og tallet 2, kan han selv lægge dem sammen og få 3 uden hjælp fra nogen mellemmand.
Det må da være endnu mere sikkert?

I praksis er det jo heller ikke den slags beregninger man vil bruge det til. Godt nok er jeg ikke datalogi-haj, men hvis jeg ikke tager meget fejl er mængden af alle matematiske operationer Turing complete. Dvs. at systemet kan afvikle et hvilket som helst computerprogram på det krypterede input - og så er mulighederne nærmest uanede.

I øjeblikket er systemet nok for langsomt, men i princippet ville man kunne oprette en remote desktop-forbindelse til en computer i skyen, og bruge den som man bruger sin skrivebords-PC i dag, uden udbyderen i den anden ende ville have nogen mulighed for at overvåge ens aktiviteter på maskinen. Så får man også noget at bruge sin 100 Mbps forbindelse til :)

Om kryptografi er sikkert nok til den slags kan man så altid diskutere.
Gravatar #29 - Coffey Mug
1. jun. 2010 19:13
Math thru the looking glass!
Gravatar #30 - Kelrond
2. jun. 2010 06:04
Ja én ting er at lave udregninger for data man udelukkende selv har liggende, men som eksemplet netop også nævner, hvad så den dag vi har elektronisk registrering ved valg, så vil "valgstationerne", hvis de alle har samme krypterings nøgle, kunne sende deres data op i skyen, og man kunne så hente resultatet af sammentællingen ned i København. Voila, instant og sikkert valgresultat. :)
Gravatar #31 - kasperd
2. jun. 2010 07:44
perationerne +, - og * kan udføre alle beregninger er at man kan bruge dem til at implementere binær logik. NAND er universel, og hvis man bruger 1 og 0 til at repræsentere sand og falsk, så kan NAND(x,y) udregnes som 1-(x*y).

Det er dog ikke specielt effektivt hvis man f.eks. skal bruge en 2048 bits kryptering af hver bit i beregningen så bliver det hurtigt omstændigt at gennemføre dem.

Der vil typisk være tale om public key kryptering, således at flere forskellige parter kan have krypteret værdier der kan indgå i beregningen. Det giver dog en lille udfordring idet krypteringen er nødt til at være probabilistisk. Hvis input altid krypteres til samme resultat vil det være for nemt at undersøge om den værdi du står med er 0 eller 1.

Homomorf kryptografi har lidt til fælles med multiparty computations, men det er ikke helt det samme. I homomorf kryptografi kan data ligge samlet et sted og beregningerne kan udføres der, men data er krypteret undervejs. I multiparty computations er der ingen der har et eksemplar af data. Hvis man ser på de data som en enkelt eller nogle få parter har, så er det fuldstændigt tilfældige tal uden sammenhæng med de oprindelige data. Men tilsammen har parterne et eksemplar af data, og de kan regne på det.

Man kan sagtens forestille sig, at de to metoder ville blive kombineret. F.eks. kunne man bruge multiparty computation til at generere et nøglepar hvor alle kender den offentlige nøgle, og ingen kender den hemmelige nøgle. Så kan man kryptere data og sende det rundt til alle. Alle kan så gennemføre den beregning man er interesseret i. Til sidst bruger man igen multiparty computation til at dekryptere resultatet.

I begge tilfælde er første teoretiske resultat at man viser hvordan addition, subtraktion og multiplikation kan gennemføres. Sidenhen laver man optimerede algoritmer til specifikke udregninger. (Se f.eks. resultaterne for hvordan man kan gennmføre en dobbeltauktion).

Angelenglen (5) skrev:
Jeg er 100 % sikker på jeg ikke har forstået det, for hvis jeg har forstået det korrekt, er der pludselig ingen sikkerhed i at kryptere data længere?
For det første så vælger man jo selv om man vil bruge en homomorf kryptering når man krypterer sine data. Hvis ikke man har brug for at der bliver udført beregninger på de krypterede data, så bruger man en mere traditionel kryptering.

For det andet, så er det naturligvis ikke så usikkert som du frygter. Resultatet af udregningerne vil stadigvæk være krypteret. Når beregningerne er afsluttet, så skal det stadigvæk dekrypteres før det kan bruges til noget.

mathiass (6) skrev:
sensationspræget som det jo skal være på newz.
Jeg ved nok om kryptologi til at kunne forstå, at det her kan være en ret væsentlig nyhed. Men detaljerne er for sparsomme til at jeg kan se om der er tale om noget der kan bruges i praksis, eller om det blot er en milepæl på vejen imod noget brugbart.

Kian (16) skrev:
man kan vel sætte nogle if-konstruktioner ind
Det er et relevant spørgsmål. Jeg tror ikke der vil være mulighed for at direkte lave if konstruktioner. Hvis man har brug for det må man tage nogle små omveje. Forestil dig at du har regnet dig frem til x repræsenteret som E(x), og nu vil du enten returnere f(y) hvis x=1 eller g(z) hvis x=0. Du kan ikke udføre en if konstruktion, så i stedet bruger du E(y) og E(z) til at udregne E(f(y)*x+g(z)*(1-x)).

René.O (24) skrev:
Hvad hvis din applikation ligger på en mobiltelefon, som vil tage 2 dage om at lave en udregning. Men oppe i skyen vil du kunne få resultatet på 5 sekunder. Hvorfor så ikke vælge skyen, når du nu kan stole på dine data ikke kan opsnappes/bruges af andre?
Nu tror jeg at overheadet ved krypteringen bliver så stort at det stadigvæk ville have været hurtigere at beregne det på mobiltelefonen uden kryptering. Der hvor metoden giver mening er hvis man har brug for at beregningerne kan udføres af en maskine, der altid er på, eller hvis der er tale om en udregninger der involverer data fra forskellige parter, og ingen af dem vil betro data til hinanden.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login