49、可验证重加密:如何检测恶意活动

可验证重加密:如何检测恶意活动

在当今的加密领域,可验证代理重加密(VPRE)方案对于保障数据安全和检测恶意活动起着至关重要的作用。本文将深入探讨VPRE方案的相关内容,包括其语法、安全定义以及具体实现。

1. VPRE方案的语法

VPRE方案主要由以下七个算法构成:
- KG :密钥生成算法,输入为 $1^k$,输出秘密密钥 $sk$ 和公钥 $pk$,表示为 $(sk, pk) \leftarrow KG(1^k)$。
- RKG :重加密密钥生成算法,以用户 $i$ 的秘密密钥 $sk_i$ 和用户 $j$ 的公钥 $pk_j$ 为输入,输出重加密密钥 $rk_{i \to j}$,即 $rk_{i \to j} \leftarrow RKG(sk_i, pk_j)$。
- Enc :加密算法,输入为公钥 $pk$ 和明文 $m$,输出可被重加密的二级密文 $c$,表示为 $c \leftarrow Enc(pk, m)$。
- REnc :重加密算法,以用户 $i$ 的二级密文 $c$ 和重加密密钥 $rk_{i \to j}$ 为输入,输出用户 $j$ 的一级密文 $\tilde{c}$ 或特殊符号 $\perp$(表示 $rk_{i \to j}$ 或 $c$ 无效),即 $\tilde{c}$(或 $\perp$)$\leftarrow REnc(rk_{i \to j}, c)$。
- REncVer :重加密验证算法,输入为用户 $i$ 的公钥 $pk_i$、用户 $j$ 的秘密密钥 $sk_j$、二级密文 $c$ 和一级密文 $\tilde{c}$,输出 $\top$(表示 $\tilde{c}$ 是 $c_i$ 的有效重加密密文)或 $\perp$,表示为 $\top$(或 $\perp$)$\leftarrow REncVer(pk_i, sk_j, c, \tilde{c})$。
- Dec1 :一级解密算法,以秘密密钥 $sk$ 和一级密文 $\tilde{c}$ 为输入,输出解密结果 $m$(可能为特殊符号 $\perp$,表示 $\tilde{c}$ 无效),即 $m \leftarrow Dec1(sk, \tilde{c})$。
- Dec2 :二级解密算法,以秘密密钥 $sk$ 和二级密文 $c$ 为输入,输出解密结果 $m$(可能为 $\perp$),即 $m \leftarrow Dec2(sk, c)$。

一个VPRE方案若满足以下条件,则被认为是正确的:对于从 $KG(1^k)$ 输出的所有 $(sk_i, pk_i)$ 和 $(sk_j, pk_j)$、所有明文 $m$、所有 $rk_{i \to j} \leftarrow RKG(sk_i, pk_j)$、所有 $c_i \leftarrow Enc(pk_i, m)$ 以及所有 $\tilde{c} j \leftarrow REnc(rk {i \to j}, c_i)$,有:
1. $Dec2(sk_i, c_i) = m$。
2. $Dec1(sk_j, \tilde{c}_j) = m$。
3. $REncVer(pk_i, sk_j, c_i, \tilde{c}_j) = \top$。

以下是VPRE方案各算法的流程说明:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(KG算法):::process
    B --> C(生成sk和pk):::process
    C --> D(RKG算法):::process
    D --> E(生成rk_{i->j}):::process
    E --> F(Enc算法):::process
    F --> G(生成二级密文c):::process
    G --> H(REnc算法):::process
    H --> I{是否有效?}:::decision
    I -->|是| J(生成一级密文~c):::process
    I -->|否| K(输出⊥):::process
    J --> L(REncVer算法):::process
    L --> M{是否有效?}:::decision
    M -->|是| N(输出⊤):::process
    M -->|否| O(输出⊥):::process
    J --> P(Dec1算法):::process
    P --> Q{是否有效?}:::decision
    Q -->|是| R(输出解密结果m):::process
    Q -->|否| S(输出⊥):::process
    G --> T(Dec2算法):::process
    T --> U{是否有效?}:::decision
    U -->|是| V(输出解密结果m):::process
    U -->|否| W(输出⊥):::process
    R --> X([结束]):::startend
    V --> X
    K --> X
    O --> X
    S --> X
    W --> X
