Voor een project ben ik bezig met een encryptie programmaatje. Het doel van het programma is om een bepaalde invoer te versleutelen met een sleutel naar een bepaalde uitvoer.
- De invoer wordt geleverd door persoon X, de uitvoer gebruikt door persoon Y.
- Als persoon X dezelfde invoer levert aan persoon Y moet de uitvoer hetzelfde blijven.
persoon Y kan dus aan de hand van de versleutelde data zien dat het om dezelfde data gaat (zoals md5 bestand checksums). Een willekeurige salt is dus geen optie, want de persoon Y slaat zelf buiten de sleutel en de oorspronkelijke data geen aanvullende data op. Er wordt dus geen database aangelegd waarin per datalevering alle salts worden opgeslagen.
- persoon Y mag met geen mogelijkheid de data kunnen ontcijferen en idealiter blijft dit ook moeilijk tot onmogelijk wanneer persoon Y de sleutel van persoon X in handen krijgt.
De vraag is hoe je dit het best aanpakt en of mijn idee hiervoor voldoende veilig is voor dit doel. De aanpak zoals nu bedacht:
1. persoon X genereert een RSA sleutel van 64 bits.
2. Met SHA256-HMAC wordt de data met de RSA sleutel versleuteld.
Zodra persoon Y opnieuw data nodig heeft van persoon X, wordt op locatie van persoon X de data opnieuw met de betreffende sleutel versleuteld en krijgt persoon Y de data mee. Door de versleutelde data te vergelijken kan persoon Y zien wat nieuw is en wat hij al had.
- De invoer wordt geleverd door persoon X, de uitvoer gebruikt door persoon Y.
- Als persoon X dezelfde invoer levert aan persoon Y moet de uitvoer hetzelfde blijven.
persoon Y kan dus aan de hand van de versleutelde data zien dat het om dezelfde data gaat (zoals md5 bestand checksums). Een willekeurige salt is dus geen optie, want de persoon Y slaat zelf buiten de sleutel en de oorspronkelijke data geen aanvullende data op. Er wordt dus geen database aangelegd waarin per datalevering alle salts worden opgeslagen.
- persoon Y mag met geen mogelijkheid de data kunnen ontcijferen en idealiter blijft dit ook moeilijk tot onmogelijk wanneer persoon Y de sleutel van persoon X in handen krijgt.
De vraag is hoe je dit het best aanpakt en of mijn idee hiervoor voldoende veilig is voor dit doel. De aanpak zoals nu bedacht:
1. persoon X genereert een RSA sleutel van 64 bits.
2. Met SHA256-HMAC wordt de data met de RSA sleutel versleuteld.
Zodra persoon Y opnieuw data nodig heeft van persoon X, wordt op locatie van persoon X de data opnieuw met de betreffende sleutel versleuteld en krijgt persoon Y de data mee. Door de versleutelde data te vergelijken kan persoon Y zien wat nieuw is en wat hij al had.
Sinds de 2 dagen regel reageer ik hier niet meer