Qubity: Kvantové Raspberry Pi a počítače v NASA, spekulace o kvantově odolném šifrování

4. 9. 2022
Doba čtení: 6 minut

Sdílet

Kvantové Raspberry Pi
Autor: Quantum Village
Kvantové Raspberry Pi
Ve spolupráci s blogem Qubits.cz začínáme vydávat pravidelný přehled novinek z rozsáhlého a rozvíjejícího se oboru kvantových počítačů. Vycházet bude každý víkend.

Kvantové počítače

HPCwire udělalo zajímavý rozhovor s ředitelem kvantové sekce u AWS/Amazonu. Rozhovor se nejdříve zaměřil na Amazon Braket, tedy kvantový cloud, který umožňuje přístup ke kvantovým počítačům různých výrobců. Poměrně nedávno spustili i Amazon Braket Hybrid, který je zaměřený na kvantově-klasické hybridní výpočty, jako je kvantový VQE algoritmus. Nicméně Amazon není jen o Braketu, ale i o Amazon Quantum Solution Lab. Zde Amazon pracuje hlavně na projektech možných kvantových řešení a aplikací, např. s BMW nebo Goldman Sachs. Pak je tu AWS Center for Quantum Computing, které Amazon provozuje společně s Caltech. Zde je cílem Amazonu postavit kvantový počítač odolný kvantovým chybám, tzv. FTQC (Fault-Tolerant Quantum Computer), a hlavně se zaměřují na vylepšené supravodivé qubity. Nedávno navíc Amazon otevřel oddělení kolem kvantových sítí, AWS Center for Quantum Networking. Obecně lze říci, že zatímco kolem Amazon Braket se Amazon snaží hodně a nahlas, ohledně vlastního výzkumu je spíše tajnůstkářský.

Podobně viceprezident Microsoft Quantum dal rozhovor pro Physics World. Mluví se hlavně o Azure Quantum, což je prakticky to stejné jako Amazon Braket. I Microsoft se chce hodně zaměřit na hybridní řešení, která navíc budou podporovaná AI. Oproti Amazonu má však Microsoft hlavně v oblasti kvantových algoritmů několikaletý náskok. Dále Microsoft stále pracuje na tzv. topologických qubitech (dají se označit jako svatý grál, typ qubitů, které jsou velmi odolné kvantovým chybám, avšak zatím nikdo takový qubit neviděl). V tomto výzkumu je tu trochu nešťastná historie ohledně objevu anyonů, tedy jistých kvazičástic. Nicméně poslední výzkumy ukazují, že topologických qubitů by šlo dosáhnout i jinou cestou než pomocí anyonů. A právě výzkum nulových Majoranových modů vypadá slibně. Další povídání bylo o QIR (Quantum Intermediate Representation). Jedná se o softwarovou vrstvu, nad kterou můžete použít libovolný (vysokoúrovňový) programovací jazyk a QIR pak vygeneruje kód pro konkrétní kvantový počítač včetně optimalizací. A co je zajímavé, QIR bude, zdá se, využíván mnoha velkými hráči v kvantovém světě jako Quantinuum, Quantum Computing Inc., Rigetti, Nvidia nebo Oak Ridge National Laboratory.

Pěkný článek o NASA a jeho historii s kvantovými počítači najdete na The Quantum Insider. A to včetně budoucích plánů. NASA si uvědomuje, že kvantové počítače jsou ještě v „batolecím“ věku. Nicméně aktivně přemýšlí a zkoumá, jak by šly v budoucnu využít. Třeba na návrhy budoucích vesmírných lodí na dlouhé vzdálenosti.

Výzkumníci z USA opět posunuli výzkum v oblasti kvantových počítačů z kvantových teček dál. Jeden z hlavních problémů u kvantových teček je, že jsou hodně citlivé na své okolí. To znamená, že pokud je v okolí nečistota, doslova jeden atom, který tam nepatří, změní to energetické poměry v kvantové tečce. Bohužel se zdá, že takovéto nečistoty jsou nevyhnutelné. Z tohoto důvodu výzkumníci přišli s metodou, jak kvantovou tečku na povrchu materiálu posunout o pár nanometrů, aby se dostala mimo vliv dané nečistoty.

Na téma korekce kvantových chyb se objevila další teoretická práce, která k tomuto problému přistupuje jinak. Na chvíli si představme klasický počítač, kde systém pro zachycení chyb je velice vyvinut, a mějme třeba pět redundantních bitů, 11001. Na první pohled by se zdálo, že je větší šance, že správná hodnota má být 1, ale není to 100%. Nicméně lze to vylepšit, pokud víte, kde nastala chyba, danou hodnotu vymažete, tedy něco jako 11XX1, kde situace je už jednoznačná. A právě takovýto přístup zvolil interdisciplinární tým vedený výzkumníky z Princeton University. Zatím se jedná o teoretickou práci zaměřenou hlavně na qubity z neutrálních atomů. Nicméně tato teorie by měla platit obecně a tým již pracuje na demonstraci na reálném kvantovém počítači.

Kvantový software

Multiverse Computing vydalo novou verzi svého Singularity SDK. To primárně zahrnuje jeho Hybrid Solver řešení, které kombinuje klasické a kvantové počítače pro optimalizaci finančních portfolií, kterých zvládne zpracovat až tisíce. Toto SDK má i plugin pro Excel, který můžete napojit, kromě klasických řešení a toho od Multiverse, i na D-Wave Leap Hybrid.