2. VPRE方案的安全定义

VPRE方案的安全定义主要包括以下三个方面:

2.1 健全性(Soundness)

健全性的定义是为了避免重加密验证算法 $REncVer$ 出现无意义的“正确”情况。大致来说,健全性保证了拥有重加密密钥 $rk_{i \to j}$ 的攻击者在给定原始二级密文 $c$ 时,只能生成解密结果与 $c$ 相同的重加密密文 $\tilde{c}$;若攻击者没有重加密密钥,则无法生成有效的重加密密文。

具体通过一个游戏来定义健全性,该游戏由挑战者和攻击者 $A$ 参与,参数为整数 $n \in N$:
1. 挑战者为诚实用户生成密钥对 $(sk_i, pk_i) \leftarrow KG(1^k)$,$i \in [n]$,并设置 $PK = {pk_i} {i \in [n]}$。
2. 挑战者为挑战用户生成密钥对 $(sk
{i^ }, pk_{i^ }) \leftarrow KG(1^k)$。
3. 挑战者将 $1^k$ 和 $PK^ = PK \cup {pk_{i^ }}$ 提供给 $A$。
4. $A$ 可以自适应地进行以下类型的查询:
- 重加密密钥生成(RKG)查询 :输入 $(pk_i \in PK^ , pk_j)$,若 $pk_i = pk_{i^ }$ 且 $pk_j \notin PK^ $,挑战者回复 $\perp$;否则,回复 $RKG(sk_i, pk_j)$。
-
重加密(REnc)查询 :输入 $(pk_i \in PK^ , pk_j, c)$,挑战者回复 $REnc(RKG(sk_i, pk_j), c)$。
- 重加密验证(REncVer)查询 :输入 $(pk_i, pk_j \in PK^ , c, \tilde{c})$,挑战者回复 $REncVer(pk_i, sk_j, c, \tilde{c})$。
-
挑战查询 :仅可查询一次,输入 $m^ $,挑战者运行 $c^ \leftarrow Enc(pk_{i^ }, m^ )$,并将 $c^ $ 返回给 $A$。
- 一级解密(Dec1)查询 :输入 $(pk_j \in PK^ , \tilde{c})$,挑战者回复 $Dec1(sk_j, \tilde{c})$。
-
二级解密(Dec2)查询 :输入 $(pk_i \in PK^ , c)$,挑战者回复 $Dec2(sk_i, c)$。
5. 最后,若 $A$ 输出的 $(pk_j \in PK^ , \tilde{c}^ )$ 满足以下三个条件,则 $A$ 赢得游戏:
- $REncVer(pk_{i^ }, sk_j, c^ , \tilde{c}^ ) = \top$。
- $\tilde{c}^
$ 不是 $A$ 某些 $REnc$ 查询(形式为 $(pk_{i^ }, pk_j, c^ )$)的答案。
- 满足以下两个条件之一:
- 若 $A$ 提交过形式为 $(pk_{i^ }, pk_j)$ 的 $RKG$ 查询并获得重加密密钥 $rk_{i^ \to j}$,则 $Dec1(sk_j, \tilde{c}^ ) \neq m^ $。
- 否则,$Dec1(sk_j, \tilde{c}^*) \neq \perp$。

我们定义 $A$ 的优势为 $Adv_{SND - VPRE}^{(A,n)}(k) = Pr[A$ 赢$]$。若对于任何多项式时间概率算法(PPT)攻击者 $A$ 和所有正多项式 $n$,$Adv_{SND - VPRE}^{(A,n)}(k)$ 都是可忽略的,则称VPRE方案满足健全性。

