Most of the energy functions used in nonlinear balancing theory can be expressed as storage functions in the framework of dissipativity theory. By defining a framework of discrete-time dissipative systems, this paper presents existence conditions for their discrete-time energy functions along with algorithms to find them based on dynamic optimization problems. Furthermore, the important case of the nonlinear discrete-time versions of the controllability and observability functions, its properties and algorithms to find them are presented. These algorithms are illustrated with linear and nonlinear examples.