Synthesis with Privacy Against an Observer ============================ We study automatic synthesis of systems that interact with their environment and maintain privacy against an observer to the interaction. The system and the environment interact via sets I and O of input and output signals. The input to the synthesis problem contains, in addition to a specification, also a list of em secrets, a function \cost: I \cup O --> \Nat, which maps each signal to the cost of hiding it, and a bound b \in \Nat on the budget that the system may use for hiding of signals. The desired output is an (I/O)-transducer T and a set H \subseteq I \cup O of signals that respects the bound on the budget, thus \sum_{s \in H} \cost(s) \leq b, such that for every possible interaction of T, the generated computation satisfies the specification, yet an observer from which the signals in H are hidden, cannot evaluate the secrets. We first show that the complexity of the problem is 2EXPTIME-complete for specifications and secrets in LTL, thus it is not harder than synthesis with no privacy requirements. We then analyze the complexity of the problem more carefully, isolating the two aspects that do not exist in traditional synthesis, namely the need to hide the value of the secrets and the need to choose the set H. We do this by studying settings in which traditional synthesis can be solved in polynomial time -- when the specification formalism is deterministic automata and when the system is closed, and show that each of the two aspects involves an exponential blow-up in the complexity. We continue and study em bounded synthesis with privacy, where the input also includes a bound on the size of the synthesized transducer, as well as a variant of the problem in which the observer has em knowledge about the specification, which can be helpful in evaluating the secrets. We study the effect of both variants on the different aspects of the problem and provide algorithms with a tight complexity.