2.2 二级密文的选择密文攻击安全(Second - Level CCA Security)

二级密文的CCA安全通过一个游戏来定义,同样由挑战者和攻击者 $A$ 参与,参数为整数 $n \in N$:
1. 挑战者为诚实用户生成密钥对 $(sk_i, pk_i) \leftarrow KG(1^k)$,$i \in [n]$,并设置 $PK = {pk_i} {i \in [n]}$。
2. 挑战者为挑战用户生成密钥对 $(sk
{i^ }, pk_{i^ }) \leftarrow KG(1^k)$。
3. 挑战者将 $1^k$ 和 $PK^ = PK \cup {pk_{i^ }}$ 提供给 $A$。
4. $A$ 可以自适应地进行以下类型的查询:
- 重加密密钥生成(RKG)和重加密验证(REncVer)查询 :与健全性游戏中的查询相同。
- 重加密(REnc)查询 :输入 $(pk_i \in PK^ , pk_j, c)$,若 $(pk_i, c) = (pk_{i^ }, c^ )$ 且 $pk_j \notin PK^ $,挑战者返回 $\perp$ 给 $A$;否则,挑战者回复 $REnc(RKG(sk_i, pk_j), c)$。
- 挑战查询 :仅可查询一次,输入 $(m_0, m_1)$,挑战者随机选择一个比特 $b \in {0, 1}$,计算 $c^ \leftarrow Enc(pk_{i^ }, m_b)$,并将 $c^ $ 给 $A$。
-
一级解密(Dec1)查询 :输入 $(pk_j \in PK^ , \tilde{c})$,若 $REncVer(pk_{i^ }, sk_j, c^ , \tilde{c}) = \top$,挑战者返回 $\perp$ 给 $A$;否则,挑战者回复 $Dec1(sk_j, \tilde{c})$。
- 二级解密(Dec2)查询 :输入 $(pk_i \in PK^ , c)$,若 $(pk_i, c) = (pk_{i^ }, c^*)$,挑战者返回特殊符号 $\perp$ 给 $A$;否则,挑战者回复 $Dec2(sk_i, c)$。
5. 最后,$A$ 输出对 $b$ 的猜测 $b’$,若 $b = b’$,则 $A$ 赢得游戏。我们定义 $A$ 的优势为 $Adv_{second - VPRE}^{(A,n)}(k) = | Pr[b = b’] - 1/2|$。若对于任何PPT攻击者 $A$ 和所有正多项式 $n$,$Adv_{second - VPRE}^{(A,n)}(k)$ 都是可忽略的,则称VPRE方案是二级CCA安全的。

2.3 一级密文的选择密文攻击安全(First - Level CCA Security)

一级密文的CCA安全也通过一个游戏来定义,由挑战者和攻击者 $A$ 参与:
1. 挑战者生成挑战密钥对 $(sk^ , pk^ ) \leftarrow KG(1^k)$,并将 $1^k$ 和 $pk^ $ 给 $A$。
2. $A$ 可以自适应地进行以下类型的查询:
-
重加密密钥生成(RKG)查询 :输入 $pk$,挑战者回复 $RKG(sk^ , pk)$。
- 重加密验证(REncVer)查询 :输入 $(pk, c, \tilde{c})$,挑战者回复 $REncVer(pk, sk^ , c, \tilde{c})$。
-
挑战查询 :仅可查询一次,输入 $(sk_A, pk_A, m_0, m_1)$(其中 $(sk_A, pk_A)$ 必须是有效密钥对),挑战者随机选择挑战比特 $b \in {0, 1}$,运行 $c \leftarrow Enc(pk_A, m_b)$ 和 $\tilde{c}^ \leftarrow REnc(RKG(sk_A, pk^ ), c)$,然后将 $\tilde{c}^ $ 返回给 $A$。
- 一级解密(Dec1)查询 :输入 $\tilde{c}$,若 $\tilde{c} = \tilde{c}^ $,挑战者返回特殊符号 $\perp$ 给 $A$;否则,挑战者回复 $Dec1(sk^ , \tilde{c})$。
- 二级解密(Dec2)查询 :输入 $c$,挑战者回复 $Dec2(sk^*, c)$。
3. 最后,$A$ 输出对 $b$ 的猜测 $b’$,若 $b = b’$,则 $A$ 赢得游戏。我们定义 $A$ 的优势为 $Adv_{first - VPRE}^A(k) = | Pr[b = b’] - 1/2|$。若对于任何PPT攻击者 $A$,$Adv_{first - VPRE}^A(k)$ 都是可忽略的,则称VPRE方案是一级CCA安全的。

