  In this paper, we study the problem of remote state estimation, in the
presence of a passive eavesdropper. An authorized user estimates the state of
an unstable linear plant, based on the packets received from a sensor, while
the packets may also be intercepted by the eavesdropper. Our goal is to design
a coding scheme at the sensor, which encodes the state information, in order to
impair the eavesdropper's estimation performance, while enabling the user to
successfully decode the sent messages. We introduce a novel class of codes,
termed State-Secrecy Codes, which use acknowledgment signals from the user and
apply linear time-varying transformations to the current and previously
received states. By exploiting the properties of the system's process noise,
the channel physical model and the dynamics, these codes manage to be fast,
efficient and, thus, suitable for real-time dynamical systems. We prove that
under minimal conditions, State-Secrecy Codes achieve perfect secrecy, namely
the eavesdropper's estimation error grows unbounded almost surely, while the
user's estimation performance is optimal. These conditions only require that at
least once, the user receives the corresponding packet while the eavesdropper
fails to intercept it. Even one occurrence of this event renders the
eavesdropper's error unbounded with asymptotically optimal rate of increase.
State-Secrecy Codes are provided and studied for two cases, i) when direct
state measurements are available, and ii) when we only have output
measurements. The theoretical results are illustrated in simulations.
