Protecting the grid topology and user consumption patterns during state estimation in smart grids based on data obfuscation