2011-09-28 5 views
2

J'ai quelques données vectorielles qui ont été créées manuellement, c'est juste une liste de valeurs x, y. La coordonnée des points n'est pas parfaitement précise - elle peut être décalée de quelques pixels et ne fera aucune différence perceptible. Maintenant, je cherche un moyen de filigrane de ces données, de sorte que si quelqu'un vole les données vectorielles, je peux prouver qu'il a effectivement été volé. Je suis à la recherche d'une méthode assez fiable pour que, même si quelqu'un prend mes données et change un peu les points, je peux encore prouver qu'il a été volé.Comment filigraner certaines données vectorielles de manière invisible?

Est-il possible de le faire? Je sais qu'il existe pour les données bitmap mais qu'en est-il des données vectorielles? PS: le graphique vectoriel lui-même est plutôt aléatoire - il ne peut pas être protégé par des droits d'auteur.

+0

"un changement mineur pour bump la question" n'est pas quelque chose que vous devriez faire. Si les gens n'y ont pas suffisamment prêté attention, c'est pour cela que c'est une prime. –

Répondre

2

L'ensemble de points est-il tout ce que vous pouvez travailler? Si, par exemple, vous aviez affaire à SVG, vous pouviez exporter le fichier avec un certain type de formatage XML, un commentaire <!-- generated by thingummy --> en haut, des ID générés en fonction de tel ou tel modèle, des attributs supplémentaires, en particulier le vôtre, style d'application des traductions, etc. Tout comme vous pouvez travailler à partir d'un JPEG ce qui est susceptible d'avoir été utilisé pour le créer, vous pouvez en dire beaucoup sur ce qui a produit un fichier SVG par observation. Sur les vecteurs eux-mêmes, vous pourriez faire quelque chose comme les considérer comme une séquence ordonnée et appliquer des offsets donnés par les valeurs de deux séquences pseudo-aléatoires, chacune partant d'une graine connue, pour une traduction X et Y, dans une certaine plage (telle que [-1, 1]). Même si certains points sont modifiés, vous devriez être capable de construire un argument de la façon dont les choses correspondent à la séquence. Comment distinguer précisément ce qui a été déplacé pourrait faire avec un peu plus de considération, aussi; Si vous étiez simplement en train de faire int(x) + random(-1, 1), alors si quelqu'un arrondissait toutes les valeurs, votre témoignage serait perdu. Une meilleure façon de traiter cela serait, tout en restituant à la même taille d'écran, de tout multiplier par une constante comme 953 (un arbitraire près de 1000 premiers) puis d'ajuster vos valeurs par quelque chose dans cette gamme (viz, 0 952]). Ce système base-953 serait supérieur à un système de base-10 parce qu'il est beaucoup (beaucoup beaucoup) plus difficile de voir ce qui se passe. Si la personne change la mise à l'échelle, cela nécessiterait un peu plus d'analyse des valeurs, mais cela devrait tout de même être tout à fait possible. J'ai l'intuition que c'est là que choisir un nombre premier pourrait être un peu utile, mais je n'y ai pas trop pensé. Si vous êtes en danger ou en cas de doute sur ces questions, choisissez un nombre premier pour cela ... vous pourrez découvrir plus tard qu'il y a des avantages! Combinez un certain nombre de techniques différentes pour de meilleurs résultats, bien sûr.

Questions connexes