Statistical Mechanics Approach to Protein Design