Choice of Optimal Error-Correcting Code for Physical Unclonable Functions