Hračičků, kteří si hrají třeba s Raspberry Pi, kolem nás je spousta. A proč si z toho neudělat takový malý kvantový počítač, respektive jeho simulátor? Neziskovka Quantum Village na GitHubu uvolnila uQ: micro quantum, embedovaný kvantový simulátor pro Raspberry Pi Pico s vizualizacemi podporujícími LCD modul.

Kvantová kryptografie

Obecně, stále tu jsou hodně živé diskuse ohledně kvantově-odolného šifrování (PQC). Jak víme, americké NIST vybralo čtyři kryptografická schémata, která bude standardizovat. Zároveň chvíli před tímto ohlášením bylo jiné ohlášení ohledně rozbití SIKE PQC algoritmu jen na obyčejném laptopu – a to se dostal do úplného finále na možné kandidáty pro standardizaci. Navíc se jedná už o třetí cracknutý PQC algoritmus za posledních několik měsíců. Takže obecná diskuse je, jak moc je proces NIST důvěryhodný (jiné standardizační organizace ani zdaleka tak pečlivé nejsou…) a jak můžeme vybraným algoritmům věřit. Zastánci jsou na obou stranách. Nicméně, převážná shoda do budoucna je na řešeních s tzv. kryptoagilitou, tedy že šifrování bude používat více typů neboli rodin kryptografických schémat a v případě, že by se některé z nich prolomilo, jednoduše se přepne na jiné. Avšak ti z vás, kteří jsou z IT, si dokážou představit, že se bude jednat o poměrně bolestivý proces. Navíc, s důvěryhodností také mírně otřásají různé spekulace, jaká byla případná role NSA. Obecně, NSA ve zkoumání PQC algoritmů má několik let náskok a spekulace říkají, že nechávají projít i algoritmy, kde znají nějaká zadní vrátka… Více o PQC v našem článku.

Kvantové technologie

Německé konsorcium Q.ANT, Bosch, TRUMPF a German Aerospace Center (DLR) oznámilo svůj záměr pracovat na kvantovém senzoru pro lepší stabilitu satelitů. V tomto případě, hlavně Bosch, vyvíjí kvantový gyroskop – buňku, která se naplní plynem, jehož atomy jsou následně excitovány laserovými pulsy a magnetické pole následně způsobí rotaci těchto atomů. Pak, pokud satelit sám začne rotovat, což značí změnu trajektorie, hlavně změnu výšky, se změní i rychlost rotace atomů v senzoru. To nám dává velmi přesnou zpětnou vazbu na chování vlastního satelitu a umožní nám pak aplikovat korekce, aby se satelit držel na co nejstabilnější výšce. Vlastně jde o inerciální kvantový senzor, který by šel použít i pro autonomní navigaci aut či dronů apod. Hlavní výhodou jsou potenciálně velmi malé rozměry umožňující umístit takový senzor i do velmi malých satelitů, jeho stabilita a přesnost.

McKinsey & Company vydalo další report ohledně kvantových technologií. Tento přehled je obzvláště vhodný pro lidi, kteří toho o kvantových technologií moc neslyšeli a rádi by hned pochopili komerční potenciál těchto technologií bez nutnosti si číst o technologickém pozadí. Případně si můžete projít náš kvantový seriál v češtině.

Kvantový byznys, investice a granty

Kvantově-softwarový startup Multiverse Computing a Objectivity, britský poskytovatel IT řešení, oznámili partnerství s cílem přinést řešení s využitím kvantových počítačů pro firmy v Evropě, středním východu a Africe. V tomto případě budou aplikace zaměřené na optimalizace pomocí kvantových počítačů (produkt Singularity od Multiverse) pro finanční, výrobní a zdravotnický sektor.

Instituce a startupy z Finska a Singapuru uzavřely memorandum o společném výzkumu v oblasti kvantových technologií.

Finský IQM a QphoX z Nizozemí se domluvily na spolupráci v oblasti vývoje nového řídicího rozhraní pro škálující se kvantové počítače pomocí optiky. Řízení pomocí optiky se stává pomalu trendem. Hlavní výhoda je, že třeba do kryogenického chlazení u supravodivých kvantových počítačů nezanáší teplo zvenku, na rozdíl od koaxiálních kabelů, kde protéká proud, a tedy se i generuje teplo.

V Austrálii pod vedením národního Tech Council of Australia vzniká Australian Quantum Aliance, jejíž cílem je vybudovat kvantový ekosystém a průmysl právě kolem kvantových technologií. V alianci jsou australské startupy jako QuintessenceLabs, Q-Ctrl, Silicon Quantum Computing, Quantum Brilliance, Nomad Atomics, Diraq, ale i větší hráči jako Rigetti, Microsoft nebo Google.

CIF25_SE_terc

Když tu píšu o různých investicích, jen pár z nich je v Evropě. V investicích ze soukromého kapitálu zcela dominují startupy hlavně z USA. To, jaká je situace v EU, proč tady nejsou tak velké investice, ačkoliv se EU drží světové špičky v kvantových technologií, a co by mohlo pomoci, rozebírají zde.

Přehled původně vyšel na blogu Qubits.cz.

Seriál: Qubity
Neutrální ikona do widgetu na odběr článků ze seriálů

Zajímá vás toto téma? Chcete se o něm dozvědět víc?

Objednejte si upozornění na nově vydané články do vašeho mailu. Žádný článek vám tak neuteče.


Autor článku

Výzkumník v oblasti bezpečnostních aspektů kvantových technologií a teoretické jaderné fyziky na FJFI ČVUT a zakladatel společnosti Quantum Phi. Doktorát má z jaderné a částicové fyziky. Provozuje blog Qubits.cz a je poradcem fondu Tensor Ventures.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »