Datasäkerhet online har alltid varit viktigt, men aldrig viktigare än nu. Med allt mer av vår data som lagras i molnet måste användare leta efter de bästa säkerhetslösningarna för att säkerställa att deras konfidentiella information är säker. Medan alla delar av datasäkerhet online är nödvändiga för att säkra data, är den viktigaste delen förmodligen datakryptering.
Det är därför fler och fler molntjänster använder en typ av kryptering som kallas formatbevarande kryptering.
Vad är formatbevarande kryptering?
Om ditt företag har flera 16-siffriga kreditkortsnummer lagrade i en databas, men den krypterade chiffertexten också måste vara 16 siffror lång efter kryptering, är det här formatbevarande kryptering [FPE] kommer in i bilden. FPE krypterar klartext som har en viss längd och producerar en chiffertext som har samma längd som klartexten och använder samma uppsättning värden som klartexten. Med hjälp av föregående exempel på ett 16-siffrigt kreditkortsnummer med klartexten 1483920193402918, skulle chiffertexten som skapats med FPE kunna producera en utdata på 1483666666662918.
Genom att använda FPE kan du se att chiffertexten och klartexten är lika långa och endast använder numeriska värden för kryptering. En molnleverantör som låter användare implementera FPE i sin kryptering är Google Cloud.
Formatbevarande kryptering i Google Cloud
Google Cloud ger användare tillgång till en avidentifieringsteknik som kallas pseudonymisering. Pseudonymisering är en teknik som ersätter känsliga uppgifter med kryptografiskt genererade tokens. Google Cloud stöder tre olika pseudonymiseringstekniker:
- Deterministisk kryptering med AES-SIV
- Formatbevarande kryptering
- Kryptografisk hashing
Alla tre teknikerna använder kryptografiska nycklar för datatransformation, men vi kommer att fokusera på Formatbevarande kryptering.
Google Cloud använder en typ av FPE som kallas FPE-FFX. FFX fokuserar på två olika FPE-metoder, FF1 och FF3, för att kryptera data. I skrivande stund är FF1 den enda metoden som för närvarande stöds för kryptering. FF2 publicerades inte när FFX skapades. FF2- och FF3-härledningar skickas in på nytt, men efter en kryptanalytisk attack 2017 ansågs FF3 vara för osäkert.
FFX använder flera omgångar av en Feistel-funktion på klartexten, tillsammans med användning av en nyckel, för att skapa chiffertexten. En Feistel-funktion delar upp klartexten i två delar och gör en permutation varje omgång på vardera halvan av klartexten, och byter sedan den vänstra halvan av texten till höger och vice versa. FF1-metoden använder 10 omgångar av Feistel-funktionen, och FF3 använder 8 omgångar av Feistel-funktionen. FPE-FFX har flera steg som krävs för att kryptera data. För att starta krypteringen måste alfabetet som används för att avidentifiera data anges på ett av tre sätt:
- Använda ett av fyra värden som representerar de vanligaste teckenuppsättningarna/alfabeten
- Använder ett radixvärde som anger alfabetets storlek. Om man anger 2 får man ett alfabet bestående av siffrorna 0 och 1, medan om man anger 95 får man ett alfabet med endast numeriska tecken, versaler, gemener och symboler.
- Genom att bygga ett alfabet som innehåller exakt de tecken som ska användas
När man använder FPE-FFX i Google Cloud krypteras data som tidigare beskrivits, men kan också läggas till en surrogatannotering, vilket resulterar i en slutlig token. Token har följande form när en surrogatannotering inkluderas: surrogate_infotype(surrogate_length): surrogate_value. Surrogatannoteringen är surrogate_infotype(surrogate_length). Infotypen definieras av användaren och surrogatvärdet är den resulterande chiffertexten. Om ingen surrogatannotering anges är den slutliga token bara surrogatvärdet. För att omidentifiera ostrukturerad data krävs hela token, inklusive en surrogatannotering, medan strukturerad data bara behöver surrogatvärdet.
Slutsats
Formatbevarande kryptering är extremt viktigt för användare som vill behålla chiffertexten efter kryptering lika lång som klartexten. Av de många olika FPE-FFX-metoder som används i Google Cloud är FF1 den bästa metoden att använda, på grund av de extra rundorna av Feistel-funktionen den går igenom.
Strukturerad data kräver att en surrogatannotering läggs till i chiffertexten för att möjliggöra omidentifiering av data. Google Cloud har en stark implementering av FPE för kundanvändning. För de som behöver samma längd på klartext och chiffertext är Google Clouds FPE-FFX deras bästa val.
