<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-pereira-licet-human-intent-00"
     ipr="trust200902"
     submissionType="independent"
     xml:lang="en"
     version="3">

  <front>
    <title abbrev="LICET Human Intent Protocol">
      LICET: A Cryptographic Protocol for Physiological Human-Intent
      Verification in Autonomous AI Agent Authorization
    </title>

    <seriesInfo name="Internet-Draft" value="draft-pereira-licet-human-intent-00"/>

    <author fullname="Christian Rodrigues Pereira" initials="C." surname="Pereira">
      <organization>eColabs Desenvolvimento de Pessoas e Organizacoes LTDA.</organization>
      <address>
        <postal>
          <country>BR</country>
        </postal>
        <email>contato@ecolabs.com.br</email>
        <uri>https://licet.dev</uri>
      </address>
    </author>

    <date year="2026" month="June" day="29"/>

    <area>Security</area>
    <workgroup>Individual Submission</workgroup>

    <keyword>AI safety</keyword>
    <keyword>human oversight</keyword>
    <keyword>biometric authorization</keyword>
    <keyword>zero-knowledge proof</keyword>
    <keyword>autonomous agents</keyword>
    <keyword>coercion detection</keyword>

    <abstract>
      <t>
        Autonomous AI agents executing consequential actions in high-stakes
        domains — medical prescribing, financial transactions, critical
        infrastructure control — require authorization mechanisms that go
        beyond classical identity verification. Existing mechanisms (passwords,
        static biometrics, digital signatures) verify who authorized an action
        but cannot verify whether the authorizing human was genuinely conscious,
        uncoerced, and cognitively capable at the moment of authorization.
      </t>
      <t>
        This document specifies LICET (Latin: "it is permitted"), a
        cryptographic middleware protocol that binds AI agent authorization
        events to the real-time physiological state of the authorizing human.
        LICET defines: (1) a biometric capture and coercion-detection
        procedure using wearable sensor data; (2) per-event session-key
        derivation using HKDF (RFC 5869); (3) a biometric temporal signature
        using HMAC (RFC 2104); (4) a Schnorr zero-knowledge proof over the
        BN128 elliptic curve enabling third-party audit without biometric data
        exposure; and (5) a SHA-256 hash-chained ledger for tamper-evident
        authorization records.
      </t>
      <t>
        A reference implementation is publicly deployed at
        https://licet.dev/v1/ and available as open source at
        https://github.com/christianrp45/licet-protocol.
      </t>
    </abstract>
  </front>

  <middle>

    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
        Artificial intelligence agents are transitioning from passive tools to
        autonomous actors capable of executing actions with real, irreversible
        consequences. A medical AI agent may adjust medication dosages. A
        financial AI may execute wire transfers. An infrastructure AI may
        modify power-grid parameters. In each case, the assumed safeguard is
        human authorization.
      </t>

      <section anchor="intent-gap" numbered="true" toc="default">
        <name>The Intent Gap</name>
        <t>
          Contemporary authorization primitives are designed to answer one
          question: is this person who they claim to be? They are silent on a
          second, equally critical question: is this person currently in a
          state that constitutes genuinely free, conscious, and cognitively
          competent intent?
        </t>
        <t>
          This gap is the intent gap — the absence of a cryptographically
          verifiable mechanism to attest that a human was genuinely capable of
          and free to form the intent they expressed. The EU AI Act
          <xref target="EUAIACT"/> mandates human oversight for high-risk AI
          systems (Article 14) but specifies no technical standard for what
          constitutes verifiable human oversight. LICET provides the technical
          substrate for this regulatory requirement.
        </t>
      </section>

      <section anchor="conventions" numbered="true" toc="default">
        <name>Conventions and Definitions</name>
        <t>
          The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
          "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
          "OPTIONAL" in this document are to be interpreted as described in
          BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and
          only when, they appear in all capitals, as shown here.
        </t>
        <dl newline="false" spacing="normal">
          <dt>Authorizer (H):</dt>
          <dd>The human whose physiological state and intent are being verified.</dd>
          <dt>Agent (A):</dt>
          <dd>An autonomous AI system requesting authorization to perform an action.</dd>
          <dt>LICET Server (S):</dt>
          <dd>The server that holds the master secret key and executes the protocol logic.</dd>
          <dt>Auditor (V):</dt>
          <dd>Any third party who may later verify that a valid authorization occurred, without accessing biometric data.</dd>
          <dt>Wearable (W):</dt>
          <dd>A biometric sensing device worn by the Authorizer.</dd>
          <dt>Intent Hash (h):</dt>
          <dd>A cryptographic binding of an action request to a specific moment in time.</dd>
          <dt>Biometric Signature (sigma):</dt>
          <dd>An HMAC commitment of biometric state to the intent hash.</dd>
          <dt>Coercion Risk:</dt>
          <dd>A categorical assessment (LOW, MEDIUM, HIGH) of the probability that the Authorizer is under duress.</dd>
        </dl>
      </section>
    </section>

    <section anchor="overview" numbered="true" toc="default">
      <name>Protocol Overview</name>
      <t>The LICET authorization protocol proceeds as follows:</t>
      <ol spacing="normal" type="1">
        <li>
          <t>Request. Agent A submits an authorization request to LICET
          Server S specifying: action descriptor (a), agent identifier
          (id_A), target entity (tgt), and Unix timestamp (ts).</t>
        </li>
        <li>
          <t>Biometric Capture. Server S instructs Wearable W to capture
          physiological data over a window t_c (default: 10 seconds):
          heart rate (f_HR), peripheral oxygen saturation (s_O2), and
          heart rate variability (v_HRV).</t>
        </li>
        <li>
          <t>Coercion Detection. Server S evaluates the captured signals
          according to <xref target="coercion"/>. If Coercion Risk is MEDIUM
          or HIGH, or cognitive impairment is detected, authorization
          MUST be denied.</t>
        </li>
        <li>
          <t>Intent Hash Generation. Server S computes:</t>
          <artwork name="" type="" align="left" alt="">