3. 与其他定义的差异及兼容性

与其他PRE方案的定义相比,VPRE方案的健全性是一个新的安全定义。在一级CCA安全的定义中,我们允许攻击者进行 $REncVer$ 查询,这比其他定义更强大。在二级密文的安全定义中,我们使用 $REncVer$ 来决定“禁止”的解密查询,简化了定义,同时需要健全性来保证 $REncVer$ 的意义。

此外,我们证明了VPRE方案的安全定义具有“向后兼容性”:
- 若VPRE方案在我们的一级CCA安全定义下是安全的,则在其他方案的一级CCA安全定义下也是安全的。
- 若VPRE方案在我们的二级CCA安全定义下是安全的且满足健全性,则在其他方案的二级CCA安全定义下也是安全的。

以下是不同安全定义下的查询和响应对比表格:
| 安全定义 | RKG查询 | REnc查询 | REncVer查询 | Dec1查询 | Dec2查询 | 挑战查询 |
| — | — | — | — | — | — | — |
| 健全性 | 若 $pki = pki^ $ 且 $pkj \notin PK^ $,回复 $\perp$;否则,回复 $RKG(ski, pkj)$ | 回复 $REnc(RKG(ski, pkj), c)$ | 回复 $REncVer(pki, skj, c, \tilde{c})$ | 回复 $Dec1(skj, \tilde{c})$ | 回复 $Dec2(ski, c)$ | 输入 $m^ $,运行 $c^ \leftarrow Enc(pki^ , m^ )$ 并返回 $c^ $ |
| 二级CCA安全 | 与健全性相同 | 若 $(pki, c) = (pki^
, c^ )$ 且 $pkj \notin PK^ $,返回 $\perp$;否则,回复 $REnc(RKG(ski, pkj), c)$ | 与健全性相同 | 若 $REncVer(pki^ , skj, c^ , \tilde{c}) = \top$,返回 $\perp$;否则,回复 $Dec1(skj, \tilde{c})$ | 若 $(pki, c) = (pki^ , c^ )$,返回 $\perp$;否则,回复 $Dec2(ski, c)$ | 输入 $(m0, m1)$,随机选 $b$,计算 $c^ \leftarrow Enc(pki^ , mb)$ 并返回 $c^ $ |
| 一级CCA安全 | 回复 $RKG(sk^
, pk)$ | - | 回复 $REncVer(pk, sk^ , c, \tilde{c})$ | 若 $\tilde{c} = \tilde{c}^ $,返回 $\perp$;否则,回复 $Dec1(sk^ , \tilde{c})$ | 回复 $Dec2(sk^ , c)$ | 输入 $(skA, pkA, m0, m1)$,随机选 $b$,运行 $c \leftarrow Enc(pkA, mb)$ 和 $\tilde{c}^ \leftarrow REnc(RKG(skA, pk^ ), c)$ 并返回 $\tilde{c}^*$ |

可验证重加密:如何检测恶意活动

4. 具体的VPRE方案

在这一部分,我们将介绍一个具体的VPRE方案,即扩展的HKK+(eHKK+)方案,它是对Hanaoka等人提出的PRE方案(HKK+)的扩展,重点在于实现重加密验证功能。

4.1 实现重加密验证的直觉

