

{"id":79,"date":"2017-04-18T15:05:32","date_gmt":"2017-04-18T13:05:32","guid":{"rendered":"https:\/\/project.inria.fr\/hyleak\/?page_id=79"},"modified":"2017-04-18T18:00:51","modified_gmt":"2017-04-18T16:00:51","slug":"smart-grid-privacy","status":"publish","type":"page","link":"https:\/\/project.inria.fr\/hyleak\/smart-grid-privacy\/","title":{"rendered":"Smart grid privacy"},"content":{"rendered":"<p>A smart grid is an energy network where users (like households) may consume or produce energy. This example is taken from <a href=\"http:\/\/people.rennes.inria.fr\/Fabrizio.Biondi\/papers\/spin15.pdf\">Biondi et al<\/a>.<br \/>\nThe users periodically negotiate with a central aggregator in charge<br \/>\nof balancing the total consumption among several users. In practice each user<br \/>\ndeclares to the aggregator its consumption plan. The aggregator sums up<br \/>\nthe consumptions of the users and checks if it falls within admitted bounds.<br \/>\nIf not it answers to the users that the consumption is too low or too high by a certain amount, such that they adapt their demand.<br \/>\nThis model raises some privacy issues as some attacker can try to guess the consumption of a user, and for instance infer whether or not this particular user is at home. The input code for the example is as follows:<br \/>\n<code><br \/>\nconst N:=3;\u00a0 \/\/ N is the total number of users<br \/>\nconst S:=1;\u00a0 \/\/ S is the number of users we care about<br \/>\nconst C:=3;\u00a0 \/\/ C is the possible consumptions level<br \/>\nconst M:=0;\u00a0 \/\/ M is the consumption level of the attacker<br \/>\nconst LOWT:=2;\u00a0 \/\/ LOWT #\\textrm{is the lower threshold<br \/>\nconst HIGHT:=9;\u00a0 \/\/ HIGHT is the upper treshold<br \/>\n\/\/ the observable is the order given by the control system<br \/>\nobservable int32 order;<br \/>\nobservable int1 ordersign;<br \/>\n\/\/ The secret is the consumption of each user we care about<br \/>\nsecret array [S] of int32 secretconsumption:=[0,C-1];<br \/>\n\/\/ The other consumptions are just private<br \/>\nprivate array [N-(S+1)] of int32 privateconsumption:=[0,C-1];<br \/>\npublic int32 total:=M;\u00a0 \/\/ this is the projected consumption<br \/>\npublic int32 j:=0;\u00a0 \/\/ this is just a counter<br \/>\n\/\/ count the secret consumptions<br \/>\nfor (i in [0,S-1]) do<br \/>\nwhile (j&lt;C) do<br \/>\nif (secretconsumption[i]==j) then<br \/>\nassign total:=total+j;<br \/>\nfi<br \/>\nassign j:=j+1;<br \/>\nod<br \/>\nassign j:=0;<br \/>\nod<br \/>\n\/\/ count the private consumptions<br \/>\nassign i := 0;<br \/>\nassign j := 0;<br \/>\nwhile (i&lt;N-(S+1)) do<br \/>\nwhile (j&lt;C) do<br \/>\nif (privateconsumption[i]==j) then<br \/>\nassign total:=total+j;<br \/>\nfi<br \/>\nassign j:=j+1;<br \/>\nod<br \/>\nassign j:=0;<br \/>\nassign i:=i+1;<br \/>\nod<br \/>\nif (total&lt;LOWT) then<br \/>\nassign order := LOWT - total;<br \/>\nassign ordersign := 0;<br \/>\nelif\u00a0 (total &gt; HIGHT) then<br \/>\nassign order := total - HIGHT;<br \/>\nassign ordersign := 1;<br \/>\nelse<br \/>\nassign order := 0;<br \/>\nassign ordersign := 0;<br \/>\nfi<br \/>\nreturn;<br \/>\n<\/code><br \/>\nIn the following figures we present the experiment results of this smart grid example for different numbers of users. HyLeak takes less time than both fully precise analysis and fully randomized analysis (as shown in the first figure).<br \/>\nMoreover it is closer to the true value than fully randomized analysis<br \/>\nespecially when the number of users is larger (as shown in the second figure).<\/p>\n<p><a href=\"https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_time_graph.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-142\" src=\"https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_time_graph-300x210.png\" alt=\"\" width=\"300\" height=\"210\" srcset=\"https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_time_graph-300x210.png 300w, https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_time_graph-214x150.png 214w, https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_time_graph-150x105.png 150w, https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_time_graph.png 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_err_graph.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-141\" src=\"https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_err_graph-300x210.png\" alt=\"\" width=\"300\" height=\"210\" srcset=\"https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_err_graph-300x210.png 300w, https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_err_graph-214x150.png 214w, https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_err_graph-150x105.png 150w, https:\/\/project.inria.fr\/hyleak\/files\/2017\/04\/smartgrid_err_graph.png 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>A smart grid is an energy network where users (like households) may consume or produce energy. This example is taken from Biondi et al. The users periodically negotiate with a central aggregator in charge of balancing the total consumption among several users. In practice each user declares to the aggregator\u2026<\/p>\n<p> <a class=\"continue-reading-link\" href=\"https:\/\/project.inria.fr\/hyleak\/smart-grid-privacy\/\"><span>Continue reading<\/span><i class=\"crycon-right-dir\"><\/i><\/a> <\/p>\n","protected":false},"author":534,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-79","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/project.inria.fr\/hyleak\/wp-json\/wp\/v2\/pages\/79","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/project.inria.fr\/hyleak\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/project.inria.fr\/hyleak\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/hyleak\/wp-json\/wp\/v2\/users\/534"}],"replies":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/hyleak\/wp-json\/wp\/v2\/comments?post=79"}],"version-history":[{"count":3,"href":"https:\/\/project.inria.fr\/hyleak\/wp-json\/wp\/v2\/pages\/79\/revisions"}],"predecessor-version":[{"id":143,"href":"https:\/\/project.inria.fr\/hyleak\/wp-json\/wp\/v2\/pages\/79\/revisions\/143"}],"wp:attachment":[{"href":"https:\/\/project.inria.fr\/hyleak\/wp-json\/wp\/v2\/media?parent=79"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}