mboost-dp1

SXC - clix
- Forside
- ⟨
- Forum
- ⟨
- Nyheder
*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.
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.
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?
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?
#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.
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.
Lyder godt nok syret.. Det må da kunne bruges til alt slags sikkerhed på nettet?? og ikke kun cloud teknologi?
#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?
#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.
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?
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.
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?
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?
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.
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.
I stedet for at drone derudad, hvorfor slår i ikke bare op hvordan det virker:
http://en.wikipedia.org/wiki/Homomorphic_encryptio...
http://en.wikipedia.org/wiki/Homomorphic_encryptio...
#18 Fordi det giver lige så lidt mening;) En guide for dummies kunne være godt her:P
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 ;-)
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?
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.
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.
#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.
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.
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.Darkmind (19) skrev:En guide for dummies kunne være godt her:P
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.
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. :)
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).
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.
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).
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.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 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.
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.mathiass (6) skrev:sensationspræget som det jo skal være på newz.
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)).Kian (16) skrev:man kan vel sætte nogle if-konstruktioner ind
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.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?
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.