为了实现具有重加密可验证性的PRE方案,一种可行的方法是设计一个满足以下特性的方案:
1. 当将用户A的二级密文 $c_A$ 重加密为用户B的一级密文 $\tilde{c}_B$ 时,$c_A$ 以某种方式嵌入到 $\tilde{c}_B$ 中,使得用户B在解密 $\tilde{c}_B$ 时能够提取出嵌入的二级密文 $c_A$。
2. 在重加密验证过程中(比较 $\tilde{c}_B$ 和候选二级密文 $c’_A$),用户B检查提取出的密文 $c_A$ 是否与给定的候选密文 $c’_A$ 相等。

我们发现HKK+方案具有这些理想的特性,因此选择以该方案为基础进行扩展。

4.2 将Hanaoka等人的PRE方案扩展为VPRE方案

HKK+方案是基于可重拆分的TPKE方案、普通PKE方案和签名方案构建的。我们观察到HKK+方案的重加密密文(一级密文)$\tilde{c}$ 包含了原始密文(二级密文)$c$ 的信息,而 $c$ 是底层TPKE方案的密文。因此,我们的重加密验证算法相对简单:在输入 $(pki, skj, c, \tilde{c})$ 时,部分执行HKK+方案的一级解密算法以恢复“嵌入”的二级密文 $c’$,并检查 $c$ 是否等于 $c’$。

以下是扩展后的VPRE方案eHKK+的正式描述:
设 $(TKG, TEnc, TSplit, TShDec, TShVer, TCom)$ 是可重拆分的TPKE方案,$(PKG, PEnc, PDec)$ 是PKE方案,$(SKG, Sign, SVer)$ 是签名方案。使用这些作为构建块,VPRE方案eHKK+的具体算法如下:

KG(1k) :
    (tsk, tpk) ←TKG(1k, 2, 2)
    (dk, pk) ←PKG(1k)
    (sk, vk) ←SKG(1k)
    sk ←(tsk, dk, sk)
    pk ←(tpk, pk, vk)
    Return (sk, pk).

Enc(pki, m) :
    (tpki, pki, vki) ←pki
    Return c ←TEnc(tpki, m).

RKG(ski, pkj) :
    (tski, dki, ski) ←ski
    (tpkj, pkj, vkj) ←pkj
    (tski.1, tski.2, tvki) ←TSplit(tski)
    ψ ←PEnc(pkj, tski.1)
    σ ←Sign(ski, ⟨ψ∥tvki∥pki∥pkj⟩)
    rki→j ←(pki, pkj, tski.2, ψ, tvki, σ)
    Return rki→j.

Dec1(skj, cj) :
    (tskj, dkj, skj) ←skj
    M ←PDec(dkj, cj)
    If M = ⊥then return ⊥.
    ⟨pk′i∥pk′j∥ci∥μ2∥ψ∥tvki∥σ⟩←M
    If pk′j ̸= pkj then return ⊥.
    (tpki, pki, vki) ←pk′i
    If SVer(vki, ⟨ψ∥tvki∥pk′i∥pk′j⟩, σ) = ⊥
        then return ⊥.
    tski.1 ←PDec(dkj, ψ)
    If tski.1 = ⊥then return ⊥.
    μ1 ←TShDec(tpki, tski.1, ci)
    If μ1 = ⊥then return ⊥.
    If TShVer(tpki, tvki, ci, 2, μ2) = ⊥
        then return ⊥.
    m ←TCom(tpki, tvki, ci, {μ1, μ2})
    Return m.

REnc(rki→j, ci) :
    (pki, pkj, tski.2, ψ, tvki, σ) ←rki→j
    (tpki, pki, vki) ←pki
    If SVer(vki, ⟨ψ∥tvki||pki∥pkj⟩, σ) = ⊥
        then return ⊥.
    (tpkj, pkj, vkj) ←pkj
    μ2 ←TShDec(tpki, tski.2, ci)
    If μ2 = ⊥then return ⊥.
    M ←⟨pki∥pkj∥ci∥μ2∥ψ∥tvki∥σ⟩
    Return cj ←PEnc(pkj, M).

