7
votes

Computing secret: Un tel animal existe-t-il?

une question en théorie de l'informatique

Aujourd'hui, je peux enregistrer secrètement des fichiers dans le nuage (par exemple, Amazon S3), en les croyons cryptés avant de les stocker et de les déchiffrer après que je télécharge. Le fournisseur de stockage ne peut obtenir aucune information à partir des fichiers stockés - tout est crypté en toute sécurité et même un chiffre symétrique sera ok ici.

Ma question est si la même chose peut être faite avec l'informatique dans le cloud. Il y a un fournisseur informatique dans le nuage (dis Amazon EC2). Puis-je télécharger un "programme crypté" avec "entrée cryptée" pour le programme et que mon fournisseur de calcul de nuage effectue tous les calculs pour moi et générer pour moi une "sortie cryptée" - avec les mêmes garanties de sécurité que dans le "fichier secret magasin "?

Notez que je ne parle pas de problèmes d'obfuscation et d'ingénierie inverse, mais sur l'informatique secrète avec des garanties de cryptographie fortes.

mon hunch est que cela ne peut pas être fait. Sinon 1) il existerait, 2) mon intuition est qu'aucune donnée cryptée ne peut "continuer à être cryptée des données" après que les transformations soient appliquées, c'est-à-dire devenue gibberish.

note peut-être que je manque le bon contexte en informatique, si quelqu'un pouvait me dire quelle est la nomenclature exacte.

Les pointeurs à la littérature académique et les clarifications concernant les concepts décrits ci-dessus sont réellement appelés seront les bienvenus.

Réponse:

Il semble que:

  • Entrée et sortie Secret, Programme non secret: uniquement en théorie

  • Entrée secrète, sortie secrète et programme secret: même en théorie. ( Mise à jour: Peut-être oui, voir le commentaire d'Artelius)


3 commentaires

Je pense que c'est possible mais très très ... difficile.


Qu'entendez-vous par «programme crypté»?


«Un programme secret, une sortie secrète et un programme secret» pourrait être possible aussi. Supposant que vous puissiez courir un interprète (ou une machine de Turing ou autre) dans un environnement «Secret Secret et Sortie, non secrets». Ensuite, le programme que l'interprète exécute est secret.


4 Réponses :


12
votes

Oui, une telle chose existe en quelque sorte, bien qu'elle soit très théorique pour le moment. C'est ce qu'on appelle le cryptage homomorphique. Voici un papier sur les percées fabriquées à IBM et Il y a un commentaire à ce sujet sur le blog de Bruce Schneier .

Fondamentalement, un système de cryptage homomorphique est celui où : xxx


4 commentaires

+1 wow! Je vais avoir une bonne lecture de cela. Il est temps de supprimer ma réponse disant non :)


Merci de me corriger si j'ai mal compris le blog de Scheneier: "l'algorithme" n'est pas secret, seule l'entrée et la sortie sont.


Vous avez raison, l'algorithme n'est ni secret ni crypté, et il ne peut jamais être secret. Le code doit être exécuté par quelque chose d'une manière non cryptée. Le fournisseur de services sera toujours en mesure de faire fonctionner le code sur les serveurs. Il est généralement préférable, d'un point de vue de sécurité, d'avoir des algorithmes ouverts que la communauté peut inspecter et tester des faiblesses - l'obfuscation n'est pas une sécurité! Si vous avez un «algorithme magique», personne d'autre a développé (et je déteste dire cela), il y a toujours une protection par brevet.


Schneier n'a-t-il pas dit que l'idée était fondamentalement impraticable?



3
votes

En fait, très récemment, une personne a résolu le problème de ce qu'on appelle Encyption entièrement homomorphique . Je ne suis pas un cryptographe, mais comme je le comprends, l'idée de base est que quelqu'un pourrait effectuer des actions sur des données cryptées sans même savoir quelles sont les données et que ces actions auront une signification (c.-à-d. Lorsque les données sont déchiffrées, des modifications anolageuses auront lieu).

Cela a été un problème ouvert dans la cryptographie depuis longtemps, et maintenant qu'il est résolu, techniquement quelqu'un pouvait faire quelque chose de similaire à ce que vous proposez. Par exemple, vous pouvez télécharger des données sur les serveurs d'Amazon pour travailler, ils pourraient effectuer une sorte d'algorithme très spécifiquement conçu, puis renvoyer vos nouvelles données. (Je ne sais pas s'il y a un moyen de préciser réellement l'algorithme lui-même aimé que vous avez demandé).

Il y a bien sûr un problème avec tout cela: il est toujours complètement impraticable, malgré l'avoir été résolu.

Si vous souhaitez en savoir plus à ce sujet, je recommanderais l'article Wikipedia, ainsi que l'article de Bruce Schneier " percée du cryptage homomorphique ".


0 commentaires


1
votes

D'autres ont déjà signalé les possibilités théoriques d'un cryptage entièrement homomorphique, mais je voudrais souligner qu'un système (entrée secret, programme secret, programme non secret) peut être utilisé pour MKE A (Entrée secrète, Secret Sortie, programme secret) - Système: Demandez simplement au programme non secret d'être un interprète pour une langue et une utilisation à usage général (programme actuel, entrée) comme entrée pour le programme non secret.

Bien sûr, un ordinateur standard incorporé dans un cas inviolable et certifié par une tierce partie indépendante serait une solution beaucoup plus pratique.


0 commentaires