Reference Work Entry

Encyclopedia of Cryptography and Security

pp 721-721

# Linear Congruential Generator

• Caroline FontaineAffiliated withLab-STICC/CID and Telecom Bretagne/ITI, CNRS/Lab-STICC/CID and Telecom Bretagne
<meta charset="utf-8"/><script type="text/x-mathjax-config"> MathJax.Hub.Config({ /* load MathML extension */ extensions: ["mml2jax.js"], /* configure input and output */ jax: ["input/TeX", "input/MathML", "output/HTML-CSS"], /* align display equations to the left */ displayAlign: "left", /* set zoom trigger */ menuSettings: { zoom: "Click" }, /* configuration of the tex2jax preprocessor: - set delimiters for inline and display equations - preview while equations are processed is "TeX" - allow \$to represent a literal dollar sign */ tex2jax: { inlineMath: [ ["\$","\$"] ], displayMath: [ ['$$','$$'], ["\$","\$"] ], preview: ["TeX"], processEscapes: true }, /* configuration of the mml2jax preprocessor: - preview while equations are processed is "MathML" */ mml2jax: { preview: ["MathML"] }, /* configuration of the HTML-CSS output processor: - available fonts are STIX and TeX - preferred font is STIX - use TeX as web-based font if none of the above is available on the user's computer - use TeX font for image fallback mode */ "HTML-CSS": { availableFonts: ["STIX","TeX"], preferredFont: ["STIX"], webFont: ["TeX"], imageFont: ["TeX"], styles: { '.MathJax_Display': { "margin": 0 } } }, TeX: { TagSide: "right", Macros: { upalpha: '{\\unicode{x03B1}}', upbeta: '{\\unicode{x03B2}}', upgamma: '{\\unicode{x03B3}}', updelta: '{\\unicode{x03B4}}', upepsilon: '{\\unicode{x03F5}}', upvarepsilon: '{\\unicode{x03B5}}', upzeta: '{\\unicode{x03B6}}', upeta: '{\\unicode{x03B7}}', uptheta: '{\\unicode{x03B8}}', upvartheta: '{\\unicode{x03D1}}', upiota: '{\\unicode{x03B9}}', upkappa: '{\\unicode{x03BA}}', uplambda: '{\\unicode{x03BB}}', upmu: '{\\unicode{x03BC}}', upnu: '{\\unicode{x03BD}}', upxi: '{\\unicode{x03BE}}', upomicron: '{\\unicode{x03BF}}', uppi: '{\\unicode{x03C0}}', uprho: '{\\unicode{x03C1}}', upsigma: '{\\unicode{x03C3}}', uptau: '{\\unicode{x03C4}}', upupsilon: '{\\unicode{x03C5}}', upphi: '{\\unicode{x03C6}}', upchi: '{\\unicode{x03C7}}', uppsi: '{\\unicode{x03C8}}', upomega: '{\\unicode{x03C9}}', Upalpha: '{\\unicode{x0391}}', Upbeta: '{\\unicode{x0392}}', Upgamma: '{\\unicode{x0393}}', Updelta: '{\\unicode{x0394}}', Upepsilon: '{\\unicode{x0395}}', Upzeta: '{\\unicode{x0396}}', Upeta: '{\\unicode{x0397}}', Uptheta: '{\\unicode{x0398}}', Upvartheta: '{\\unicode{x03F4}}', Upiota: '{\\unicode{x0399}}', Upkappa: '{\\unicode{x039A}}', Uplambda: '{\\unicode{x039B}}', Upmu: '{\\unicode{x039C}}', Upnu: '{\\unicode{x039D}}', Upxi: '{\\unicode{x039E}}', Upomicron: '{\\unicode{x039F}}', Uppi: '{\\unicode{x03A0}}', Uprho: '{\\unicode{x03A1}}', Upsigma: '{\\unicode{x03A3}}', Uptau: '{\\unicode{x03A4}}', Upupsilon: '{\\unicode{x03A5}}', Upphi: '{\\unicode{x03A6}}', Upchi: '{\\unicode{x03A7}}', Uppsi: '{\\unicode{x03A8}}', Upomega: '{\\unicode{x03A9}}', permille: '{\\unicode{x2030}}', hfill: '{\\enspace\\enspace}', enskip: '{\\enspace}', copyright: '{\\unicode{x00A9}}', dag: '{\\unicode{x2020}}', ddag: '{\\unicode{x2021}}', ointop: '{\\unicode{0x222E}}', P: '{\\unicode{0x00B6}}', textregistered: '{\\unicode{0x00AE}}', lhook: '{\\hookrightarrow}', rhook: '{\\hookleftarrow}', fancyscript: ['{\\scr #1}',1], varvec: ['\\pmb{#1}',1], parbox: ['\\mbox{#2}',2], AA: '{\\unicode{x00C5}}' } }, /* configuration of the math menu: - allow the user to select what font to use */ MathMenu: { showFontMenu: true } }); MathJax.Hub.Register.StartupHook("TeX Jax Ready", function () { MathJax.InputJax.TeX.prefilterHooks.Add(function (data) { data.math = data.math.replace(/\\kern *-\\nulldelimiterspace/g, ""); data.math = data.math.replace(/\\mapstochar/g, "\\mapsto"); data.math = data.math.replace(/{?\\ss}?/g, "ß"); data.math = data.math.replace(/\\"a|{\\"a}|\\"{a}/g, "ä"); data.math = data.math.replace(/\\"o|{\\"o}|\\"{o}/g, "ö"); data.math = data.math.replace(/\\"u|{\\"u}|\\"{u}/g, "ü"); data.math = data.math.replace(/\\parbox($\w$)?{(.*?)}{(.*?)\\\\ (.*?)}/g, "\\parbox{$2}{$3$4}"); data.math = data.math.replace(/\\user1/g, "\\mathcal"); data.math = data.math.replace(/\\user2/g, "\\pmb"); data.math = data.math.replace(/\\vspace\*?{[^}]+}/g, ""); data.math = data.math.replace(/\\text\\EUR/g, "€"); data.math = data.math.replace(/\\textrm/g, "\\mathrm"); data.math = data.math.replace(/\\bf{/g, "\\mathbf{"); data.math = data.math.replace(/\\text{\\small{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\footnotesize{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\scriptsize{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\tiny{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\mathop ([^{]+?)\\limits/g, "\\mathop{1}\\limits"); data.math = data.math.replace(/\big|Big|bigg|Bigg) *{([^}]+)}/g, "\\1 2"); data.math = data.math.replace(/\\textsc *{([^}]+)}/g, "{\\rm ~#~1~#~}"); data.math = data.math.replace(/\\upvarphi/g, "\\varphi"); var reg = new RegExp("~#~(.*?)~#~", "g"); var m; while (m = reg.exec(data.math)) { var result = ""; for (var index=0; index != m[1].length; index++) { var char = m[1].substr(index, 1); if (char.match(/[a-z]/)) { result += "{\\small "+ char.toUpperCase() + "}"; } else { result += char; } } data.math = data.math.replace(/~#~.*?~#~/, result); } }); } ); </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full.js"> </script></head><body><section id="Sec1_354" class="Section1 RenderAsSection1"><h2 class="Heading">Related Concepts</h2><p class="Para"><span class="ExternalRef" id="XRef1_354"><a href="http://dx.doi.org/10.1007/978-1-4419-5906-5_131"><span class="RefSource">Pseudorandom Generator</span></a></span>; <span class="ExternalRef" id="XRef2_354"><a href="http://dx.doi.org/10.1007/978-1-4419-5906-5_374"><span class="RefSource">Stream Cipher</span></a></span></p></section></body></html><!--4.0--> <!DOCTYPE html SYSTEM "about:legacy-compat"> <html xmlns="http://www.w3.org/1999/xhtml" lang=""><head><title/><meta charset="utf-8"/><script type="text/x-mathjax-config"> MathJax.Hub.Config({ /* load MathML extension */ extensions: ["mml2jax.js"], /* configure input and output */ jax: ["input/TeX", "input/MathML", "output/HTML-CSS"], /* align display equations to the left */ displayAlign: "left", /* set zoom trigger */ menuSettings: { zoom: "Click" }, /* configuration of the tex2jax preprocessor: - set delimiters for inline and display equations - preview while equations are processed is "TeX" - allow \ to represent a literal dollar sign */ tex2jax: { inlineMath: [ ["\\(","\"] ], displayMath: [ ['$$','$$'], ["\$","\$"] ], preview: ["TeX"], processEscapes: true }, /* configuration of the mml2jax preprocessor: - preview while equations are processed is "MathML" */ mml2jax: { preview: ["MathML"] }, /* configuration of the HTML-CSS output processor: - available fonts are STIX and TeX - preferred font is STIX - use TeX as web-based font if none of the above is available on the user's computer - use TeX font for image fallback mode */ "HTML-CSS": { availableFonts: ["STIX","TeX"], preferredFont: ["STIX"], webFont: ["TeX"], imageFont: ["TeX"], styles: { '.MathJax_Display': { "margin": 0 } } }, TeX: { TagSide: "right", Macros: { upalpha: '{\\unicode{x03B1}}', upbeta: '{\\unicode{x03B2}}', upgamma: '{\\unicode{x03B3}}', updelta: '{\\unicode{x03B4}}', upepsilon: '{\\unicode{x03F5}}', upvarepsilon: '{\\unicode{x03B5}}', upzeta: '{\\unicode{x03B6}}', upeta: '{\\unicode{x03B7}}', uptheta: '{\\unicode{x03B8}}', upvartheta: '{\\unicode{x03D1}}', upiota: '{\\unicode{x03B9}}', upkappa: '{\\unicode{x03BA}}', uplambda: '{\\unicode{x03BB}}', upmu: '{\\unicode{x03BC}}', upnu: '{\\unicode{x03BD}}', upxi: '{\\unicode{x03BE}}', upomicron: '{\\unicode{x03BF}}', uppi: '{\\unicode{x03C0}}', uprho: '{\\unicode{x03C1}}', upsigma: '{\\unicode{x03C3}}', uptau: '{\\unicode{x03C4}}', upupsilon: '{\\unicode{x03C5}}', upphi: '{\\unicode{x03C6}}', upchi: '{\\unicode{x03C7}}', uppsi: '{\\unicode{x03C8}}', upomega: '{\\unicode{x03C9}}', Upalpha: '{\\unicode{x0391}}', Upbeta: '{\\unicode{x0392}}', Upgamma: '{\\unicode{x0393}}', Updelta: '{\\unicode{x0394}}', Upepsilon: '{\\unicode{x0395}}', Upzeta: '{\\unicode{x0396}}', Upeta: '{\\unicode{x0397}}', Uptheta: '{\\unicode{x0398}}', Upvartheta: '{\\unicode{x03F4}}', Upiota: '{\\unicode{x0399}}', Upkappa: '{\\unicode{x039A}}', Uplambda: '{\\unicode{x039B}}', Upmu: '{\\unicode{x039C}}', Upnu: '{\\unicode{x039D}}', Upxi: '{\\unicode{x039E}}', Upomicron: '{\\unicode{x039F}}', Uppi: '{\\unicode{x03A0}}', Uprho: '{\\unicode{x03A1}}', Upsigma: '{\\unicode{x03A3}}', Uptau: '{\\unicode{x03A4}}', Upupsilon: '{\\unicode{x03A5}}', Upphi: '{\\unicode{x03A6}}', Upchi: '{\\unicode{x03A7}}', Uppsi: '{\\unicode{x03A8}}', Upomega: '{\\unicode{x03A9}}', permille: '{\\unicode{x2030}}', hfill: '{\\enspace\\enspace}', enskip: '{\\enspace}', copyright: '{\\unicode{x00A9}}', dag: '{\\unicode{x2020}}', ddag: '{\\unicode{x2021}}', ointop: '{\\unicode{0x222E}}', P: '{\\unicode{0x00B6}}', textregistered: '{\\unicode{0x00AE}}', lhook: '{\\hookrightarrow}', rhook: '{\\hookleftarrow}', fancyscript: ['{\\scr #1}',1], varvec: ['\\pmb{#1}',1], parbox: ['\\mbox{#2}',2], AA: '{\\unicode{x00C5}}' } }, /* configuration of the math menu: - allow the user to select what font to use */ MathMenu: { showFontMenu: true } }); MathJax.Hub.Register.StartupHook("TeX Jax Ready", function () { MathJax.InputJax.TeX.prefilterHooks.Add(function (data) { data.math = data.math.replace(/\\kern *-\\nulldelimiterspace/g, ""); data.math = data.math.replace(/\\mapstochar/g, "\\mapsto"); data.math = data.math.replace(/{?\\ss}?/g, "ß"); data.math = data.math.replace(/\\"a|{\\"a}|\\"{a}/g, "ä"); data.math = data.math.replace(/\\"o|{\\"o}|\\"{o}/g, "ö"); data.math = data.math.replace(/\\"u|{\\"u}|\\"{u}/g, "ü"); data.math = data.math.replace(/\\parbox($\w$)?{(.*?)}{(.*?)\\\\ (.*?)}/g, "\\parbox{2}{$3$4}"); data.math = data.math.replace(/\\user1/g, "\\mathcal"); data.math = data.math.replace(/\\user2/g, "\\pmb"); data.math = data.math.replace(/\\vspace\*?{[^}]+}/g, ""); data.math = data.math.replace(/\\text\\EUR/g, "€"); data.math = data.math.replace(/\\textrm/g, "\\mathrm"); data.math = data.math.replace(/\\bf{/g, "\\mathbf{"); data.math = data.math.replace(/\\text{\\small{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\footnotesize{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\scriptsize{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\tiny{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\mathop ([^{]+?)\\limits/g, "\\mathop{1}\\limits"); data.math = data.math.replace(/\big|Big|bigg|Bigg) *{([^}]+)}/g, "\\1 2"); data.math = data.math.replace(/\\textsc *{([^}]+)}/g, "{\\rm ~#~1~#~}"); data.math = data.math.replace(/\\upvarphi/g, "\\varphi"); var reg = new RegExp("~#~(.*?)~#~", "g"); var m; while (m = reg.exec(data.math)) { var result = ""; for (var index=0; index != m[1].length; index++) { var char = m[1].substr(index, 1); if (char.match(/[a-z]/)) { result += "{\\small "+ char.toUpperCase() + "}"; } else { result += char; } } data.math = data.math.replace(/~#~.*?~#~/, result); } }); } ); </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full.js"> </script></head><body><section id="Sec2_354" class="Section1 RenderAsSection1"><h2 class="Heading">Definition</h2><div class="Para">A linear congruential generator is a pseudorandom generator that produces a sequence of numbers <em class="EmphasisTypeItalic ">x</em><sub>1</sub>, <em class="EmphasisTypeItalic ">x</em><sub>2</sub>, <em class="EmphasisTypeItalic ">x</em><sub>3</sub>, <em class="EmphasisTypeItalic ">…</em> according to the following linear recurrence: <div id="Equa_354" class="Equation EquationMathjax"><div class="EquationContent">{x}_{t} = a{x}_{t-1} + b\quad \mathrm{mod}\ n</div></div> for <em class="EmphasisTypeItalic ">t</em> ≥ 1 (modular arithmetic); integers <em class="EmphasisTypeItalic ">a</em>, <em class="EmphasisTypeItalic ">b</em>, and <em class="EmphasisTypeItalic ">n</em> characterize entirely the generator, and the seed is <em class="EmphasisTypeItalic ">x</em><sub>0</sub>.</div></section></body></html><!--4.0--> <!DOCTYPE html SYSTEM "about:legacy-compat"> <html xmlns="http://www.w3.org/1999/xhtml" lang=""><head><title/><meta charset="utf-8"/><script type="text/x-mathjax-config"> MathJax.Hub.Config({ /* load MathML extension */ extensions: ["mml2jax.js"], /* configure input and output */ jax: ["input/TeX", "input/MathML", "output/HTML-CSS"], /* align display equations to the left */ displayAlign: "left", /* set zoom trigger */ menuSettings: { zoom: "Click" }, /* configuration of the tex2jax preprocessor: - set delimiters for inline and display equations - preview while equations are processed is "TeX" - allow \ to represent a literal dollar sign */ tex2jax: { inlineMath: [ ["\\(","\"] ], displayMath: [ ['$$','$$'], ["\$","\$"] ], preview: ["TeX"], processEscapes: true }, /* configuration of the mml2jax preprocessor: - preview while equations are processed is "MathML" */ mml2jax: { preview: ["MathML"] }, /* configuration of the HTML-CSS output processor: - available fonts are STIX and TeX - preferred font is STIX - use TeX as web-based font if none of the above is available on the user's computer - use TeX font for image fallback mode */ "HTML-CSS": { availableFonts: ["STIX","TeX"], preferredFont: ["STIX"], webFont: ["TeX"], imageFont: ["TeX"], styles: { '.MathJax_Display': { "margin": 0 } } }, TeX: { TagSide: "right", Macros: { upalpha: '{\\unicode{x03B1}}', upbeta: '{\\unicode{x03B2}}', upgamma: '{\\unicode{x03B3}}', updelta: '{\\unicode{x03B4}}', upepsilon: '{\\unicode{x03F5}}', upvarepsilon: '{\\unicode{x03B5}}', upzeta: '{\\unicode{x03B6}}', upeta: '{\\unicode{x03B7}}', uptheta: '{\\unicode{x03B8}}', upvartheta: '{\\unicode{x03D1}}', upiota: '{\\unicode{x03B9}}', upkappa: '{\\unicode{x03BA}}', uplambda: '{\\unicode{x03BB}}', upmu: '{\\unicode{x03BC}}', upnu: '{\\unicode{x03BD}}', upxi: '{\\unicode{x03BE}}', upomicron: '{\\unicode{x03BF}}', uppi: '{\\unicode{x03C0}}', uprho: '{\\unicode{x03C1}}', upsigma: '{\\unicode{x03C3}}', uptau: '{\\unicode{x03C4}}', upupsilon: '{\\unicode{x03C5}}', upphi: '{\\unicode{x03C6}}', upchi: '{\\unicode{x03C7}}', uppsi: '{\\unicode{x03C8}}', upomega: '{\\unicode{x03C9}}', Upalpha: '{\\unicode{x0391}}', Upbeta: '{\\unicode{x0392}}', Upgamma: '{\\unicode{x0393}}', Updelta: '{\\unicode{x0394}}', Upepsilon: '{\\unicode{x0395}}', Upzeta: '{\\unicode{x0396}}', Upeta: '{\\unicode{x0397}}', Uptheta: '{\\unicode{x0398}}', Upvartheta: '{\\unicode{x03F4}}', Upiota: '{\\unicode{x0399}}', Upkappa: '{\\unicode{x039A}}', Uplambda: '{\\unicode{x039B}}', Upmu: '{\\unicode{x039C}}', Upnu: '{\\unicode{x039D}}', Upxi: '{\\unicode{x039E}}', Upomicron: '{\\unicode{x039F}}', Uppi: '{\\unicode{x03A0}}', Uprho: '{\\unicode{x03A1}}', Upsigma: '{\\unicode{x03A3}}', Uptau: '{\\unicode{x03A4}}', Upupsilon: '{\\unicode{x03A5}}', Upphi: '{\\unicode{x03A6}}', Upchi: '{\\unicode{x03A7}}', Uppsi: '{\\unicode{x03A8}}', Upomega: '{\\unicode{x03A9}}', permille: '{\\unicode{x2030}}', hfill: '{\\enspace\\enspace}', enskip: '{\\enspace}', copyright: '{\\unicode{x00A9}}', dag: '{\\unicode{x2020}}', ddag: '{\\unicode{x2021}}', ointop: '{\\unicode{0x222E}}', P: '{\\unicode{0x00B6}}', textregistered: '{\\unicode{0x00AE}}', lhook: '{\\hookrightarrow}', rhook: '{\\hookleftarrow}', fancyscript: ['{\\scr #1}',1], varvec: ['\\pmb{#1}',1], parbox: ['\\mbox{#2}',2], AA: '{\\unicode{x00C5}}' } }, /* configuration of the math menu: - allow the user to select what font to use */ MathMenu: { showFontMenu: true } }); MathJax.Hub.Register.StartupHook("TeX Jax Ready", function () { MathJax.InputJax.TeX.prefilterHooks.Add(function (data) { data.math = data.math.replace(/\\kern *-\\nulldelimiterspace/g, ""); data.math = data.math.replace(/\\mapstochar/g, "\\mapsto"); data.math = data.math.replace(/{?\\ss}?/g, "ß"); data.math = data.math.replace(/\\"a|{\\"a}|\\"{a}/g, "ä"); data.math = data.math.replace(/\\"o|{\\"o}|\\"{o}/g, "ö"); data.math = data.math.replace(/\\"u|{\\"u}|\\"{u}/g, "ü"); data.math = data.math.replace(/\\parbox($\w$)?{(.*?)}{(.*?)\\\\ (.*?)}/g, "\\parbox{2}{$3$4}"); data.math = data.math.replace(/\\user1/g, "\\mathcal"); data.math = data.math.replace(/\\user2/g, "\\pmb"); data.math = data.math.replace(/\\vspace\*?{[^}]+}/g, ""); data.math = data.math.replace(/\\text\\EUR/g, "€"); data.math = data.math.replace(/\\textrm/g, "\\mathrm"); data.math = data.math.replace(/\\bf{/g, "\\mathbf{"); data.math = data.math.replace(/\\text{\\small{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\footnotesize{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\scriptsize{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\tiny{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\mathop ([^{]+?)\\limits/g, "\\mathop{1}\\limits"); data.math = data.math.replace(/\big|Big|bigg|Bigg) *{([^}]+)}/g, "\\1 2"); data.math = data.math.replace(/\\textsc *{([^}]+)}/g, "{\\rm ~#~1~#~}"); data.math = data.math.replace(/\\upvarphi/g, "\\varphi"); var reg = new RegExp("~#~(.*?)~#~", "g"); var m; while (m = reg.exec(data.math)) { var result = ""; for (var index=0; index != m[1].length; index++) { var char = m[1].substr(index, 1); if (char.match(/[a-z]/)) { result += "{\\small "+ char.toUpperCase() + "}"; } else { result += char; } } data.math = data.math.replace(/~#~.*?~#~/, result); } }); } ); </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full.js"> </script></head><body><section id="Sec3_354" class="Section1 RenderAsSection1"><h2 class="Heading">Example</h2><p class="Para">Considering for example <em class="EmphasisTypeItalic ">a</em> = 3, <em class="EmphasisTypeItalic ">b</em> = 5, <em class="EmphasisTypeItalic ">n</em> = 17, and <em class="EmphasisTypeItalic ">x</em><sub>0</sub> = 2, the sequence produced by the linear congruential generator will be 11, 4, 0, 5, 3, 14, 13, 10, 1, 8, 12, 7, 9, 15, 16, <em class="EmphasisTypeItalic ">…</em></p></section></body></html><!--4.0--> <!DOCTYPE html SYSTEM "about:legacy-compat"> <html xmlns="http://www.w3.org/1999/xhtml" lang=""><head><title/><meta charset="utf-8"/><script type="text/x-mathjax-config"> MathJax.Hub.Config({ /* load MathML extension */ extensions: ["mml2jax.js"], /* configure input and output */ jax: ["input/TeX", "input/MathML", "output/HTML-CSS"], /* align display equations to the left */ displayAlign: "left", /* set zoom trigger */ menuSettings: { zoom: "Click" }, /* configuration of the tex2jax preprocessor: - set delimiters for inline and display equations - preview while equations are processed is "TeX" - allow \ to represent a literal dollar sign */ tex2jax: { inlineMath: [ ["\\(","\"] ], displayMath: [ ['$$','$$'], ["\$","\$"] ], preview: ["TeX"], processEscapes: true }, /* configuration of the mml2jax preprocessor: - preview while equations are processed is "MathML" */ mml2jax: { preview: ["MathML"] }, /* configuration of the HTML-CSS output processor: - available fonts are STIX and TeX - preferred font is STIX - use TeX as web-based font if none of the above is available on the user's computer - use TeX font for image fallback mode */ "HTML-CSS": { availableFonts: ["STIX","TeX"], preferredFont: ["STIX"], webFont: ["TeX"], imageFont: ["TeX"], styles: { '.MathJax_Display': { "margin": 0 } } }, TeX: { TagSide: "right", Macros: { upalpha: '{\\unicode{x03B1}}', upbeta: '{\\unicode{x03B2}}', upgamma: '{\\unicode{x03B3}}', updelta: '{\\unicode{x03B4}}', upepsilon: '{\\unicode{x03F5}}', upvarepsilon: '{\\unicode{x03B5}}', upzeta: '{\\unicode{x03B6}}', upeta: '{\\unicode{x03B7}}', uptheta: '{\\unicode{x03B8}}', upvartheta: '{\\unicode{x03D1}}', upiota: '{\\unicode{x03B9}}', upkappa: '{\\unicode{x03BA}}', uplambda: '{\\unicode{x03BB}}', upmu: '{\\unicode{x03BC}}', upnu: '{\\unicode{x03BD}}', upxi: '{\\unicode{x03BE}}', upomicron: '{\\unicode{x03BF}}', uppi: '{\\unicode{x03C0}}', uprho: '{\\unicode{x03C1}}', upsigma: '{\\unicode{x03C3}}', uptau: '{\\unicode{x03C4}}', upupsilon: '{\\unicode{x03C5}}', upphi: '{\\unicode{x03C6}}', upchi: '{\\unicode{x03C7}}', uppsi: '{\\unicode{x03C8}}', upomega: '{\\unicode{x03C9}}', Upalpha: '{\\unicode{x0391}}', Upbeta: '{\\unicode{x0392}}', Upgamma: '{\\unicode{x0393}}', Updelta: '{\\unicode{x0394}}', Upepsilon: '{\\unicode{x0395}}', Upzeta: '{\\unicode{x0396}}', Upeta: '{\\unicode{x0397}}', Uptheta: '{\\unicode{x0398}}', Upvartheta: '{\\unicode{x03F4}}', Upiota: '{\\unicode{x0399}}', Upkappa: '{\\unicode{x039A}}', Uplambda: '{\\unicode{x039B}}', Upmu: '{\\unicode{x039C}}', Upnu: '{\\unicode{x039D}}', Upxi: '{\\unicode{x039E}}', Upomicron: '{\\unicode{x039F}}', Uppi: '{\\unicode{x03A0}}', Uprho: '{\\unicode{x03A1}}', Upsigma: '{\\unicode{x03A3}}', Uptau: '{\\unicode{x03A4}}', Upupsilon: '{\\unicode{x03A5}}', Upphi: '{\\unicode{x03A6}}', Upchi: '{\\unicode{x03A7}}', Uppsi: '{\\unicode{x03A8}}', Upomega: '{\\unicode{x03A9}}', permille: '{\\unicode{x2030}}', hfill: '{\\enspace\\enspace}', enskip: '{\\enspace}', copyright: '{\\unicode{x00A9}}', dag: '{\\unicode{x2020}}', ddag: '{\\unicode{x2021}}', ointop: '{\\unicode{0x222E}}', P: '{\\unicode{0x00B6}}', textregistered: '{\\unicode{0x00AE}}', lhook: '{\\hookrightarrow}', rhook: '{\\hookleftarrow}', fancyscript: ['{\\scr #1}',1], varvec: ['\\pmb{#1}',1], parbox: ['\\mbox{#2}',2], AA: '{\\unicode{x00C5}}' } }, /* configuration of the math menu: - allow the user to select what font to use */ MathMenu: { showFontMenu: true } }); MathJax.Hub.Register.StartupHook("TeX Jax Ready", function () { MathJax.InputJax.TeX.prefilterHooks.Add(function (data) { data.math = data.math.replace(/\\kern *-\\nulldelimiterspace/g, ""); data.math = data.math.replace(/\\mapstochar/g, "\\mapsto"); data.math = data.math.replace(/{?\\ss}?/g, "ß"); data.math = data.math.replace(/\\"a|{\\"a}|\\"{a}/g, "ä"); data.math = data.math.replace(/\\"o|{\\"o}|\\"{o}/g, "ö"); data.math = data.math.replace(/\\"u|{\\"u}|\\"{u}/g, "ü"); data.math = data.math.replace(/\\parbox($\w$)?{(.*?)}{(.*?)\\\\ (.*?)}/g, "\\parbox{2}{$3$4}"); data.math = data.math.replace(/\\user1/g, "\\mathcal"); data.math = data.math.replace(/\\user2/g, "\\pmb"); data.math = data.math.replace(/\\vspace\*?{[^}]+}/g, ""); data.math = data.math.replace(/\\text\\EUR/g, "€"); data.math = data.math.replace(/\\textrm/g, "\\mathrm"); data.math = data.math.replace(/\\bf{/g, "\\mathbf{"); data.math = data.math.replace(/\\text{\\small{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\footnotesize{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\scriptsize{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\tiny{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\mathop ([^{]+?)\\limits/g, "\\mathop{1}\\limits"); data.math = data.math.replace(/\big|Big|bigg|Bigg) *{([^}]+)}/g, "\\1 2"); data.math = data.math.replace(/\\textsc *{([^}]+)}/g, "{\\rm ~#~1~#~}"); data.math = data.math.replace(/\\upvarphi/g, "\\varphi"); var reg = new RegExp("~#~(.*?)~#~", "g"); var m; while (m = reg.exec(data.math)) { var result = ""; for (var index=0; index != m[1].length; index++) { var char = m[1].substr(index, 1); if (char.match(/[a-z]/)) { result += "{\\small "+ char.toUpperCase() + "}"; } else { result += char; } } data.math = data.math.replace(/~#~.*?~#~/, result); } }); } ); </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full.js"> </script></head><body><section id="Sec4_354" class="Section1 RenderAsSection1"><h2 class="Heading">Background</h2><p class="Para">Pseudorandom generators are very useful in cryptography, in protocols, but also in the generation of keystreams in stream ciphers. In this case, they have to present strong properties to face cryptanalysis.</p></section></body></html><!--4.0--> <!DOCTYPE html SYSTEM "about:legacy-compat"> <html xmlns="http://www.w3.org/1999/xhtml" lang=""><head><title/><meta charset="utf-8"/><script type="text/x-mathjax-config"> MathJax.Hub.Config({ /* load MathML extension */ extensions: ["mml2jax.js"], /* configure input and output */ jax: ["input/TeX", "input/MathML", "output/HTML-CSS"], /* align display equations to the left */ displayAlign: "left", /* set zoom trigger */ menuSettings: { zoom: "Click" }, /* configuration of the tex2jax preprocessor: - set delimiters for inline and display equations - preview while equations are processed is "TeX" - allow \ to represent a literal dollar sign */ tex2jax: { inlineMath: [ ["\\(","\"] ], displayMath: [ ['$$','$$'], ["\$","\$"] ], preview: ["TeX"], processEscapes: true }, /* configuration of the mml2jax preprocessor: - preview while equations are processed is "MathML" */ mml2jax: { preview: ["MathML"] }, /* configuration of the HTML-CSS output processor: - available fonts are STIX and TeX - preferred font is STIX - use TeX as web-based font if none of the above is available on the user's computer - use TeX font for image fallback mode */ "HTML-CSS": { availableFonts: ["STIX","TeX"], preferredFont: ["STIX"], webFont: ["TeX"], imageFont: ["TeX"], styles: { '.MathJax_Display': { "margin": 0 } } }, TeX: { TagSide: "right", Macros: { upalpha: '{\\unicode{x03B1}}', upbeta: '{\\unicode{x03B2}}', upgamma: '{\\unicode{x03B3}}', updelta: '{\\unicode{x03B4}}', upepsilon: '{\\unicode{x03F5}}', upvarepsilon: '{\\unicode{x03B5}}', upzeta: '{\\unicode{x03B6}}', upeta: '{\\unicode{x03B7}}', uptheta: '{\\unicode{x03B8}}', upvartheta: '{\\unicode{x03D1}}', upiota: '{\\unicode{x03B9}}', upkappa: '{\\unicode{x03BA}}', uplambda: '{\\unicode{x03BB}}', upmu: '{\\unicode{x03BC}}', upnu: '{\\unicode{x03BD}}', upxi: '{\\unicode{x03BE}}', upomicron: '{\\unicode{x03BF}}', uppi: '{\\unicode{x03C0}}', uprho: '{\\unicode{x03C1}}', upsigma: '{\\unicode{x03C3}}', uptau: '{\\unicode{x03C4}}', upupsilon: '{\\unicode{x03C5}}', upphi: '{\\unicode{x03C6}}', upchi: '{\\unicode{x03C7}}', uppsi: '{\\unicode{x03C8}}', upomega: '{\\unicode{x03C9}}', Upalpha: '{\\unicode{x0391}}', Upbeta: '{\\unicode{x0392}}', Upgamma: '{\\unicode{x0393}}', Updelta: '{\\unicode{x0394}}', Upepsilon: '{\\unicode{x0395}}', Upzeta: '{\\unicode{x0396}}', Upeta: '{\\unicode{x0397}}', Uptheta: '{\\unicode{x0398}}', Upvartheta: '{\\unicode{x03F4}}', Upiota: '{\\unicode{x0399}}', Upkappa: '{\\unicode{x039A}}', Uplambda: '{\\unicode{x039B}}', Upmu: '{\\unicode{x039C}}', Upnu: '{\\unicode{x039D}}', Upxi: '{\\unicode{x039E}}', Upomicron: '{\\unicode{x039F}}', Uppi: '{\\unicode{x03A0}}', Uprho: '{\\unicode{x03A1}}', Upsigma: '{\\unicode{x03A3}}', Uptau: '{\\unicode{x03A4}}', Upupsilon: '{\\unicode{x03A5}}', Upphi: '{\\unicode{x03A6}}', Upchi: '{\\unicode{x03A7}}', Uppsi: '{\\unicode{x03A8}}', Upomega: '{\\unicode{x03A9}}', permille: '{\\unicode{x2030}}', hfill: '{\\enspace\\enspace}', enskip: '{\\enspace}', copyright: '{\\unicode{x00A9}}', dag: '{\\unicode{x2020}}', ddag: '{\\unicode{x2021}}', ointop: '{\\unicode{0x222E}}', P: '{\\unicode{0x00B6}}', textregistered: '{\\unicode{0x00AE}}', lhook: '{\\hookrightarrow}', rhook: '{\\hookleftarrow}', fancyscript: ['{\\scr #1}',1], varvec: ['\\pmb{#1}',1], parbox: ['\\mbox{#2}',2], AA: '{\\unicode{x00C5}}' } }, /* configuration of the math menu: - allow the user to select what font to use */ MathMenu: { showFontMenu: true } }); MathJax.Hub.Register.StartupHook("TeX Jax Ready", function () { MathJax.InputJax.TeX.prefilterHooks.Add(function (data) { data.math = data.math.replace(/\\kern *-\\nulldelimiterspace/g, ""); data.math = data.math.replace(/\\mapstochar/g, "\\mapsto"); data.math = data.math.replace(/{?\\ss}?/g, "ß"); data.math = data.math.replace(/\\"a|{\\"a}|\\"{a}/g, "ä"); data.math = data.math.replace(/\\"o|{\\"o}|\\"{o}/g, "ö"); data.math = data.math.replace(/\\"u|{\\"u}|\\"{u}/g, "ü"); data.math = data.math.replace(/\\parbox($\w$)?{(.*?)}{(.*?)\\\\ (.*?)}/g, "\\parbox{2}{$3$4}"); data.math = data.math.replace(/\\user1/g, "\\mathcal"); data.math = data.math.replace(/\\user2/g, "\\pmb"); data.math = data.math.replace(/\\vspace\*?{[^}]+}/g, ""); data.math = data.math.replace(/\\text\\EUR/g, "€"); data.math = data.math.replace(/\\textrm/g, "\\mathrm"); data.math = data.math.replace(/\\bf{/g, "\\mathbf{"); data.math = data.math.replace(/\\text{\\small{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\footnotesize{([^}]+)}}/g, "\\scriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\scriptsize{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\text{\\tiny{([^}]+)}}/g, "\\scriptscriptstyle{\\text{$1}}"); data.math = data.math.replace(/\\mathop ([^{]+?)\\limits/g, "\\mathop{$1}\\limits"); data.math = data.math.replace(/\\(big|Big|bigg|Bigg) *{([^}]+)}/g, "\\$1 $2"); data.math = data.math.replace(/\\textsc *{([^}]+)}/g, "{\\rm ~#~$1~#~}"); data.math = data.math.replace(/\\upvarphi/g, "\\varphi"); var reg = new RegExp("~#~(.*?)~#~", "g"); var m; while (m = reg.exec(data.math)) { var result = ""; for (var index=0; index != m[1].length; index++) { var char = m[1].substr(index, 1); if (char.match(/[a-z]/)) { result += "{\\small "+ char.toUpperCase() + "}"; } else { result += char; } } data.math = data.math.replace(/~#~.*?~#~/, result); } }); } ); </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full.js"> </script></head><body><section id="Sec5_354" class="Section1 RenderAsSection1"><h2 class="Heading">Applications</h2><p class="Para">Such generators are easy to implement and pass the following statistical tests: Golomb’s randomness postulates, frequency test, serial test, poker test ...</p></section></body></html><!--4.0--> </div> <div class="excerpt-message"></div> </div> <div id="kb-nav--aside" class="col-aside" role="complementary"> <div class="cover"> <div class="look-inside cover-image-animate"> <div class="lookinside-href"> <img class="look-inside-cover" src="http://static-content.springer.com/cover/book/978-1-4419-5906-5.jpg" alt="Encyclopedia of Cryptography and Security" width="153" itemprop="image"/> </div> </div> </div> <div class="book-metrics SideBox hidden" data-url="http://bookmetrix-proxy.live.cf.public.springer.com" data-contenttype="chapter"> <h2 class="SideBox_title">Reference Work Entry Metrics</h2> <div class="book-metrics-items"></div> <div class="Sidebox_footer book-metrics-footer"> <a href="#"> <span>Provided by</span> <span><strong>Book</strong><span>metrix</span></span> </a> </div> </div> <div id="copublisher-container" data-url="http://copublishers.live.cf.public.springer.com/?id=978-1-4419-5906-5&id=978-1-4419-5905-8"></div> <div class="SideBox section-links"> </div> <div class="SideBox other-actions"> <h2 class="SideBox_title">Other actions</h2> <ul> <li> <a id="export-citation" href="/export-citation/referenceworkentry/10.1007/978-1-4419-5906-5_354"> Export citation </a> </li> <li> <a id="about-link" class="external" href="http://www.springer.com/978-1-4419-5905-8?wt_mc=ThirdParty.SpringerLink.3.EPR653.About_eBook" target="_blank" title="It opens in new window"> About this Reference Work </a> </li> <li> <a id="permissions-link" class="external" href="https://s100.copyright.com/AppDispatchServlet?publisherName=Springer&orderBeanReset=true&orderSource=SpringerLink&author=Caroline+Fontaine&AuthorEmail=Caroline.Fontaine%40telecom-bretagne.eu&contentID=10.1007%2F978-1-4419-5906-5_354&openAccess=false&endPage=721&publicationDate=2011&startPage=721&title=Linear+Congruential+Generator&imprint=Springer+Science%2BBusiness+Media%2C+LLC&publication=eBook&authorAddress=Technopole+Brest+Iroise%2C+CS+83818%2C+29238%2C+Brest%C2%A0Cedex%C2%A03%2C+France" target="_blank" title="It opens in new window">Reprints and Permissions</a> </li> <li> <a id="papers-link" class="external webtrekk-track" href="http://redirect.papersapp.com/redirect?url=http://link.springer.com/referenceworkentry/10.1007%2F978-1-4419-5906-5_354" target="_blank" title="It opens in new window" gaCategory="Export" publication="10.1007/978-1-4419-5906-5_354 | Linear Congruential Generator" viewType="Add to Papers">Add to Papers</a> </li> </ul> </div> <div class="SideBox other-actions share"> <h2 class="SideBox_title">Share</h2> <a id="facebook" href="javascript:void(0)" title="Share this content on Facebook">Share this content on Facebook</a> <a id="twitter" href="javascript:void(0)" title="Share this content on Twitter">Share this content on Twitter</a> <a id="linkedin" href="javascript:void(0)" title="Share this content on LinkedIn">Share this content on LinkedIn</a> </div> </div> </div> <div id="kb-nav--aside" class="document-aside" role="complementary"> <input id="relatedItemsSource" type="hidden" value="none"/> <div id="abstract-esm" class="expander expander-empty"> <div class="expander-title"> <div class="heading"> <h2><button>Supplementary Material (0)</button></h2> </div> </div> </div> <div id="abstract-references" class="expander"> <div class="expander-title"> <div class="heading"> <h2><button>References (7)</button></h2> </div> </div> <div class="expander-content"> <div class="expander-content-inner"> <div class="formatted"> <!DOCTYPE html SYSTEM "about:legacy-compat"> <div xmlns="http://www.w3.org/1999/xhtml" xmlns:meta="http://www.springer.com/app/meta" xmlns:epub="http://www.idpf.org/2007/ops" class="FulltextWrapper"><aside class="Bibliography" id="Bib1_354"><h3 class="Heading">Recommended Reading</h3><ol class="BibliographyWrapper"><li class="Citation"><div class="CitationNumber">1.</div><div class="CitationContent" id="CR1_354">Plumstead JB (1982) Inferring a sequence generated by a linear congruence. In: Proceedings of the IEEE 23rd annual symposium on foundations of computer science, IEEE, pp 153–159</div></li><li class="Citation"><div class="CitationNumber">2.</div><div class="CitationContent" id="CR2_354">Plumstead JB (1983) Inferring a sequence produced by a linear congruence. Advances in Cryptology – Crypto’82, Plenum Press, New York, pp 317–319</div></li><li class="Citation"><div class="CitationNumber">3.</div><div class="CitationContent" id="CR3_354">Boyar J (1989) Inferring sequences produced by a linear congruential generator missing low-order bits. J Cryptol 1:177–184<span class="Occurrences"><span class="Occurrence OccurrenceZLBID"><a href="http://www.emis.de/MATH-item?$0673.94009"><span><span>MATH</span></span></a></span><span class="Occurrence OccurrenceAMSID"><a href="http://www.ams.org/mathscinet-getitem?mr=1007218"><span><span>MathSciNet</span></span></a></span><span class="Occurrence OccurrenceDOI"><a href="http://dx.doi.org/10.1007/BF02252875"><span><span>CrossRef</span></span></a></span></span></div></li><li class="Citation"><div class="CitationNumber">4.</div><div class="CitationContent" id="CR4_354">Krawczyk H (1992) How to predict congruential generators. J Algorithms 13:527–545<span class="Occurrences"><span class="Occurrence OccurrenceZLBID"><a href="http://www.emis.de/MATH-item?$0784.65006"><span><span>MATH</span></span></a></span><span class="Occurrence OccurrenceAMSID"><a href="http://www.ams.org/mathscinet-getitem?mr=1187200"><span><span>MathSciNet</span></span></a></span><span class="Occurrence OccurrenceDOI"><a href="http://dx.doi.org/10.1016/0196-6774(92)90054-G"><span><span>CrossRef</span></span></a></span></span></div></li><li class="Citation"><div class="CitationNumber">5.</div><div class="CitationContent" id="CR5_354">Frieze AM, Hastad J, Kannan R, Lagarias JC, Shamir A (1988) Reconstructing truncated integer variables satisfying linear congruence. SIAM J Comput 17:262–280<span class="Occurrences"><span class="Occurrence OccurrenceZLBID"><a href="http://www.emis.de/MATH-item?\$0654.10006"><span><span>MATH</span></span></a></span><span class="Occurrence OccurrenceAMSID"><a href="http://www.ams.org/mathscinet-getitem?mr=935340"><span><span>MathSciNet</span></span></a></span><span class="Occurrence OccurrenceDOI"><a href="http://dx.doi.org/10.1137/0217016"><span><span>CrossRef</span></span></a></span></span></div></li><li class="Citation"><div class="CitationNumber">6.</div><div class="CitationContent" id="CR6_354">Stern J (1987) Secret linear congruential generators are not cryptographically secure. In: Proceedings of the IEEE 28th annual symposium on foundations of computer science, IEEE, pp 421–426</div></li><li class="Citation"><div class="CitationNumber">7.</div><div class="CitationContent" id="CR7_354">Brickell EF, Odlyzko AM (1992) Cryptanalysis: a survey of recent results. Contemporary Cryptology: The Science of Information Integrity, IEEE-Press, New York, pp 501–540</div></li></ol></aside></div> </div> </div> </div> </div> <div id="abstract-about" class="expander expander-open"> <div class="expander-title"> <div class="heading"> <button> <h2>About this Reference Work Entry</h2> </button> </div> </div> <div class="expander-content"> <div class="expander-content-inner"> <div class="summary"> <dl> <dt>Title</dt> <dd id="abstract-about-title">Linear Congruential Generator</dd> <dt>Reference Work Title</dt> <dd id="abstract-about-publication"> <a href="/book/10.1007/978-1-4419-5906-5">Encyclopedia of Cryptography and Security</a> </dd> <dt id="dt-abstract-about-book-chapter-page-ranges">Pages</dt> <dd id="abstract-about-book-chapter-page-ranges">p 721</dd> <dt id="dt-abstract-about-book-chapter-copyright-year">Copyright</dt> <dd id="abstract-about-book-chapter-copyright-year">2011</dd> <dt>DOI</dt> <dd id="abstract-about-book-chapter-doi" class="doi">10.1007/978-1-4419-5906-5_354</dd> <dt id="dt-abstract-about-book-print-isbn">Print ISBN</dt> <dd id="abstract-about-book-print-isbn">978-1-4419-5905-8</dd> <dt id="dt-abstract-about-book-online-isbn">Online ISBN</dt> <dd id="abstract-about-book-online-isbn">978-1-4419-5906-5</dd> <dt id="dt-abstract-about-publisher">Publisher</dt> <dd id="abstract-about-publisher">Springer US</dd> <dt id="dt-abstract-about-book-copyright-holder">Copyright Holder</dt> <dd id="abstract-about-book-copyright-holder">Springer Science+Business Media, LLC</dd> <dt>Additional Links</dt> <dd id="abstract-about-additional-links"> <ul> <li> <a class="external" href="http://www.springer.com/978-1-4419-5905-8?wt_mc=ThirdParty.SpringerLink.3.EPR653.About_eBook" target="_blank" title="It opens in new window">About this Reference Work</a> </li> </ul> </dd> </dl> <dl> <dt>Topics</dt> <dd itemprop="genre"> <ul class="abstract-about-subject"> <li> <a href="/search?facet-subject=%22Data+Structures%2C+Cryptology+and+Information+Theory%22">Data Structures, Cryptology and Information Theory</a> </li> <li> <a href="/search?facet-subject=%22Data+Encryption%22">Data Encryption</a> </li> <li> <a href="/search?facet-subject=%22Coding+and+Information+Theory%22">Coding and Information Theory</a> </li> </ul> </dd> <dt>Industry Sectors</dt> <dd itemprop="genre"> <ul class="abstract-about-industrysectors"> <li> <a title="/industry/electronics" href="/industry/electronics">Electronics</a> </li> <li> <a title="/industry/telecom" href="/industry/telecom">Telecommunications</a> </li> <li> <a title="/industry/it" href="/industry/it">IT & Software</a> </li> </ul> </dd> <dt>eBook Packages</dt> <dd itemprop="genre"> <ul class="abstract-about-ebook-packages"> <li> <a href="/search?package=11645">eBook Package english Computer Science</a> </li> <li> <a href="/search?package=90011652">eBook Package english full Collection</a> </li> </ul> </dd> </dl> <dl> <dt>Editors</dt> <dd> <ul class="editors"> <li itemprop="editor" itemscope="itemscope" itemtype="http://schema.org/Person"> <a class="person" href="/search?facet-creator=%22Henk+C.+A.+van+Tilborg%22" itemprop="name">Henk C. A. van Tilborg</a> <sup title="Department of Mathematics and Computing Science, Eindhoven University of Technology">(376)</sup> </li> <li itemprop="editor" itemscope="itemscope" itemtype="http://schema.org/Person"> <a class="person" href="/search?facet-creator=%22Sushil+Jajodia%22" itemprop="name">Sushil Jajodia</a> <sup title="Center for Secure Information Systems, George Mason University">(377)</sup> </li> </ul> </dd> <dt>Editor Affiliations</dt> <dd> <ul class="editor-affiliations"> <li> <span class="position">376.</span> <span class="affiliation"> Department of Mathematics and Computing Science, Eindhoven University of Technology </span> </li> <li> <span class="position">377.</span> <span class="affiliation"> Center for Secure Information Systems, George Mason University </span> </li> </ul> </dd> <dt>Authors</dt> <dd> <ul class="authors"> <li itemprop="author" itemscope="itemscope" itemtype="http://schema.org/Person"> <a class="person" href="/search?facet-creator=%22Caroline+Fontaine%22" itemprop="name">Caroline Fontaine</a> <a class="envelope" href="mailto:Caroline.Fontaine@telecom-bretagne.eu" title="Caroline.Fontaine@telecom-bretagne.eu"><img src="/static/1.738/images/envelope.png" alt="Caroline.Fontaine@telecom-bretagne.eu"/></a> <sup title="Lab-STICC/CID and Telecom Bretagne/ITI, CNRS/Lab-STICC/CID and Telecom Bretagne">(1)</sup> </li> </ul> </dd> <dt>Author Affiliations</dt> <dd> <ul class="author-affiliations"> <li> <span class="position">1.</span> <span class="affiliation"> Lab-STICC/CID and Telecom Bretagne/ITI, CNRS/Lab-STICC/CID and Telecom Bretagne, Technopole Brest Iroise, CS 83818, 29238, Brest Cedex 3, France </span> </li> </ul> </dd> </dl> </div> </div> </div> </div> </div> </div> <div id="look-inside-interrupt" class="look-inside-interrupt"> <h3>Continue reading...</h3> <div class="col-1"> <p>To view the rest of this content please follow the download PDF link above.</p> </div> </div> </div> <div id="web-trekk-abstract" doi="10.1007/978-1-4419-5906-5_354" parentContentType="ReferenceWork" contentType="ReferenceWorkEntry" viewType="Abstract" publication="10.1007/978-1-4419-5906-5 | Encyclopedia of Cryptography and Security" unsiloed="" embedFulltext="false" openChoice="N"></div> <input id="contentType" type="hidden" value="ReferenceWorkEntry"/> <div id="footer"> <hr/> <div id="footer-verticals" class="section" role="navigation"> <span class="strapline">Over 9 million scientific documents at your fingertips</span> <div class="flyout"> <button class="pillow-btn open-disciplines"> Browse by Discipline <span class="caret"></span> </button> <ol class="disciplines"> <li> <a href="/search?facet-discipline="Architecture+%26+Design"" title="follow this link to go to Architecture & Design">Architecture & Design</a> </li> <li> <a href="/search?facet-discipline="Astronomy"" title="follow this link to go to Astronomy">Astronomy</a> </li> <li> <a href="/search?facet-discipline="Biomedical+Sciences"" title="follow this link to go to Biomedical Sciences">Biomedical Sciences</a> </li> <li> <a href="/search?facet-discipline="Business+%26+Management"" title="follow this link to go to Business & Management">Business & Management</a> </li> <li> <a href="/search?facet-discipline="Chemistry"" title="follow this link to go to Chemistry">Chemistry</a> </li> <li> <a href="/search?facet-discipline="Computer+Science"" title="follow this link to go to Computer Science">Computer Science</a> </li> <li> <a href="/search?facet-discipline="Earth+Sciences+%26+Geography"" title="follow this link to go to Earth Sciences & Geography">Earth Sciences & Geography</a> </li> <li> <a href="/search?facet-discipline="Economics"" title="follow this link to go to Economics">Economics</a> </li> <li> <a href="/search?facet-discipline="Education+%26+Language"" title="follow this link to go to Education & Language">Education & Language</a> </li> <li> <a href="/search?facet-discipline="Energy"" title="follow this link to go to Energy">Energy</a> </li> <li> <a href="/search?facet-discipline="Engineering"" title="follow this link to go to Engineering">Engineering</a> </li> <li> <a href="/search?facet-discipline="Environmental+Sciences"" title="follow this link to go to Environmental Sciences">Environmental Sciences</a> </li> <li> <a href="/search?facet-discipline="Food+Science+%26+Nutrition"" title="follow this link to go to Food Science & Nutrition">Food Science & Nutrition</a> </li> <li> <a href="/search?facet-discipline="Law"" title="follow this link to go to Law">Law</a> </li> <li> <a href="/search?facet-discipline="Life+Sciences"" title="follow this link to go to Life Sciences">Life Sciences</a> </li> <li> <a href="/search?facet-discipline="Materials"" title="follow this link to go to Materials">Materials</a> </li> <li> <a href="/search?facet-discipline="Mathematics"" title="follow this link to go to Mathematics">Mathematics</a> </li> <li> <a href="/search?facet-discipline="Medicine"" title="follow this link to go to Medicine">Medicine</a> </li> <li> <a href="/search?facet-discipline="Philosophy"" title="follow this link to go to Philosophy">Philosophy</a> </li> <li> <a href="/search?facet-discipline="Physics"" title="follow this link to go to Physics">Physics</a> </li> <li> <a href="/search?facet-discipline="Psychology"" title="follow this link to go to Psychology">Psychology</a> </li> <li> <a href="/search?facet-discipline="Public+Health"" title="follow this link to go to Public Health">Public Health</a> </li> <li> <a href="/search?facet-discipline="Social+Sciences"" title="follow this link to go to Social Sciences">Social Sciences</a> </li> <li> <a href="/search?facet-discipline="Statistics"" title="follow this link to go to Statistics">Statistics</a> </li> </ol> </div> </div> <div id="footer-nav" class="section"> <div id="footer-nav-misc"> <div id="footer-our-content" class="block" role="navigation"> <h2>Our Content</h2> <ul> <li> <a title="View Journals" href="/search?facet-content-type=%22Journal%22">Journals</a> </li> <li> <a title="View Books" href="/search?facet-content-type=%22Book%22">Books</a> </li> <li> <a title="View Book Series" href="/search?facet-content-type=%22BookSeries%22">Book Series</a> </li> <li> <a title="View Protocols" href="/search?facet-content-type=%22Protocol%22">Protocols</a> </li> <li> <a title="View Reference Works" href="/search?facet-content-type=%22ReferenceWork%22">Reference Works</a> </li> </ul> </div> <div id="footer-other-sites" class="block" role="navigation"> <h2>Other Sites</h2> <ul> <li> <a title="Visit Springer.com" href="http://www.springer.com/">Springer.com</a> </li> <li> <a title="Visit Springer Protocols" href="http://www.springerprotocols.com/">SpringerProtocols</a> </li> <li> <a title="Visit Springer Materials" href="http://materials.springer.com/">SpringerMaterials</a> </li> </ul> </div> <div class="block" role="navigation"> <h2>Help & Contacts</h2> <ul> <li> <a class="contact-us-link" title="Contact us" href="/contactus">Contact Us</a> </li> <li> <a class="impressum-link" title="View Impressum" href="/impressum">Impressum</a> </li> </ul> </div> </div> </div> <div id="footer-legal" class="section" role="contentinfo"> <div id="mobile-nav"> <span class="pillow-btn open-legal" title="Show Legal Information">Legal</span> </div> <div id="legal" role="contentinfo"> <span id="footer-copyright">© Springer International Publishing AG, Part of Springer Science+Business Media</span> <a id="footer-privacy" title="View Terms and Conditions" href="/termsandconditions">Privacy Policy, Disclaimer, General Terms & Conditions</a> <div id="diagnostic-info"> <span id="diagnostic-login-status">Not logged in</span> <span class="diagnostic-business-partners">Unaffiliated</span> <span id="diagnostic-ip">54.91.19.245</span> </div> </div> </div> <div id="footer-branding" class="section"> <div class="block"> <span id="branding-logo">Springer for Research & Development</span> </div> </div> <div id="google-analytics-account" style="display: none">UA-26408784-1</div> </div> <div id="doubleclick-ad" class="banner-advert"> <script type="text/javascript">if ( window.outerWidth || document.body.clientWidth > 1100 ) { googletag.cmd.push(function() { googletag.display('doubleclick-ad'); }); };</script> </div> </div> <noscript> <div id="jsnotice" class="prompt-bar"> <p> JavaScript is currently disabled<span>, this site works much better if you enable JavaScript in your browser.</span> </p> </div> </noscript> <link rel="stylesheet" media="print" href="/static/1.738/css/print.css"/> <script src="/static/js/webtrekk/webtrekk_v3.js"></script> <script type="text/javascript"> var webtrekkProperties = { trackDomain : "springergmbh01.webtrekk.net", trackId : "935649882378213", pageType : "rd_springer_com.reference_work.entry_abstract" }; </script> <noscript> <div id="webtrekk"> <img src="http://springergmbh01.webtrekk.net/935649882378213/wt?p=315,rd_springer_com.reference_work.entry_abstract" height="1" width="1" alt=""/> </div> </noscript> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-26408784-1', 'auto'); ga('create', 'UA-26408784-4', 'auto', {'name': 'unsiloTracker'}); ga('set', 'dimension2', 'N'); ga('require', 'linkid', 'linkid.js'); ga('send', 'pageview'); </script> <script src="/static/js/lib/jquery.min.js"></script> <script src="/static/js/lib/jquery-ui.min.js"></script> <script src="/static/js/lib/jquery-migrate-1.2.1.min.js"></script> <script src="/static/js/lib/crossmark.js"></script> <script type="text/javascript" src="http://rng-snp-003.com/js/36708.js"></script> <noscript> <img src="http://rng-snp-003.com/36708.png" style="display:none;"/> </noscript> <script type="text/javascript"> var vgWortProperties = { vgWortDomain: 'springer.met.vgwort.de' }; </script> <script src="/static/1.738/js/all.js"></script> <script src="/static/1.738/js/internal/mathJaxConfig.js"></script> <script src="http://rd.springer.com/mathjax/v2.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script src="/static/1.738/js/internal/mathJaxHooks.js"></script> <script type="text/javascript">var _kiq = _kiq || [];</script> <script type="text/javascript" src="//s3.amazonaws.com/ki.js/47412/9CC.js" async="true"></script> </body> </html>