{"id":123602,"date":"2025-04-19T15:05:06","date_gmt":"2025-04-19T13:05:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-python-zadejstvovany-kriptofunkczii-s-matematicheskim-dokazatelstvom-nadyozhnosti"},"modified":"2025-04-19T15:05:06","modified_gmt":"2025-04-19T13:05:06","slug":"v-python-zadejstvovany-kriptofunkczii-s-matematicheskim-dokazatelstvom-nadyozhnosti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/news\/v-python-zadejstvovany-kriptofunkczii-s-matematicheskim-dokazatelstvom-nadyozhnosti","title":{"rendered":"U Pythonu su anga\u017eirane kriptofunkcije s matemati\u010dkim dokazom sigurnosti","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Obznanjeno je uspje\u0161no zavr\u0161avanje inicijative za zamjenu implementacija kriptografskih algoritama u Pythonu, koje se nude u modulima hashlib i hmac, s varijantama koje imaju matemati\u010dki dokaz pouzdanosti, pripremljenim od strane projekta &#171;HACL*&#187;. Rad na prelasku na funkcije s matemati\u010dkim dokazom pouzdanosti zapo\u010deo je 2022. godine nakon \u0161to je otkriven overflow u implementaciji SHA3 algoritma, koji se koristi u Python modulu hashlib.      <\/p>\n<p>U glavni repozitorij projekta CPython prihva\u0107en je kod s novim implementacijama kriptografskih hash-funkcija i HMAC algoritama (mehanizam provjere autenti\u010dnosti poruka). Sve hash-funkcije i HMAC-ovi koji se po defaultu nude u Pythonu zamijenjeni su ovjerenim varijantama. Izme\u0111u ostalog, dodana je implementacija HMAC-BLAKE2 koja koristi SIMD instrukcije AVX2 za ubrzanje izra\u010duna. Predvi\u0111a se da \u0107e ovjereni kod u\u0107i u jesensko izdanje Pythona 3.14.        <\/p>\n<p>Nove implementacije kriptografskih funkcija prenesene su iz HACL* biblioteke, koju razvijaju istra\u017eiva\u010di iz francuskog dr\u017eavnog instituta za istra\u017eivanje informatike i automatizacije (INRIA), dijela Microsoft Research i Carnegie Mellon sveu\u010dili\u0161ta. HACL* biblioteka podr\u017eava standardne kriptografske funkcije potrebne za rad TLS 1.3 i punu podr\u0161ku za NaCl API (Networking and Cryptography library), kao \u0161to su Curve25519, Ed25519, AES-GCM, Chacha20, Poly1305, SHA-2, SHA-3, HMAC i HKDF. U performansama je HACL* biblioteka bliska OpenSSL-u, ali za razliku od nje pru\u017ea dodatne garancije pouzdanosti i sigurnosti.       <\/p>\n<p>Kod HACL* napisan je u podskupu funkcionalnog jezika F*, koji nudi sustav zavisnih tipova i preciziranja koji omogu\u0107uju postavljanje to\u010dnih specifikacija (matemati\u010dki model) i jam\u010de odsustvo gre\u0161aka u implementaciji pomo\u0107u SMT formula i pomo\u0107nih alata za dokazivanje. Referentni kod u F* transpilira se u kod na jeziku C putem kompajlera KaRaMeL i dostupan je za integraciju s drugim projektima.     <\/p>\n<p>Verifikacija podrazumijeva definiranje detaljnih specifikacija koje opisuju sve mogu\u0107e pona\u0161anje programa, te formiranje matemati\u010dkog dokaza da napisan kod potpuno odgovara pripremljenim specifikacijama. Verifikacija jam\u010di da \u0107e program raditi samo onako kako su zamislili programeri te da u njemu ne postoje odre\u0111ene klase gre\u0161aka, poput overflowa, dereferenciranja pokaziva\u010da, pristupa ve\u0107 oslobo\u0111enim memorijskim podru\u010djima ili dvostrukog osloba\u0111anja blokova memorije. Tijekom procesa kompilacije osigurava se stroga provjera tipova i vrijednosti \u2014 jedna komponenta nikada ne\u0107e prenijeti drugoj komponenti parametre koji ne odgovaraju specifikaciji, niti \u0107e imati pristup unutarnjim stanjima drugih komponenti.     <\/p>\n<p>Proces prelaska na verificirani kod trajao je dvije i pol godine i zahtijevao reviziju HACL* biblioteke, \u010dija je funkcionalnost pro\u0161irena mogu\u0107nostima potrebnim za transparentnu zamjenu postoje\u0107e funkcionalnosti hashlib. Na primjer, u HACL* je dodana podr\u0161ka za rad u stream modu HMAC, pru\u017eeni su dodatni na\u010dini rada algoritama Blake2, implementiran je novi API za SHA3 koji pokriva sve varijante algoritama porodice Keccak, osigurana su potrebna sredstva za obavje\u0161tavanje o gre\u0161kama (na primjer, u slu\u010daju problema s alokacijom memorije), razvijeni su skripti za automatizaciju premje\u0161tanja novih verzija HACL* u Python repozitorij.<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=63104\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u044b \u043f\u043e \u0437\u0430\u043c\u0435\u043d\u0435 \u0432 Python \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 hashlib \u0438 hmac, \u043d\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c &#171;HACL*&#187;. \u0420\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0443 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u0435\u043b\u0430\u0441\u044c \u0441 2022 \u0433\u043e\u0434\u0430 \u0438 \u0431\u044b\u043b\u0430 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 SHA3, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u0432 Python-\u043c\u043e\u0434\u0443\u043b\u0435 hashlib. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-123602","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u044b \u043f\u043e \u0437\u0430\u043c\u0435\u043d\u0435 \u0432 Python \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 hashlib \u0438 hmac, \u043d\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/news\/v-python-zadejstvovany-kriptofunkczii-s-matematicheskim-dokazatelstvom-nadyozhnosti\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412 Python \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u043a\u0440\u0438\u043f\u0442\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u044b \u043f\u043e \u0437\u0430\u043c\u0435\u043d\u0435 \u0432 Python \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 hashlib \u0438 hmac, \u043d\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/news\/v-python-zadejstvovany-kriptofunkczii-s-matematicheskim-dokazatelstvom-nadyozhnosti\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-04-19T13:05:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-04-19T13:05:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47U Pythonu su uklju\u010dene kripto funkcije s matemati\u010dkim dokazom pouzdanosti | ProHoster","description":"Objavljeno je uspje\u0161no zavr\u0161avanje inicijative za zamjenu implementacija kriptografskih algoritama u Pythonu koje se nude u modulima hashlib i hmac s verzijama koje imaju matemati\u010dki dokaz pouzdanosti.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/news\/v-python-zadejstvovany-kriptofunkczii-s-matematicheskim-dokazatelstvom-nadyozhnosti","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412 Python \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u043a\u0440\u0438\u043f\u0442\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 | ProHoster","og:description":"\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u044b \u043f\u043e \u0437\u0430\u043c\u0435\u043d\u0435 \u0432 Python \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 hashlib \u0438 hmac, \u043d\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435.","og:url":"https:\/\/prohoster.info\/hr\/blog\/news\/v-python-zadejstvovany-kriptofunkczii-s-matematicheskim-dokazatelstvom-nadyozhnosti","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-04-19T13:05:06+00:00","article:modified_time":"2025-04-19T13:05:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"123602","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 12:19:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 12:19:20","updated":"2026-01-23 12:19:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/123602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=123602"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/123602\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=123602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=123602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=123602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}