# What is RSA key normalization?

How can I understand the term RSA key normalization? What exactly is done in the process?? Please explain.

-

## 2 Answers

RSA key normalization is merely the convention that when comparing public keys we view them as two numbers where the first number is the public exponent and the second is the public modulus. Now in the case of RSA if you're given the public key as two numbers then the big composite one is the modulus and the smaller one which is often 65537 is the exponent so it's pretty obvious which is which.

The need for normalization is more obvious with DSA keys which involve four numbers of which two (the generator and the public value) would be impossible to distinguish if $h$ was chosen at random when the generator $g=h^{(p–1)/q)}$ was calculated). In all cases with DSA if you're just given the four parameters in any order you have to do a bit of extra calculation to make sense of it and normalization takes care of the whole issue.

-

The term "RSA key normalization" seems unusual. I only find it in RFC 2792.

In that context, it is about putting an RSA public key into a form suitable for interchange and comparison. To use an image: 7; "7"; 007; 07h; 0x07; 111; 11100000; 00000111; seven; sept; or the base-64 encoding of a zip file containing any of the above; all represent the integer formerly known as VII. But for the purpose of computer interchange, we should put that in some normalized form.

In the context of RFC 2792, that normalized form is `ASN.1`. I prefer not to try to explain what that is exactly, except by an adjective: nightmarish.

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 2, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9489772319793701, "perplexity_flag": "middle"}