1<!DOCTYPE html> 2<html id="R-html" lang="en-GB" dir="ltr" itemscope itemtype="http://schema.org/Article" data-r-output-format="html"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0"> 6 <meta name="generator" content="Hugo 0.154.5"> 7 <meta name="generator" content="Relearn 9.0.3+8bb66fa674351f3a0b0917a7552caac686eca920"> 8 <meta name="description" content="A dynamic, real time graph/banner made from an entropy source."> 9 <meta name="author" content="Reallyreallyrandom.com"> 10 <meta name="twitter:card" content="summary"> 11 <meta name="twitter:title" content="About the banner :: Reallyreallyrandom.com"> 12 <meta name="twitter:description" content="A dynamic, real time graph/banner made from an entropy source."> 13 <meta property="og:url" content="http://www.reallyreallyrandom.com/banner-about/index.html"> 14 <meta property="og:site_name" content="Reallyreallyrandom.com"> 15 <meta property="og:title" content="About the banner :: Reallyreallyrandom.com"> 16 <meta property="og:description" content="A dynamic, real time graph/banner made from an entropy source."> 17 <meta property="og:locale" content="en_GB"> 18 <meta property="og:type" content="article"> 19 <meta property="article:section" content="Secure entropy? Your entropy."> 20 <meta itemprop="name" content="About the banner :: Reallyreallyrandom.com"> 21 <meta itemprop="description" content="A dynamic, real time graph/banner made from an entropy source."> 22 <meta itemprop="wordCount" content="252"> 23 <title>About the banner :: Reallyreallyrandom.com</title> 24 <link href="/css/auto-complete/auto-complete.min.css?1784076360" rel="stylesheet"> 25
25<script src="/js/auto-complete/auto-complete.min.js?1784076360" defer></script>
25 26
26<script src="/js/search-lunr.min.js?1784076360" defer></script>
26 27
27<script src="/js/search.min.js?1784076360" defer></script>
27 28
28<script> 29 window.relearn = window.relearn || {}; 30 window.relearn.index_js_url="/searchindex.en.js?1784076360"; 31 </script>
31 32
32<script src="/js/lunr/lunr.min.js?1784076360" defer></script>
32 33
33<script src="/js/lunr/lunr.stemmer.support.min.js?1784076360" defer></script>
33 34
34<script src="/js/lunr/lunr.multi.min.js?1784076360" defer></script>
34 35
35<script src="/js/lunr/lunr.en.min.js?1784076360" defer></script>
35 36
36<script> 37 window.relearn = window.relearn || {}; 38 window.relearn.contentLangs=['en']; 39 </script>
39 40 <link href="/fonts/fontawesome/css/all.min.css?1784076360" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/fonts/fontawesome/css/all.min.css?1784076360" rel="stylesheet"></noscript> 41 <link href="/css/perfect-scrollbar/perfect-scrollbar.min.css?1784076360" rel="stylesheet"> 42 <link href="/css/theme.min.css?1784076360" rel="stylesheet"> 43 <link href="/css/format-html.min.css?1784076360" rel="stylesheet" id="R-format-style"> 44
44<script> 45 window.relearn = window.relearn || {}; 46 // configuration 47 window.relearn.min = `.min`; 48 window.relearn.path='\/banner-about\/index.html'; 49 window.relearn.relBasePath='..'; 50 window.relearn.relBaseUri='..'; 51 window.relearn.absBaseUri='http:\/\/www.reallyreallyrandom.com'; 52 window.relearn.disableInlineCopyToClipboard=false; 53 window.relearn.enableBlockCodeWrap=true; 54 // translations 55 window.T_Copy_to_clipboard = `Copy text to clipboard`; 56 window.T_Copied_to_clipboard = `Text copied to clipboard!`; 57 window.T_Link_copied_to_clipboard = `Link copied to clipboard!`; 58 window.T_Reset_view = `Reset view`; 59 window.T_View_reset = `View reset!`; 60 window.T_No_results_found = `No results found for "{0}"`; 61 window.T_N_results_found = `{1} results found for "{0}"`; 62 window.T_Browser_unsupported_feature = `This browser doesn't support this feature`; 63 // variant stuff 64 window.relearn.themevariants = [ 'rrr-custom-variant' ]; 65 window.relearn.customvariantprefix = "my-custom-"; 66 window.relearn.changeVariant = function(variant) { 67 var oldVariant = document.documentElement.dataset.rThemeVariant; 68 window.localStorage.setItem(window.relearn.absBaseUri + "/variant", variant); 69 document.documentElement.dataset.rThemeVariant = variant; 70 if (oldVariant != variant) { 71 document.dispatchEvent( new CustomEvent('themeVariantLoaded', { detail: { variant, oldVariant } }) ); 72 window.relearn.markVariant(); 73 } 74 } 75 window.relearn.markVariant = function() { 76 var variant = window.localStorage.getItem(window.relearn.absBaseUri + "/variant"); 77 document.querySelectorAll(".R-variantswitcher select").forEach((select) => {select.value = variant;}); 78 } 79 window.relearn.initVariant = function() { 80 var variant = window.localStorage.getItem(window.relearn.absBaseUri + "/variant") ?? ""; 81 if( !variant || 82 (!variant.startsWith(window.relearn.customvariantprefix) && !window.relearn.themevariants.includes(variant)) || 83 (variant.startsWith(window.relearn.customvariantprefix) && !window.localStorage.getItem(window.relearn.absBaseUri + "/variantstylesheet-" + variant)) ){ 84 variant = window.relearn.themevariants[0]; 85 window.localStorage.setItem(window.relearn.absBaseUri + "/variant", variant); 86 } 87 document.documentElement.dataset.rThemeVariant = variant; 88 } 89 window.relearn.initVariant(); 90 window.relearn.markVariant(); 91 </script>
91 92<style> 93:root { 94 --LOGO-IMAGE-width: 8rem; 95} 96</style> 97 98 99 <link href="/css/custom.css?1784076360" rel="stylesheet"> 100 </head> 101 <body class="mobile-support html" data-origin="/banner-about/index.html"> 102 <div id="R-body" class="default-animation"> 103 <div id="R-body-overlay"></div> 104 <nav id="R-topbar" class="default-animation"> 105 <div class="topbar-wrapper default-animation"> 106 <div class="topbar-sidebar-divider default-animation"></div> 107 <div class="topbar-area topbar-area-start" data-area="start"> 108 <div class="topbar-button topbar-button-sidebar default-animation" data-content-empty="disable" data-width-s="show" data-width-m="hide" data-width-l="hide"> 109<span class="btn cstyle button link noborder notitle interactive"><button onclick="toggleNav()" type="button" title="Menu (CTRL+ALT+n)"><i class="fa-fw fas fa-bars"></i></button></span> 110 </div> 111 <div class="topbar-button topbar-button-toc default-animation" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"> 112<span class="btn cstyle button link noborder notitle interactive"><button onclick="toggleTopbarFlyout(this)" type="button" title="Table of Contents (CTRL+ALT+t)"><i class="fa-fw fas fa-table-list"></i></button></span> 113 <div class="topbar-content"> 114 <div class="topbar-content-wrapper"> 115 </div> 116 </div> 117 </div> 118 </div> 119 <ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList"><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement" class="a11y-only"><a itemprop="item" href="/index.html"><span itemprop="name">Secure entropy? Your entropy.</span></a><meta itemprop="position" content="1"> > </li><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement" class=""><span itemprop="name">About the banner</span><meta itemprop="position" content="2"></li> 120 </ol> 121 <div class="topbar-area topbar-area-end" data-area="end"> 122 <div class="topbar-button topbar-button-prev default-animation" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"> 123<span class="btn cstyle button link noborder notitle interactive"><a href="/repositories/index.html" title="Repositories (ð¡)"><i class="fa-fw fas fa-chevron-left"></i></a></span> 124 </div> 125 <div class="topbar-button topbar-button-next default-animation" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"> 126<span class="btn cstyle button link noborder notitle"><span><i class="fa-fw fas fa-chevron-right"></i></span></span> 127 </div> 128 <div class="topbar-button topbar-button-more default-animation" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"> 129<span class="btn cstyle button link noborder notitle interactive"><button onclick="toggleTopbarFlyout(this)" type="button" title="More"><i class="fa-fw fas fa-ellipsis-v"></i></button></span> 130 <div class="topbar-content"> 131 <div class="topbar-content-wrapper"> 132 <div class="topbar-area topbar-area-more" data-area="more"> 133 </div> 134 </div> 135 </div> 136 </div> 137 </div> 138 </div> 139 </nav> 140 <div id="R-main-overlay"></div> 141 <main id="R-body-inner" class="highlightable page" tabindex="-1"> 142 <div class="flex-block-wrapper"> 143<article class="default"> 144 <header class="headline"> 145 </header> 146 147<h1 id="about-the-banner">About the banner</h1> 148 149<p>The banner is 100 data points from the CMOS camera sensor within the <a href="/photonic/index.html">Photonic Instrument</a>. It is served up in sequential RGB format from decoded JPEG frames. Effectively, 100 image raster byte values. It’s intended to look fancy, but is <strong>not</strong> raw entropy per-se for the reasons stated <a href="/photonic/technical/entropy-measurement/index.html">here</a> and <a href="/photonic/live-entropy/index.html">here</a>. Therefore the Shannon entropy rate is approximately 0.023 bits/raster byte. This gives a whopping total of 2.3 Kolmogorov random bits for $H(\text{banner})$, as $ \frac{100}{640 \times 480 \times 3} \times 21,400 $ bits conservatively based on 1 bit of entropy per <code>.jpg</code> file byte.</p> 150<p>It does look ever so wobbly and random though doesnât it? The data for the banner arrives as a 100 byte array, looking something like:- [20,10,6,20,8,4,18,6,2,16,4,2,16,4,3,17,5,3, 17,5,2,16,4,0,13,1,1,15,3,6,20,8,7,21,9,2, 16,4,0,13,1,2,16,4,3,17,5,0,14,2,2,20,19,5, 21,20,6,22,21,9,21,21,10,20,20,12,17,18,10, 15,16,9,13,14,17,21,22,13,17,18,9,13,14,5,9, 10,3,11,11,6,14,14,9,19,19,15,23,22,11,18].</p> 151<p>Itâs slightly counter intuitive as to how the above sequence might be represented by only 2.3 truly random bits. Thatâs because itâs a pseudo random sequence generated by the decoding of a JPEG algorithm operating on a much smaller <code>.jpg</code> file. You might think of this <code>.jpg</code> as akin to a one off seed for a PRNG. Hence <a href="/golden-rules/index.html#3-output-less-entropy-than-you-generate">Golden Rule</a> 3; Donât try to extract more entropy than actually exists. Or $ \text{Ext}: \{0,1\}^n \to \{0,1\}^m $ such that $ \Sigma{m_i} < |\text{.jpg}| $ for every and each image frame, and $ m_i < n_i $ for any individual extraction operation $i$.</p> 152<p>This odd quirk of mathematics/cryptography is further empirical proof of the perils of <a href="/problems/proving-randomness/index.html">computational indistinguishability</a>, and how easy it is to cock-it all up.</p> 153 154 <footer class="footline"> 155 </footer> 156</article> 157 </div> 158 </main> 159 </div> 160 <aside id="R-sidebar" class="default-animation"> 161 <div id="R-header-topbar" class="default-animation"></div> 162 <div id="R-header-wrapper" class="default-animation"> 163 <a id="R-logo" class="R-default direction-row" href="/index.html">
164 <span class="logo-image default-animation" data-r-logo-variant="rrr-custom-variant"> 165<img class="lazy figure-image" loading="lazy" src="/logo.svg" style="height: auto;width: auto;"> 166 </span> 167 </a> 168 <search><form action="/search/index.html" method="get"> 169 <div class="searchbox default-animation"> 170 <button class="search-detail" type="submit" title="Search (CTRL+ALT+f)"><i class="fas fa-fw fa-search"></i></button> 171 <label class="a11y-only" for="R-search-by">Search</label> 172 <input data-search-input id="R-search-by" name="search-by" class="search-by" type="search" placeholder="Search..."> 173 <button class="search-clear" type="button" data-search-clear="" title="Clear search"><i class="fas fa-fw fa-times" title="Clear search"></i></button> 174 </div> 175 </form></search> 176 </div> 177 <div id="R-homelinks" class="default-animation homelinks"> 178 <div class="R-menu-divider default-animation"> 179 <hr class="padding default-animation"> 180 </div> 181 <div class="R-sidebarmenu R-shortcutmenu-homelinks default-animation"> 182 <ul class="space collapsible-menu"> 183 <li class="" data-nav-id="/index.html"><a class="padding" href="/index.html"><i class="fa-fw fas fa-home"></i> Home</a></li> 184 </ul> 185 </div> 186 <div class="R-menu-divider default-animation"> 187 <hr class="padding default-animation"> 188 </div> 189 <div class="R-sidebarmenu R-shortcutmenu-headercontrols default-animation"> 190 <ul class=""> 191 </ul> 192 </div> 193 <div class="R-menu-divider default-animation"> 194 <hr class="padding default-animation"> 195 </div> 196 </div> 197 <div id="R-content-wrapper" class="highlightable"> 198 <div class="R-sidebarmenu R-shortcutmenu-main default-animation"> 199 <ul class="enlarge morespace collapsible-menu"> 200 <li class="" data-nav-id="/entropy-is/index.html"><a class="padding" href="/entropy-is/index.html">Entropy is...<i class="fa-fw fas fa-check read-icon"></i></a></li> 201 <li class="" data-nav-id="/news/index.html"><a class="padding" href="/news/index.html">What's new?<i class="fa-fw fas fa-check read-icon"></i></a></li> 202 <li class="" data-nav-id="/problems/index.html"><a class="padding default-animation" href="/problems/index.html">Problems with TRNGs<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-c67ad2eb3037a1bcbe769aeec1431385" class="collapsible-menu"></ul></li> 203 <li class="" data-nav-id="/about/index.html"><a class="padding default-animation" href="/about/index.html">About this site<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-77102f70526b1c2db0eced54632dc618" class="collapsible-menu"></ul></li> 204 <li class="" data-nav-id="/golden-rules/index.html"><a class="padding default-animation" href="/golden-rules/index.html">Three Golden Rules...<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-ff989e9d4801696c721e27f6fa391d53" class="collapsible-menu"></ul></li> 205 <li class="" data-nav-id="/zener/index.html"><a class="padding default-animation" href="/zener/index.html">Zener diode entropy source<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-23cbdca9dc8ab5fec3906509cd7ec0f6" class="collapsible-menu"></ul></li> 206 <li class="" data-nav-id="/photonic/index.html"><a class="padding default-animation" href="/photonic/index.html">Photonic Instrument<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-ca71fac389e3d8884d5204f104a095fa" class="collapsible-menu"></ul></li> 207 <li class="" data-nav-id="/zenerglass/index.html"><a class="padding default-animation" href="/zenerglass/index.html">Zenerglass<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-a7e52f13f4315604b7e480541d866d45" class="collapsible-menu"></ul></li> 208 <li class="" data-nav-id="/random-number/index.html"><a class="padding" href="/random-number/index.html">Live random digits<i class="fa-fw fas fa-check read-icon"></i></a></li> 209 <li class="" data-nav-id="/nullgamma/index.html"><a class="padding default-animation" href="/nullgamma/index.html">Null Gamma Device<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-ff67695a6b3fa8bb7b0ae0349a920924" class="collapsible-menu"></ul></li> 210 <li class="" data-nav-id="/matahari/index.html"><a class="padding default-animation" href="/matahari/index.html">Type 3 - Mata Hari<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-f25f31a30756241b445094b4cb68c5dd" class="collapsible-menu"></ul></li> 211 <li class="" data-nav-id="/contact-us/index.html"><a class="padding default-animation" href="/contact-us/index.html">Contact us<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-a875fe50fd6b33e4aecadab93a3deeaf" class="collapsible-menu"></ul></li> 212 <li class="" data-nav-id="/ent3000/index.html"><a class="padding default-animation" href="/ent3000/index.html">ent3000<i class="fa-fw fas fa-check read-icon"></i></a><ul id="R-subsections-183ba44cf1a3236cd1dddccd8e24c3a8" class="collapsible-menu"></ul></li> 213 <li class="" data-nav-id="/repositories/index.html"><a class="padding" href="/repositories/index.html">Repositories<i class="fa-fw fas fa-check read-icon"></i></a></li> 214 <li class="active hidden " data-nav-id="/banner-about/index.html"><a class="padding" href="/banner-about/index.html">About the banner<i class="fa-fw fas fa-check read-icon"></i></a></li> 215 </ul> 216 </div> 217 <div class="R-sidebarmenu R-shortcutmenu-shortcuts default-animation"> 218 <div class="nav-title padding">More</div> 219 <ul class="space collapsible-menu"> 220 <li class="" data-nav-id="/photonic/live-entropy/index.html"><a class="padding" href="/photonic/live-entropy/index.html"><i class='fas fa-chart-line'></i> Photonic entropy<i class="fa-fw fas fa-check read-icon"></i></a></li> 221 <li class="" data-nav-id="/zenerglass/live-entropy/index.html"><a class="padding" href="/zenerglass/live-entropy/index.html"><i class='fas fa-chart-line'></i> Zenerglass entropy<i class="fa-fw fas fa-check read-icon"></i></a></li> 222 <li class="" data-nav-id="/nullgamma/live-entropy/index.html"><a class="padding" href="/nullgamma/live-entropy/index.html"><i class='fas fa-chart-line'></i> Null Gamma entropy<i class="fa-fw fas fa-check read-icon"></i></a></li> 223 <li class="" data-nav-id="/random-number/index.html"><a class="padding" href="/random-number/index.html"><i class='fas fa-th'></i> Random digits<i class="fa-fw fas fa-check read-icon"></i></a></li> 224 <li class="" data-nav-id="/entropyservlets/random-walk.jsp"><a class="padding" href="/entropyservlets/random-walk.jsp"><i class='fas fa-running'></i> Random walk<i class="fa-fw fas fa-check read-icon"></i></a></li> 225 <li class="" data-nav-id="/zenerglass/life-answers/index.html"><a class="padding" href="/zenerglass/life-answers/index.html"><i class='fas fa-hamsa'></i> Life answers<i class="fa-fw fas fa-check read-icon"></i></a></li> 226 </ul> 227 </div> 228 <div id="R-footer-margin" class="default-animation"></div> 229 <div class="R-menu-divider default-animation"> 230 <hr class="padding default-animation"> 231 </div> 232 <div class="R-sidebarmenu R-shortcutmenu-footercontrols default-animation"> 233 <ul class=""> 234 <li class="R-historyclearer"> 235 <div class="padding menu-control"> 236 <i class="fa-fw fas fa-history"></i>
237 <span> </span> 238 <div class="control-style"> 239 <button>Clear History</button> 240 </div> 241 <div class="clear"></div> 242 </div> 243 </li> 244 </ul> 245 </div> 246<div id="R-footer" class="default-animation"><p>Built with <a href="https://github.com/McShelby/hugo-theme-relearn" title="love"><i class="fas fa-heart"></i></a> by 247 <a href="https://gohugo.io/">Hugo</a></p></div> 248 </div> 249 </aside> 250
250<script> 251 window.MathJax = Object.assign( window.MathJax || {}, { 252 tex: { 253 inlineMath: [['\\(', '\\)'], ['$', '$']], 254 displayMath: [['\\[', '\\]'], ['$$', '$$']], 255 }, 256 options: { 257 enableMenu: true 258 , 259 menuOptions: { 260 settings: { 261 zoom: 'Click', 262 zscale: '250%', 263 }}} 264 }, JSON.parse("{}") ); 265 </script>
265 266
266<script id="MathJax-script" async src="/js/mathjax/tex-mml-chtml.js?1784076360"></script>
266 267
267<script src="/js/perfect-scrollbar/perfect-scrollbar.min.js?1784076360" defer></script>
267 268
268<script src="/js/theme.min.js?1784076360" defer></script>
268 269 <div id="toast-container" role="status" aria-live="polite" aria-atomic="false"></div> 270 </body> 271</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.