h = SHA-256(a || id_A || tgt || ts)
          </artwork>
        </li>
        <li>
          <t>Session Key Derivation. Server S derives a per-event session
          key using HKDF <xref target="RFC5869"/>:</t>
          <artwork name="" type="" align="left" alt="">
k_s = HKDF-SHA256(k_m, h)
          </artwork>
        </li>
        <li>
          <t>Biometric Signature. Server S computes:</t>
          <artwork name="" type="" align="left" alt="">
sigma = HMAC-SHA256(h || f_HR || s_O2 || v_HRV || ts, k_s)
          </artwork>
        </li>
        <li>
          <t>Zero-Knowledge Proof. Server S generates a Schnorr proof
          as specified in <xref target="zkp"/>.</t>
        </li>
        <li>
          <t>Ledger Append. Server S appends an entry to the hash-chained
          ledger as specified in <xref target="ledger"/>.</t>
        </li>
        <li>
          <t>Authorization Token. Server S returns to Agent A: intent
          hash h, biometric signature sigma, ZKP proof, ledger record
          identifier, and timestamp.</t>
        </li>
      </ol>
    </section>

    <section anchor="coercion" numbered="true" toc="default">
      <name>Biometric Capture and Coercion Detection</name>

      <section numbered="true" toc="default">
        <name>Biometric Sources</name>
        <t>LICET MUST accept biometric input from any of the following sources:</t>
        <ul spacing="normal">
          <li>BLE GATT Heart Rate Profile (IEEE 11073)</li>
          <li>Android Health Connect API</li>
          <li>Apple HealthKit</li>
          <li>Direct I2C sensor integration (e.g., MAX30102)</li>
          <li>Software simulation (development environments only)</li>
        </ul>
      </section>

      <section numbered="true" toc="default">
        <name>Captured Signals</name>
        <t>Three signals MUST be captured over window t_c:</t>
        <ul spacing="normal">
          <li>f_HR: Heart rate in beats per minute (BPM)</li>
          <li>s_O2: Peripheral oxygen saturation in percent (%)</li>
          <li>v_HRV: Root mean square of successive differences (RMSSD) of inter-beat intervals in milliseconds (ms)</li>
        </ul>
      </section>

      <section numbered="true" toc="default">
        <name>Coercion Detection Function</name>
        <t>The coercion detection function C maps physiological signals to a risk level:</t>
        <artwork name="" type="" align="left" alt="">