Dec2(ski, c) :
    (tpki, pki, vki) ←pki
    (tski, dki, ski) ←ski
    (tski.1, tski.2, tvki) ←TSplit(tski)
    μ1 ←TShDec(tpki, tski.1, c)
    If μ1 = ⊥then return ⊥.
    μ2 ←TShDec(tpki, tski.2, c)
    If μ2 = ⊥then return ⊥.
    m ←TCom(tpki, tvki, c, {μ1, μ2})
    Return m.

REncVer(pki, skj, c′i, cj) :
    (tpki, pki, vki) ←pki
    (tskj, dkj, skj) ←skj
    M ←PDec(dkj, cj)
    If M = ⊥then return ⊥.
    ⟨pk′i∥pk′j∥ci∥μ2∥ψ∥tvki∥σ⟩←M
    If (pk′i, pk′j) ̸= (pki, pkj) then return ⊥.
    If SVer(vki, ⟨ψ∥tvki∥pk′i∥pk′j⟩, σ) = ⊥
        then return ⊥.
    tski.1 ←PDec(dkj, ψ)
    If tski.1 = ⊥then return ⊥.
    μ1 ←TShDec(tpki, tski.1, ci)
    If μ1 = ⊥then return ⊥.
    If TShVer(tpki, tvki, ci, 2, μ2) = ⊥
        then return ⊥.
    If c′i = ci then return ⊤else return ⊥.

以下是eHKK+方案主要算法的流程说明:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(KG算法):::process
    B --> C(生成sk和pk):::process
    C --> D(Enc算法):::process
    D --> E(生成二级密文c):::process
    E --> F(RKG算法):::process
    F --> G(生成rk_{i->j}):::process
    G --> H(REnc算法):::process
    H --> I{是否有效?}:::decision
    I -->|是| J(生成一级密文~c):::process
    I -->|否| K(输出⊥):::process
    J --> L(REncVer算法):::process
    L --> M{是否有效?}:::decision
    M -->|是| N(输出⊤):::process
    M -->|否| O(输出⊥):::process
    J --> P(Dec1算法):::process
    P --> Q{是否有效?}:::decision
    Q -->|是| R(输出解密结果m):::process
    Q -->|否| S(输出⊥):::process
    E --> T(Dec2算法):::process
    T --> U{是否有效?}:::decision
    U -->|是| V(输出解密结果m):::process
    U -->|否| W(输出⊥):::process
    R --> X([结束]):::startend
    V --> X
    K --> X
    O --> X
    S --> X
    W --> X
4.3 eHKK+方案的安全性

我们证明了eHKK+方案满足VPRE的三种安全定义:
1. 健全性 :若PKE方案是CCA安全的,签名方案是强不可伪造的,且可重拆分的TPKE方案具有解密一致性,则eHKK+方案满足健全性。
2. 二级CCA安全 :若PKE方案是CCA安全的,签名方案是强不可伪造的,且可重拆分的TPKE方案是CCA安全的,则eHKK+方案是二级CCA安全的。
3. 一级CCA安全 :由于eHKK+方案是基于HKK+方案扩展而来,在满足上述条件的情况下,也能保证一级CCA安全。

以下是eHKK+方案安全性依赖条件的总结表格:
| 安全定义 | PKE方案 | 签名方案 | 可重拆分TPKE方案 |
| — | — | — | — |
| 健全性 | CCA安全 | 强不可伪造 | 解密一致性 |
| 二级CCA安全 | CCA安全 | 强不可伪造 | CCA安全 |
| 一级CCA安全 | CCA安全 | 强不可伪造 | CCA安全 |

综上所述,VPRE方案通过引入重加密验证算法,增强了PRE方案的安全性和可验证性。eHKK+方案作为一个具体的实现,在满足一定条件下能够保证健全性、二级CCA安全和一级CCA安全,为实际应用提供了可靠的加密解决方案。

内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值