{"id":224779,"date":"2026-09-07T17:38:14","date_gmt":"2026-09-07T17:38:14","guid":{"rendered":"https:\/\/neodata.com.uy\/labs\/?page_id=224779"},"modified":"2026-09-09T20:11:18","modified_gmt":"2026-09-09T20:11:18","slug":"in-practice","status":"publish","type":"page","link":"https:\/\/neodata.com.uy\/labs\/in-practice\/","title":{"rendered":"In Practice"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section\">\n<div class=\"et_pb_row_0 et_pb_row et_pb_equal_columns et_pb_gutters1 et_block_row\">\n<div class=\"et_pb_column_0 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module preset--module--divi-text--default\"><div class=\"et_pb_text_inner\">    <div class=\"nlabs-channel-page nlabs-channel-practice\">\r\n        <section class=\"nlabs-channel-hero nlabs-channel-hero-light\"><div class=\"nlabs-arc-shell\"><p class=\"nlabs-arc-eyebrow\">\/\/ In Practice<\/p><h1>Selected work in context.<\/h1><p class=\"nlabs-channel-lead\">Applied notes on cryptographic transition, key architecture and constrained systems, with the operational assumptions kept visible.<\/p><div class=\"nlabs-channel-actions\"><a href=\"https:\/\/neodata.com.uy\/labs\/series\/?category=in-practice#browse-articles\">Browse applied work<\/a><a class=\"nlabs-arc-secondary\" href=\"https:\/\/neodata.com.uy\/labs\/about\/\">About the lab<\/a><\/div><\/div><\/section>\r\n        <section class=\"nlabs-channel-section nlabs-channel-latest\"><div class=\"nlabs-arc-shell\"><div class=\"nlabs-arc-head\"><div><p class=\"nlabs-arc-eyebrow\">\/\/ Field implementations<\/p><h2>Applied work and operational lessons.<\/h2><\/div><p>Cryptographic mechanisms considered as parts of live systems rather than isolated primitives.<\/p><\/div><div class=\"nlabs-channel-grid\">    <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/the-payload-must-fit-the-channel\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/constrained-payload-hardware-768x432.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"Open rugged credential scanner showing its NFC coil, camera module and printed radio antenna\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <a class=\"nlabs-arc-chip\" href=\"https:\/\/neodata.com.uy\/labs\/series\/signature-footprint-engineering\/\">Signature Footprint Engineering \u00b7 Part 3<\/a>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/the-payload-must-fit-the-channel\/\">The payload must fit the channel.<\/a><\/h3>\r\n            <p>A compact signed object needs one deterministic binary form and three explicit transport profiles. QR, NFC and Bluetooth LE fail in different ways when signature and key material cross their\u2026<\/p>\r\n            <time datetime=\"2026-08-10T00:50:00+00:00\">AUG 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/selective-proof-not-automatically-smaller\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/bbs-aggregation-footprint-768x432.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"Glass fiber strands converging through a machined metal optical coupler on a pale workbench\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <a class=\"nlabs-arc-chip\" href=\"https:\/\/neodata.com.uy\/labs\/series\/signature-footprint-engineering\/\">Signature Footprint Engineering \u00b7 Part 2<\/a>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/selective-proof-not-automatically-smaller\/\">A selective proof is not automatically smaller.<\/a><\/h3>\r\n            <p>When attributes require independent signatures, BBS can replace N signatures with one multi-message signature, but its selective-disclosure proof grows with every hidden message. The useful crossover depends on what the\u2026<\/p>\r\n            <time datetime=\"2026-08-10T00:40:00+00:00\">AUG 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/signature-key-size-matrix\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/signature-size-matrix-768x432.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"Close-up of an open hardware security module, loose chip packages, a precision caliper and a fiber lead on a pale metrology bench\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <a class=\"nlabs-arc-chip\" href=\"https:\/\/neodata.com.uy\/labs\/series\/signature-footprint-engineering\/\">Signature Footprint Engineering \u00b7 Part 1<\/a>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/signature-key-size-matrix\/\">The signature is not the key.<\/a><\/h3>\r\n            <p>A byte-level comparison of RSA, elliptic-curve, pairing-based and post-quantum signatures shows when recurring signature traffic overtakes key provisioning and storage.<\/p>\r\n            <time datetime=\"2026-08-10T00:30:00+00:00\">AUG 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/secure-key-cannot-make-photographed-qr-fresh\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/visual-replay-checkpoint-768x432.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"Phone displaying a QR code beside a rugged verifier and a small hardware token on a sunlit inspection desk\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <a class=\"nlabs-arc-chip\" href=\"https:\/\/neodata.com.uy\/labs\/series\/offline-visual-exchange\/\">Offline Visual Exchange \u00b7 Part 3<\/a>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/secure-key-cannot-make-photographed-qr-fresh\/\">A secure key cannot make a photographed QR fresh.<\/a><\/h3>\r\n            <p>Hardware-backed signing can prove which mobile key produced an offline QR. It cannot, by itself, prove that the image was created for this verifier, this place or this moment.<\/p>\r\n            <time datetime=\"2026-02-10T01:20:00+00:00\">FEB 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/three-hundred-milliseconds-is-an-operating-envelope\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/qr-optical-decoding-768x432.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"Smartphone with a dense QR code crossing an industrial scanner focal plane with natural motion blur\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <a class=\"nlabs-arc-chip\" href=\"https:\/\/neodata.com.uy\/labs\/series\/offline-visual-exchange\/\">Offline Visual Exchange \u00b7 Part 2<\/a>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/three-hundred-milliseconds-is-an-operating-envelope\/\">Three hundred milliseconds is an operating envelope.<\/a><\/h3>\r\n            <p>Encrypted QR decoding is governed less by cipher choice than by symbol density, module sampling, optics, motion, exposure and the scanner pipeline. A byte budget and a declared test envelope\u2026<\/p>\r\n            <time datetime=\"2026-02-10T01:10:00+00:00\">FEB 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/one-way-qr-key-establishment\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/offline-visual-0rtt-768x432.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"Two hands holding smartphones face to face as one displays a QR code and the other scans it in warm daylight\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <a class=\"nlabs-arc-chip\" href=\"https:\/\/neodata.com.uy\/labs\/series\/offline-visual-exchange\/\">Offline Visual Exchange \u00b7 Part 1<\/a>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/one-way-qr-key-establishment\/\">A one-way QR can establish a key, but not a conversation.<\/a><\/h3>\r\n            <p>An ephemeral X25519 key can protect an offline QR for a pre-provisioned verifier, but freshness, replay resistance and sender authentication still require explicit protocol state.<\/p>\r\n            <time datetime=\"2026-02-10T01:00:00+00:00\">FEB 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/putting-the-trust-boundary-beside-the-reader\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"237\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/mifare_sam_neodata_labs-768x237.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"A hand holds a MIFARE SAM AV3 card against a pale neutral background.\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <span class=\"nlabs-arc-chip\">In Practice<\/span>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Primer<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/putting-the-trust-boundary-beside-the-reader\/\">Putting the trust boundary beside the reader.<\/a><\/h3>\r\n            <p>A SAM can keep master keys out of reader firmware and perform card protocols locally. The security result still depends on permissions, host integration and lifecycle.<\/p>\r\n            <time datetime=\"2026-01-13T10:00:00+00:00\">JAN 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/a-card-migration-is-a-state-machine\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"253\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/Sin-titulo-768x253.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"A hand presents an STM transit card to a circular red contactless validator.\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <span class=\"nlabs-arc-chip\">In Practice<\/span>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/a-card-migration-is-a-state-machine\/\">A card migration is a state machine.<\/a><\/h3>\r\n            <p>Moving a live fare system from MIFARE Classic to MIFARE Plus is not a card replacement exercise. It is a controlled transition across credentials, readers, keys and operational states.<\/p>\r\n            <time datetime=\"2026-01-08T10:00:00+00:00\">JAN 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/designing-a-fare-token-for-intermittent-connectivity\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"302\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/17255-768x302.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"A passenger presents a smartphone fare token to a validator inside a bus.\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <span class=\"nlabs-arc-chip\">Featured<\/span>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/designing-a-fare-token-for-intermittent-connectivity\/\">Designing a fare token for intermittent connectivity.<\/a><\/h3>\r\n            <p>When balance and fare rules remain in a central account, a QR code is not the ticket. It is a compact claim whose meaning depends on connectivity, trust and replay\u2026<\/p>\r\n            <time datetime=\"2026-01-03T10:00:00+00:00\">JAN 2026<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/the-sim-as-a-cryptographic-computer\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"200\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/GD_Triple_SIM-1900x700_c-768x200.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"A SIM chip is held by precision tweezers against a dark laboratory background.\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <span class=\"nlabs-arc-chip\">In Practice<\/span>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Primer<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/the-sim-as-a-cryptographic-computer\/\">The SIM as a cryptographic computer.<\/a><\/h3>\r\n            <p>Long before the secure element became a general platform, SIM and UICC applets provided a small governed environment for keys, authentication and digital signatures.<\/p>\r\n            <time datetime=\"2025-12-28T10:00:00+00:00\">DEC 2025<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/the-token-is-the-easy-part\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"195\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/20216-768x195.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"A payment card with an EMV chip rests beside a numeric keypad.\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <span class=\"nlabs-arc-chip\">In Practice<\/span>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/the-token-is-the-easy-part\/\">The token is the easy part.<\/a><\/h3>\r\n            <p>A token can replace a sensitive value. The difficult work is defining what the replacement means, who may reverse it and how the system behaves over time.<\/p>\r\n            <time datetime=\"2025-12-23T10:00:00+00:00\">DEC 2025<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/keys-without-a-secure-boundary\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"276\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/7813-768x276.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"Shattered glass fragments lie across a vivid coral surface.\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <span class=\"nlabs-arc-chip\">In Practice<\/span>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Analysis<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/keys-without-a-secure-boundary\/\">Keys without a secure boundary.<\/a><\/h3>\r\n            <p>When cryptographic operations must run without an HSM, software can reduce the exposure of key material\u2014but it cannot make a hostile host trustworthy.<\/p>\r\n            <time datetime=\"2025-12-18T10:00:00+00:00\">DEC 2025<\/time>\r\n        <\/div>\r\n    <\/article>\r\n        <article class=\"nlabs-arc-card\">\r\n                    <a class=\"nlabs-arc-image\" href=\"https:\/\/neodata.com.uy\/labs\/when-a-qr-code-was-not-a-format\/\" tabindex=\"-1\" aria-hidden=\"true\">\r\n                <img decoding=\"async\" width=\"768\" height=\"184\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/secure_qr_code_nlabs_1-768x184.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"A hand holds a smartphone displaying a health QR code while another person stands out of focus.\" loading=\"lazy\" \/>            <\/a>\r\n                <div class=\"nlabs-arc-card-body\">\r\n            <div class=\"nlabs-arc-chips\">\r\n                                    <span class=\"nlabs-arc-chip\">In Practice<\/span>\r\n                                                    <span class=\"nlabs-arc-chip nlabs-arc-chip-muted\">Primer<\/span>\r\n                            <\/div>\r\n            <h3><a href=\"https:\/\/neodata.com.uy\/labs\/when-a-qr-code-was-not-a-format\/\">When a QR code was not a format.<\/a><\/h3>\r\n            <p>During the pandemic, visually similar QR codes carried incompatible data models, encodings and trust assumptions. A contribution from Uruguay to PathCheck\u2019s Universal Verifier made that fragmentation tangible.<\/p>\r\n            <time datetime=\"2025-12-13T10:00:00+00:00\">DEC 2025<\/time>\r\n        <\/div>\r\n    <\/article>\r\n    <\/div><\/div><\/section>\r\n    <\/div>\r\n    \n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-224779","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/pages\/224779","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/comments?post=224779"}],"version-history":[{"count":11,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/pages\/224779\/revisions"}],"predecessor-version":[{"id":224833,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/pages\/224779\/revisions\/224833"}],"wp:attachment":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/media?parent=224779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}