C(f_HR, v_HRV) =
  HIGH    if f_HR > 130 AND v_HRV &lt; 20
  MEDIUM  if f_HR > 100 AND v_HRV &lt; 35
  LOW     otherwise
        </artwork>
        <t>
          Physiological basis: under acute psychological coercion, the
          sympathetic branch of the autonomic nervous system simultaneously
          elevates heart rate and suppresses HRV <xref target="THAYER2012"/>.
          This dual-axis collapse distinguishes coercion from aerobic exercise,
          where HRV may be maintained or recover rapidly.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Cognitive Impairment Detection</name>
        <artwork name="" type="" align="left" alt="">
I(s_O2) =
  IMPAIRED  if s_O2 &lt; 90
  NORMAL    otherwise
        </artwork>
      </section>

      <section numbered="true" toc="default">
        <name>Authorization Decision</name>
        <t>Authorization MUST be denied if any of the following conditions hold:</t>
        <ul spacing="normal">
          <li>C(f_HR, v_HRV) is MEDIUM or HIGH</li>
          <li>I(s_O2) is IMPAIRED</li>
          <li>Captured signals are outside valid sensor ranges</li>
          <li>Capture window t_c produces insufficient data points</li>
        </ul>
      </section>
    </section>

    <section anchor="crypto" numbered="true" toc="default">
      <name>Intent Hash and Cryptographic Binding</name>

      <section numbered="true" toc="default">
        <name>Intent Hash</name>
        <t>The intent hash uniquely identifies the requested action:</t>
        <artwork name="" type="" align="left" alt="">
h = SHA-256(a || id_A || tgt || ts)
        </artwork>
        <t>
          where || denotes concatenation, a is the UTF-8 encoded action
          descriptor, id_A is the UTF-8 encoded agent identifier, tgt is the
          UTF-8 encoded target entity, and ts is the Unix timestamp encoded
          as a 64-bit big-endian integer.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Session Key Derivation</name>
        <t>A per-event session key SHALL be derived using HKDF <xref target="RFC5869"/>:</t>
        <artwork name="" type="" align="left" alt="">
k_s = HKDF(hash=SHA-256, IKM=k_m, info=h, L=32)
        </artwork>
        <t>
          where k_m is the server master key (minimum 256 bits, generated
          using a cryptographically secure random number generator) and h
          is the intent hash. Session key isolation ensures that compromise
          of k_s for event i does not expose k_s for any other event j,
          nor the master key k_m.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Biometric Temporal Signature</name>
        <artwork name="" type="" align="left" alt="">
sigma = HMAC-SHA256(h || f_HR || s_O2 || v_HRV || ts, k_s)
        </artwork>
        <t>
          The biometric values f_HR, s_O2, v_HRV MUST be encoded as IEEE 754
          double-precision (64-bit) big-endian floating-point values.
        </t>
        <t>Properties:</t>
        <ul spacing="normal">
          <li>Event-unique: ts ensures no replay across distinct events.</li>
          <li>Action-bound: h is embedded; sigma is cryptographically invalid for any action other than the one specified in h.</li>
          <li>Non-invertible: biometric values cannot be recovered from sigma without k_s.</li>
        </ul>
      </section>
    </section>

    <section anchor="zkp" numbered="true" toc="default">
      <name>Zero-Knowledge Proof</name>
      <t>
        LICET uses a non-interactive Schnorr proof over the BN128 elliptic
        curve with the Fiat-Shamir heuristic <xref target="FIAT1987"/>.
        Let G be the BN128 generator point and q the group order.
      </t>

      <section numbered="true" toc="default">
        <name>Proof Generation</name>
        <artwork name="" type="" align="left" alt="">
1. w  = SHA-256(sigma || h) mod q
2. PK = w * G
3. r  randomly sampled from Z_q
4. R  = r * G
5. c  = SHA-256(R || PK || h) mod q
6. s  = (r - c * w) mod q

Proof: pi = (R, c, s, PK)
        </artwork>
      </section>

      <section numbered="true" toc="default">
        <name>Proof Verification</name>
        <t>Given pi = (R, c, s, PK) and intent hash h, a verifier V checks:</t>
        <artwork name="" type="" align="left" alt="">
s * G + c * PK =?= R
AND
c =?= SHA-256(R || PK || h) mod q
        </artwork>
        <t>
          If both equalities hold, V is convinced that the prover possessed
          knowledge of the biometric signature sigma for this intent hash,
          without learning sigma, f_HR, s_O2, or v_HRV.
        </t>
      </section>
    </section>

    <section anchor="ledger" numbered="true" toc="default">
      <name>Tamper-Evident Ledger</name>

      <section numbered="true" toc="default">
        <name>Chaining</name>
        <artwork name="" type="" align="left" alt="">
L_0 = SHA-256(entry_0 || "LICET-GENESIS")
L_n = SHA-256(entry_n || L_{n-1}),  n >= 1
        </artwork>
        <t>
          Any retroactive modification to entry i invalidates L_i through L_n,
          making tampering mathematically detectable by any party recomputing
          the chain.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Integrity Verification</name>
        <t>
          Implementations MUST provide a publicly accessible mechanism to
          verify the full hash chain and return a boolean integrity result,
          without requiring authentication.
        </t>
      </section>
    </section>

    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>

      <section numbered="true" toc="default">
        <name>Replay Attack Prevention</name>
        <t>
          Each authorization event produces a unique intent hash h binding
          the action, agent identifier, target, and timestamp.
          Implementations MUST reject authorization requests with timestamps
          outside a configurable window (RECOMMENDED: 60 seconds).
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Coercion Detection Limitations</name>
        <t>
          The concurrent HR/HRV threshold is a statistical, not absolute,
          protection. Population-level thresholds may produce false positives
          for individuals with baseline tachycardia or false negatives for
          highly trained individuals. Future versions of this protocol SHOULD
          define a personalized baseline calibration procedure.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Biometric Privacy</name>
        <t>
          Raw biometric values MUST NOT be stored in the ledger. The ZKP
          mechanism defined in <xref target="zkp"/> ensures that auditors
          can verify authorization validity without accessing biometric data,
          satisfying data minimization principles of privacy regulations.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Master Key Protection</name>
        <t>
          Implementations MUST protect the master key k_m using hardware
          security modules or equivalent mechanisms. Key rotation procedures
          MUST be defined by each deployment.
        </t>
      </section>
    </section>

    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions at this time.</t>
    </section>

  </middle>

  <back>
    <references>
      <name>References</name>

      <references>
        <name>Normative References</name>

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5869.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml"/>

      </references>

      <references>
        <name>Informative References</name>

        <reference anchor="EUAIACT">
          <front>
            <title>Regulation (EU) 2024/1689 on Artificial Intelligence (EU AI Act)</title>
            <author>
              <organization>European Parliament</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>

        <reference anchor="THAYER2012">
          <front>
            <title>A meta-analysis of heart rate variability and neuroimaging studies: Implications for heart rate variability as a marker of stress and health</title>
            <author initials="J.F." surname="Thayer" fullname="Julian F. Thayer"/>
            <date year="2012"/>
          </front>
          <refcontent>Neuroscience and Biobehavioral Reviews, 36(2):747-756</refcontent>
        </reference>

        <reference anchor="FIAT1987">
          <front>
            <title>How to Prove Yourself: Practical Solutions to Identification and Signature Problems</title>
            <author initials="A." surname="Fiat" fullname="Amos Fiat"/>
            <author initials="A." surname="Shamir" fullname="Adi Shamir"/>
            <date year="1987"/>
          </front>
          <refcontent>Advances in Cryptology - CRYPTO 1986, LNCS vol. 263, pp. 186-194</refcontent>
        </reference>

        <reference anchor="SSRN7018458">
          <front>
            <title>LICET: A Biometric Intent Authorization Protocol for Autonomous AI Agents</title>
            <author initials="C." surname="Pereira" fullname="Christian Rodrigues Pereira"/>
            <date year="2026" month="June" day="29"/>
          </front>
          <refcontent>SSRN Abstract ID 7018458</refcontent>
          <format type="TXT" target="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=7018458"/>
        </reference>

      </references>
    </references>

    <section anchor="timestamp" numbered="false" toc="default">
      <name>Protocol Timestamp</name>
      <t>
        The LICET protocol was first documented and registered on the Bitcoin
        blockchain via OpenTimestamps on February 25, 2026. The SHA-256 hash
        of the original protocol document is publicly archived as a tamper-evident
        timestamp predating this Internet-Draft.
      </t>
    </section>

    <section anchor="implementation" numbered="false" toc="default">
      <name>Reference Implementation</name>
      <t>A reference implementation of this protocol is publicly available:</t>
      <ul spacing="normal">
        <li>Live API: https://licet.dev/v1/</li>
        <li>Source code: https://github.com/christianrp45/licet-protocol</li>
        <li>Preprint: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=7018458</li>
      </ul>
    </section>

  </back>
</rfc>
