无需可信方的安全考试协议

无需可信方的安全考试协议

贾马尔帕奥·贝拉1,罗萨里奥·朱斯托利西2(B),
加布里埃尔·伦齐尼2(B),以及彼得·Y.A.瑞安2
1卡塔尼亚大学数学与计算机系,意大利卡塔尼亚`卢森堡大学SnT,卢森堡2
rosario.giustolisi,gabriele.lenzini}@uni.lu{

1 引言

本文考虑笔试,并研究如何在任何参与者都可能作弊的情况下确保安全且公平的考试。
考试协议的安全性已因最近的调查和丑闻而受到公众关注[11,14,15]。这些 调查表明,信息技术使得作弊更加容易,且候选人与考试机构均有舞弊动机。
例如,在亚特兰大公立学校丑闻中[11],,考试机构通过提高所有评分来提升学 校排名,以获取更多公共资金。尽管如此,以往的考试系统仍将候选人的作弊 视为唯一的安全威胁,而假定考试机构和考官完全可信。对考试威胁的更深入 理解也有助于类似的评估系统,如公共招标、人员选拔和项目评审。与考试类 似,此类系统的安全也不应依赖可信第三方。
最近一些研究讨论了存在腐败考官情况下的考试安全问题(例如,[4,16]);然而, 这些设计仍然假设存在一些可信方。
G.Lenzini—由CORE‐FNR,项目C11/IS/1183245STAST支持。
c© IFIPInternationalFederationforInformationProcessing2015H.Federrath和D. Gollmann(编者):SEC2015,IFIPAICT455,第495–509页,2015.DOI:10.1007/978‐3‐319‐18467‐833

本文档由funstory.ai的开源PDF翻译库BabelDOCv0.5.10(http://yadt.io)翻译,本仓库正在积极的建设当中,欢迎star和关注。

496G.Bella等人
我们提出了一种新的考试安全协议,该协议无需可信方,同时满足一组严 格的扩展自Dreier等人定义要求的安全属性。[8,9]。我们的协议依赖于不经意 传输和视觉密码学技术,生成用于匿名化候选人测试的伪名。在考试开始前, 任何参与者都无法获知伪名。候选人需在考试中心参加考试,考试阶段是唯一 需要面对面进行的环节,其余阶段均可远程完成。本协议适用于基于纸笔的和 计算机化考试。

贡献

本文提供了三个主要贡献。首先,它通过三个新的认证属性和一个可 问责性属性扩展了考试的安全要求。其次,它提出了一种新的考试协议,能够 在不依赖可信第三方的情况下满足这些扩展后的要求。最后,该协议在
ProVerif中被形式化,并证明其确保了所有上述属性。1

结构

本文组织如下。第2节概述相关工作。第3节描述并形式化了我们协 议旨在确保的所需属性,并定义了威胁模型。第4节详细说明了该协议。第5节 描述了在ProVerif中对协议的形式化分析[5],并讨论了结果。第6节概述了未 来工作并对全文进行总结。

2 相关工作

大多数关于考试协议的研究仅非正式地描述安全要求(例如,[3,22]),少数 例外。Dreier等[8]提出了一种在应用 π‐演算中的形式化框架,用于定义和分 析考试的认证与隐私要求。他们以两个现有的电子考试协议作为案例进行了分 析。Foley等[12]引入了一种针对计算机支持的协同工作的机密性要求的形式 化方法。他们将考试作为一个案例研究提出,但未引用任何具体的考试协议。
其他研究提出了安全的考试协议,但其安全性论证是非正式的。
Castella‐Rocaet al.[6]提出了一种考试协议,在存在完全可信的考试管理员 的情况下,保证了若干认证和隐私属性。Bellaet al.[4]描述了WATAIV,该 协议也依赖于视觉密码学,并考虑了腐败的考官,但假设匿名化器是诚实但好 奇的。Huszti和Peth˝o[16]提出了一种信任要求最小化的考试协议,但仍 需要一个受信任的注册表。Giustolisiet al.[13]描述了Remark!,一种基于互 联网的考试协议,在最小信任假设下确保了认证和条件匿名性要求。该协议通 过指数混洗网络生成伪名,该机制假设至少存在一个诚实的混洗服务器。
Maffeiet al.[18]提出使用匿名凭证方案来保证课程评估系统中的隐私,而无需依 赖可信第三方。他们的方法似乎是我们的替代方案,因为我们使用的是不经意传输和视 觉密码学。
1我们的代码可在http://apsia.uni.lu/stast/codes/exams/pv isec15.tar.gz获取

无需可信方的安全考试协议49 7
在会议管理系统领域(与考试相近的领域)已经提出了形式化方法。
Arapiniset al.[2]提出并形式化分析了ConfiChair,这是一种加密协议,旨 在解决来自恶意云的机密性和隐私风险。他们的工作最近被扩展到支持任何基 于云的系统,例如公共招标管理和招聘流程。Kanavet al.[17]引入了 CoCon,这是一个经过形式化验证的会议管理系统实现,可保证机密性。然而, 所有上述系统都假设有受信任的管理者。

3 安全要求和威胁模型

考试主要涉及两个核心角色:候选人(参加测试者)和考官(负责评估者)。
典型的考试按阶段进行:在准备阶段,进行考试的准备工作,例如候选人注册 以及生成问题;在考试阶段,候选人获取问题并参加考试,同时考官收集已作 答的试卷;在评分阶段,考官对试卷进行评估;在通知阶段,候选人被告知其 分数。某些职责可分配给子角色,例如行政部门可负责确保候选人的注册,并 通知其分数。
我们首先考虑其他研究认为与考试相关的安全要求,并在此基础上扩展了 五个新的要求,包括新颖的认证和问责性属性。为了明确表达这些要求,我们 采用文献[8]中使用的方法,即应用 π‐演算[1]。因此,我们假设这些要求针对 的是以应用π‐演算进程建模的考试模型。应用 π‐演算通过定义事件来表述对应 性断言(认证),并通过观测等价来表达不可区分性(隐私)。

认证

在应用的 π‐演算中,一个事件是一个消息输出 e(a):e是事件通道, a
是一组可能为空的参数。一旦进程执行到达该事件,该消息就会出现在执行迹 中。为了形式化认证,我们使用[8]中定义的一些事件,如下所述。
术语idc表示候选人的身份,pid是表单标识符,ques表示考试题目,ans
表示候选人的答案,mark是分数。事件reg(idc)表示候选人idc注册成功。当候 选人提交其答案时,触发事件submitted(idc, ques, ans,pid);而当考官收集答案 时,触发事件collected(idc, ques, ans,pid)。最后,当考官通知并登记候选人的分 数时,触发事件notified(idc, mark,pid)。
我们将requested(idc,pid)添加到上述事件集合中。该事件由候选人在通知 阶段发出,其中候选人idc 使用标识符form发送请求以查询其分数。
我们考虑的第一个要求是答案真实性,非正式地说,它表示考官收集到的答案是候 选人已提交的答案。

定义1 (答案真实性)

如果在协议的每次执行轨迹中,事件已收集(idc,ques,ans, pid)之前都存在事件已提交(idc,ques,ans,pid),则该考试协议确保了答案真实性。

答案来源认证

表示考官仅收集由已注册候选人产生的答案。

定义2 (答案来源认证)

若在协议的每次执行轨迹中,事件collected(idc, ques,ans,pid)之前均存在事件reg(idc),则该考试协议确保了答案来源认证。

我们定义三项新的认证要求:标记真实性,候选人授权,以及通知请求认证。

定义3 (标记真实性)

若在协议的每次执行轨迹中,事件notified(idc,mark,pid)之前 均存在事件submitted(idc,question,answer,pid),则该考试协议确保了标记真实性。
标记真实性表示分数被正确地注册到对应的候选人。Dreier等人将其定义 为“候选人收到考官发布的分数通知”[8]。尽管看起来相似,我们的表述有所 不同:在我们的定义中,认证者是考官,因为他发出了notified事件;而在 Dreier等人的定义中,认证者是候选人,因为该事件是在候选人进程中发出的。
我们认为,定义3避免了定义上的叠加,因为正如我们稍后将看到的,成绩可验 证性将候选人视为认证者。它描述的是,即使存在腐败的考官,候选人也能检 查自己是否收到了正确的分数。

第二个新要求,Candidate Authorisation,描述了只有已注册且经过认证的考 生才能参加考试。

定义4 (考生授权)

如果在协议的每次执行轨迹中,事件已提交(idc,问题,答案, pid)之前均存在事件注册(idc),则该考试协议确保考生授权。

最后一个额外的要求是通知请求认证。该要求指出,只有当候选人主动请 求获知自己的分数时,分数才能与该候选人关联。这一特殊要求在某些大学的 考试场景中非常有用,因为在这些场景中,如果候选人在通知阶段之前未主动 退出考试,则一旦考试未通过,就必须跳过下一次考试会话。

定义5(通知请求认证)

如果在协议的每次执行轨迹中,已通知事件(idc,分 数)之前均存在已请求事件(idc,pid),则该考试协议确保通知请求认证。

隐私

由于篇幅限制,我们仅给出隐私要求的非正式定义。在应用 π‐演算中的 形式化定义可参见[8]。
无需可信方的安全考试协议4 99
第一个相关的隐私要求是匿名评分,它指出在测试被评分之前,任何人都 无法得知测试的作者。换句话说,在评分阶段结束前,除了作者之外,没有人 能将测试与考生身份关联起来。题目不可区分性指出,在考试阶段之前,任何 候选人都无法获知问题内容。一个更强的要求是分数隐私,它描述的是除了考 官和相关候选人之外,其他任何人都无法获知分数。这意味着分数不能公开。
最后一个隐私要求是分数匿名性,它指出除了考官和相关候选人之外,其他任 何人都无法获知分配给某位候选人的分数。请注意,直观上分数隐私比分数匿 名性更强:一个发布分数的系统无法保证分数隐私,但只要没有人能将分数与 考生身份关联起来,仍可能确保分数匿名性。

可验证性与问责性

我们提出了两个属性,一个用于考试的可验证性,另一个 用于问责性。一般来说,如果一个协议针对特定属性提供了测试方法,并且该 测试是可靠且完备的[9],则称该协议在该属性上是可验证的。成绩可验证性是 指候选人能够验证自己是否已收到为其测试分配的分数。成绩可验证性包含一 个算法testMV的存在性,当候选人已收到其测试对应的分数通知时,test MV输出true,否则输出false。在应用的 π‐演算中,testMV是一个进程,当应 输出true时,它发出事件OK(idc,pid,mark),当应输出false时,发出事件 KO。当标识为pid的测试可用时,会发布事件published(pid)。事件 assigned(idc,pid,mark)由候选人在通知阶段结束时发出。
我们说testMV是可靠的,如果在协议的每次执行轨迹中,事件OK(idc,pid, mark)之 前都出现了事件assigned(idc,pid, mark)和事件published(pid)。当输入正确数据进行测试 时,若在协议的任何执行轨迹中均未产生KO事件,则称testMV是完备的。

定义6(成绩可验证性)

.如果 testM V是可靠的且完备的,则考试协议确保成绩可 验证性。

最后,我们引入了一项问责性要求,即 Testing DisputeResolution。问责性 能够识别出导致协议失败的责任方。在考试场景中,候选人应能够提交测试并 获得相应的分数。如果她未能完成其中任何一项,测试争议解决机制将说明可 识别出造成该失败的参与方。
我们形式化地对测试争议解决进行建模,方法类似于分数可验证性,但有 所不同:我们通过事件Cguilty或Eguilty的(不可)达性来证明可靠性。在应用 π‐演算中,争议是一个进程,当候选人为责任人时触发事件Cguilty,当考官 为责任人时触发事件Eguilty。如果协议执行了争议进程,则意味着考官或候选 人其中一方已被破坏。因此,在可靠性方面,其思想是
500G.贝拉等人
是检查争议是否无法返回诚实方而非被破坏的一方。
我们说,如果在协议的任何执行轨迹中均未发出事件Cguilty,则争议相对 于腐败的考官和诚实考生是可靠的。类似地,我们说,如果在协议的任何执行 轨迹中均未发出事件Eguilty,则争议相对于腐败的候选人和诚实考官是可靠的。
最后,我们说,如果在具有诚实角色的协议的任何执行迹中均未发出事件 Eguilty和Cguilty,则争议是完备的。

定义7 (测试争议解决)

如果 dispute是可靠的且完备的,则考试协议确保测试争 议解决。

3.1 威胁模型和假设

根据我们的考试术语,我们考虑来自以下三个对手的威胁。(1)腐败考生,他 们希望获得高于其答案客观评估所应得的分数。因此,他们可能不遵守协议, 并相互串通以实现其目标。(2)腐败的考官,他希望不公平地评估某位候选人。
(3)入侵者,他想要获取考试的私有信息或篡改试卷和分数,并可能腐蚀考生 或考官。
我们假设:(a)考官与候选人之间的远程通信通过TLS进行;(b)标准 答案在考试阶段结束前对候选人保密;(c)在考试阶段,监考人员监督候选人 以减少作弊行为;(d)存在一个经过认证的仅追加公告板。

4 协议

简而言之,该协议的工作流程如下。在准备阶段,考生与考官通过不经意传输 方案共同生成考生的伪名(一个字母数字形式的pid),作为视觉密码学分片。
其中一个分片由考生持有,她将其打印在一张纸质试卷上,并连同考生ID以及 用于完整性与问责性的签名一同打印。另一个分片由考官持有,他将其打印在 一张透明胶片上。单独任何一个分片都无法揭示伪名,只有当两个分片叠加时 才能显现伪名。这一叠加操作仅能在考试阶段进行,此时考生与考官需物理会 面,考官将他的透明胶片交给考生。在考试阶段发生的任何争议均可通过打印 件上的签名予以解决。考生可将揭示出的伪名填写至答题纸上,待所有答题纸 交还给考官后,考试阶段结束。在评分阶段,考官对答案进行评估,并为每个 伪名分配一个分数,然后对该分数进行承诺并发布到公告板上。在通知阶段, 考生可通过证明自己持有能(重新)揭示伪名的分片来查询她的分数。考官所 持有的分片是
一个无需可信方的安全考试协议501

  1. Candidate计算 yi= gxihγi,其中:‐
    | xi ∈R Z∗ q。‐ γi ∈R[1, k]。‐ i= 1,2,…, l,且 l> n。 2. Candidate→Examiner: y1, y2,…, yl. 3 Examiner计算 βij ←πR(αi ⊕ cj), ωij= 〈aij, bij〉 ← 〈grij, βij(yi hj) rij〉,
    com= hs l ∏ i=1 gi αi,以及 sign1= SignSSKE{idC, ex, com},其中: ‐αi ∈R[0, 1]t×u ‐ s, rij ∈R Z∗ q.
    ‐ gi ∈R Gq - i= 1,2,…, l. - j= 1,2,…, k。 或对 y1, y2,…, yl运行挑战程序。 4. Examiner→Candidate:(ω11,…, ω1k)…(ωl1,…, ωlk)和 sign1。 5. Candidate计算 χi ∈[1, l]和 σj ∈[1, l],其中:
    - i= 1,2,…, m. 6. Candidate→Examiner: χ1, χ2,…, χm和 σ1, σ2,…, σn。 7. Examiner计算 evχ i = 〈αχi,(βχi1, βχi2,…, β χi k),(rχi1, rχi2,…, rχik)〉和 sign2= SignSSKE{idC, ex,(σ1, σ2,…, σn)}其中
    - i= 1,2,…, m. - j= 1,2,…, k。 并打印 transp= 〈(ασ1, ασ2,…, ασn) idC, ex, QR3〉,其中
    - QR3= idC, ex,(α1, α2,…, αl, s)。 8. Examiner→Candidate: evχ1 evχ2…, ev χm和 sign2。
    9. Candidate检查 ev χi,计算 βσ
    j
    = bσ j γ j (aσj γ j ) xσ j其中
    - i= 1,2,…, m。 - j= 1,2,…, n。 并打印 paper= 〈(βσ1, βσ2,…, βσn) idC, ex, QR1, QR2〉,其中 ‐ QR1= idC, ex, sign1.
    ‐ QR2= idC, ex, sign2。|
    | —|
    | 10. Candidate hands −−−−→Examiner: idC′ 11. Examiner检查是否 idC′=idC 12. Examiner hands −−−−→Candidate: transp, test question
    13. Candidate计算 pid= (α1, α2,…, αn) ⊕(β1, β2,…, βn) and写入
    test answer=(answers, pid) 或者在没有出现伪名的情况下运行测试争议解决算法。 14. Candidate hands −−−−→Examiner: test answer|
    | 15. Examiner计算 c= g v h mark和 sign3= SignSSKE{pid, c},其中: ‐ v ∈R Z ∗ q 。 ‐ mark ∈ M。 16. Examiner→ BB: sign3 17. Candidate→Examiner:(β1, β2,…, βn) sign1, sign2, sign3
    18. Examiner计算 sign4= SignSSKE{idC, ex, pid, mark, v} 19. Examiner→Candidate: sign4|

图1.我们的协议按阶段划分
502G.贝拉等人
此阶段不需要候选人与考官会面。候选人将其分片和签名发送给考官,通知阶 段发生的任何争议均可再次通过与分片相关联的签名来解决。
该协议结合了几种密码学原语,即视觉密码学、承诺和不经意传输方案:
视觉密码学。它是一种秘密共享方案,最初由纳奥尔和沙米尔[19]提出, 能够对密文进行可视化解密。一个秘密图像通过将其分割成若干个图像分片来 实现“加密”。在我们协议所采用的2选2版本中,秘密图像被分成两个分片。
当这两个分片叠加时,便能显示出秘密图像。多年来,人们提出了多种视觉密 码学方案。我们的协议采用了纳奥尔和沙米尔的方案,但我们推测也可以使用 其他任何视觉方案。
承诺方案。承诺方案用于将提交者绑定到一个值。提交者发布一个隐藏该 值的commit(承诺),该值在提交者揭示之前保持秘密。如果提交者揭示不 同的值,则会被发现,因为两个相同的commit隐藏的是相同的值。我们的协 议使用一种广义佩德森承诺方案[20],,它保证无条件隐藏,并允许同时对多个 值进行commit。
不经意传输。不经意传输方案允许选择者从发送方提供的集合中选取某些 信息,且满足以下条件:(a)发送方无法得知选择者选取了哪些信息;(b)选择 者只能获取其选取的那些信息,不能获得更多信息。我们的协议采用了曾兹的 不经意传输方案[21]。在曾兹的方案中,选择者首先对集合中的某些元素进行 承诺,并将这些承诺发送给发送方。随后,发送方对集合中的所有元素进行混 淆,而选择者仅能对其已承诺的元素进行去混淆。该方案保证了接收方选择的 无条件安全性,并且效率较高,因为发送方和接收方之间只需交换两条消息。

4.1 协议的详细描述

我们根据四个考试阶段来描述我们的协议。在描述中,我们假设有几个公共参数, 即:
n 候选人伪名的长度
| C={s1,…, sk}||
| —|—|
| c j ∈{0, 1} t×u, j= 1,…, k|t× u‐像素的字符表示|
| idC|考生ID|
| ex|考试代码|
| SPK E|考官的公钥|
| M g, h ∈R G|可能分数集合|
| q|承诺生成器|
伪名字符的字母表
无需可信方的安全考试协议 503

准备阶段

准备阶段的目标是生成候选人的伪名,该伪名为由字母表 C中选取 的 n个字符组成的字符串,并将其编码为两个视觉密码共享。在考试阶段两人 会面之前,候选人和考官均无法得知该伪名;当候选人将其共享与考官的共享 叠加时,才能获知自己的伪名。其基本思想是:候选人提供一个对数组索引的 承诺,考官则用字符的秘密置换填充该数组,只有当这两个秘密结合在一起时, 才能确定所选的字符。
该阶段的灵感来源于Essex等人et al.[10]提出的一种用于打印秘密信息的 方案。我们对该方案进行了调整,使其能够生成一个伪名。更具体地说,我们 对其进行了扩展,以支持一种算法来解决在分片叠加后无法揭示出可识别伪名 时可能产生的争议。我们的准备阶段与原始方案之间的主要技术差异在于: (a)一种改进的不经意传输协议,能够在一次协议运行中处理多个秘密消息; (b)生成将用于争议解决中问责性的签名。
图1给出了准备阶段步骤的描述。该协议从候选人提供一个长度为 l承诺 yi到长度为 k的数组索引的序列开始。(步骤1‐2)。
具体来说,参数 l的选择是为了使 l − n 个元素之后可用于切选审计。考 官可以挑战候选人,以验证被承诺的选择是否确实在区间[1, k]内。否则,考
官生成一个随机选择的 t× u 图像序列,在图1中表示为 α1,…, αl。由 αi
和每个可能的字符 cj生成一个包含 k张图像的序列(βi1,…, βik)。该序列进
行随机置换,并对所有 i重复此过程,从而得到 l个序列:(β11,…, β1k),…,
(βl1,…, βlk)。秘密置换和承诺机制确保只有当两个秘密结合时,字符的选择才
被确定。
考官随后从每个 βij 生成混淆 ωij,并对每个 αi生成承诺,表示为
com(步骤3),该承诺被签名后,连同混淆序列(ω11,…, ω1k)…,(ωl1,…, ωlk)
一起发送给候选人(步骤4)。该混淆允许候选人仅检索其在步骤1中已承诺 选择所对应的索引的元素(yi)。
候选人执行切选审计,从 ω中随机选择一组 l−n序列。通过这样做,她可
以检查考官是否正确生成了图像序列。剩余的替换 σ1, σ2,…, σn选择构成伪名
的图像索引。因此,考官的视觉共享由拼接图像(ασ1 ,…, ασ n) 组成(步骤5‐6)。
考官随后生成切选审计的证明,并将视觉共享打印在透明打印输出上。这
还包括所有元素 α1,…, αl 及其承诺所使用的值(步骤7),这些信息以二维码
的形式存储。然后,考官将证明和签名的替换 σ 发送给候选人(步骤8)。接
着,候选人验证证明,对元素 ω进行去混淆处理,并恢复由拼接图像(βσ1 , βσ2 ,
…, βσn) 组成的视觉共享。最后,她进行打印
504G.Bella等人
分片与两个签名一起打印在纸质打印件上(步骤9)。此时,候选人和考官各持 有一个视觉共享,一旦叠加,便会显现出一个可识别的字符序列,作为伪名。
候选人的试卷纸质打印件包含两个二维码(QR1和QR2),而考官的透明 胶片仅包含一个(QR3)。这三个二维码共享相同的考生身份 idC和考试标识 符 ex。QR1和QR2分别编码了考官对元素 α的承诺和对替换 σ的签名,而 QR3编码了元素 α。

测试

候选人携带试卷的纸质打印件,考官携带透明胶片。考官通过检查候选 人的身份证件来验证其身份(步骤10‐11)。然后,考官将对应的透明胶片和一 份问题副本交给候选人(步骤12)。候选人将其纸质打印件与透明胶片进行 overlap,从而获知自己的伪名,并将其写在答题纸上(步骤13)。如果没有 出现伪名,则可能是因为候选人或考官打印错误,此时将启动算法中所述的测 试争议解决流程1以确定责任方。在此阶段结束时,候选人将答题纸放入测试 试卷堆中的任意位置(步骤14),并带走透明胶片和纸质打印件。

评分与通知

在评分阶段,考官评估匿名的考试;在通知阶段,候选人可以获 知自己的分数,但前提是她希望如此。考官评估答案,并对所给分数生成一个 承诺(步骤15)。然后,他对答题纸上的分数和伪名进行签名,并将该签名发 布到公告板上(步骤16)。
通知阶段在固定时间内开启,在此期间,候选人可以远程请求获取并注册
她的分数。她必须将有序序列β1,…, βn以及迄今为止已收集的所有签名发送给
考官(步骤17)。考官验证签名,将给定的序列与对应的序列 α1,…, αn进行
overlap,并获知伪名。如果仍未出现已注册的伪名,争议解决机制将揭示行为 不当的一方。考官对所给分数以及用于commit该分数的秘密参数进行签名 (步骤18),并将签名发送给候选人(步骤19)。通过此方式,候选人可依据 公告板验证所给分数。

争议解决

腐败的考官可能会错误打印透明胶片上的视觉共享,导致候选人在 叠加视觉共享时无法获得可识别的伪名,从而使其答案无法保持匿名。另一方 面,腐败的候选人可能会错误打印其纸质打印件,并指控考官错误打印透明胶 片。一旦发生此类争议,算法1提供了一种高效的方法来找出责任人。
我们假设监考员拥有一台带有摄像头的电子设备,例如智能手机或平板电脑, 该设备中存储了考官的公钥。输入
一个无需可信方的安全考试协议50 5
数据:公共参数:(C, n, gi, h, idC, SP KE)
- paper=((βσ1, βσ2,…, βσn), idC′, ex′, sign1, sign2) where:
- sign1= SignSSKE{idC′′, ex′′, com}
- sign2= SignSSKE{idC′′′, ex′′′,(σ1′, σ2′,…, σ′n)}
- transp=(ασ1′′, ασ2′′,…, ασ′n′), idC′, ex′,(α1′, α2′,…, α′ l, s).
结果:被破坏的参与者
如果sign1 is verifiable with SPKE并且 sign2 is verifiable with SPKE并且
idC= idC′= idC′′= idC′′′和 ex= ex′= ex′′= ex′′′ then
如果 com = hs l

i=1 gi
α′ i或 pid=(α′ σ′α′ σ′…, α′ σ′
1 2 n) ⊕(βσ1, βσ2,…, βσn)则
考官
else
return候选人
else
return候选人
算法1.争议解决
算法的输入是打印在纸质打印件上的两个二维码(二维码1和二维码2)以及打 印在透明胶片上的二维码(二维码3),监考员使用设备摄像头扫描这些二维码。
首先,该算法检查编码在二维码1和二维码2中的签名的正确性。同时检查 纸质打印件上报告的考生身份和考试标识符是否与二维码1和二维码2中的信息 一致。如果其中任何一项检查失败,则说明候选人将其纸质打印件打印错误, 因此该候选人是责任人。否则,算法将使用二维码3中的数据来检查考官承诺的 正确性,并验证使用 α元素以及通过二维码3中编码的 σ替换所索引的位置是 否存在伪名。如果这些检查中有任何一项失败,则说明考官错误打印了透明胶 片,因此考官有责;否则,候选人为责任人。
506G.贝拉等
此外,我们的选择具有三重优势:它允许攻击者获知候选人何时注册考试或被 通知分数;当候选人或考官任一一方被攻破时,只需将密钥与攻击者共享即可; 它提高了ProVerif验证终止的可能性。因此,攻击者拥有更大的判断权限,因 为他可以观察到候选人何时收到问题以及何时提交答案。

等式理论

我们使用以下等式理论来建模本协议中所需的密码学原语。

密码学原语 等式理论
概率对称密钥 sdec(senc(m, k, r) k)= m
签名 getmess(sign(m, ssk))= m
checksign(sign(m, ssk) spk(ssk))= m
视觉密码学 overlap(share, gen share(m, share))= m
overlap(share, share)= share
混淆 deobf(obf(r, m, sel commit(r′, sel)) r′)= m

概率对称密钥和签名规范的理论在ProVerif中是众所周知的。我们引入了 一种新的理论来建模不经意传输和视觉密码学。函数obf允许考官对元素 β1,… , βi进行混淆,而函数 deobf则根据候选人所 commit的选择返回正确的元素 βsel。我们还通过函数commit提供了佩德森承诺方案的理论。最后,我们使用 函数genshare对视觉密码学分片的生成进行建模,并使用函数overlap对它们的 叠加进行建模。
我们在存在腐败考官的情况下验证匿名评分。我们添加了收集器进程,用 以模拟考生留下试卷的桌子。题目不可区分性考虑了腐败考生的情况,而分数 隐私和分数匿名性则均考虑了腐败的合格考生。为了分析成绩可验证性,我们 为本协议定义了算法testMV,如算法2所示。我们对诚实考生、腐败的考官以 及协同考生进行建模,以证明testMV的可靠性。特别是,我们在ProVerif中使 用对应断言来验证该算法的可靠性,并通过事件KO的(非)可达性来验证其 完备性。我们检查了两项关于测试争议解决的可靠性属性,其中一个考虑了腐 败考官的情况,另一个考虑了腐败考生的情况。
形式化模型的一个局限性在于切选审计的规范,这是由于ProVerif强大的 攻击者模型所致。事实上,如果攻击者扮演切割者的角色,他可能会将元素集 合划分为两部分,使得选择者审计的子集是正确的,而另一子集则不是。尽管 在现实中,对于大量元素而言,这种攻击成功的概率很小,但在ProVerif中, 无论元素数量多少,这都是一种有效的攻击。在我们的情况下,选择者是候选 人,切割者是考官。因此,当考官被攻陷(即被攻击者控制)时,就会出现一 种虚假攻击。为避免这种情况,我们允许候选人检查所有元素。
集合。这是可靠的,因为候选人扮演选择者的角色,因此她是诚实的并遵循协议, 尽管她知道额外的信息。

结果

表1概述了我们的分析结果。ProVerif确认,尽管允许任意数量的已注 册协同考生被攻击者腐蚀,本协议仍能确保所有认证属性。因此,即使攻击者 注册参加考试,我们的属性依然成立。在隐私属性方面,ProVerif证明本协议 保证了匿名评分、题目不可区分性、分数隐私和分数匿名性。最后,本协议具 备分数可验证性,因为testMV是可靠且完备的,并确保测试争议解决: ProVerif表明,当执行争议解决算法时,协议会判定行为不当的一方而非诚实 的一方承担责任(可靠性);而当考官与考生角色均为诚实状态时,该算法不 会被执行(完备性)。争议算法被执行时(可靠性),且当考官和考生角色均 诚实时,该算法不会被执行(完备性)。

表 1. 在 Intel i7、8GB 的机器上使用 ProVerif 进行形式化分析的结果

属性 结果 时间
考生授权 成立 8s
答案真实性 成立 7s
答案来源认证 成立 7s
通知请求认证 成立 8s
标记真实性 成立 8s
匿名评分 成立 27s
问题无关性 成立 <1s
分数隐私 成立 28m 41s
分数匿名性 成立 52m 12s
成绩可验证性 成立 <1s
测试争议解决 成立 <1s

6 结论与未来工作

我们提出了一种新的无需可信角色的考试协议。其基本思想是结合不经意传输 和视觉密码学来生成一个伪名,以在评分阶段对测试进行匿名化。通过 ProVerif的形式化分析证实,该协议确保了所有所述属性。
在未来工作中,我们计划扩展我们的设计,以获得更广泛的可验证性属性。此外, 为了扩展我们的
协议的应用场景,我们打算修改通知阶段,以避免候选人在通知阶段的参与。
为实现这一点,我们设想采用一种类似于Remark!中提到的临时去匿名化解决 方案[13]。关于形式化分析,我们旨在研究组合证明,将协议中所使用的密码 学原语的计算性证明与通过ProVerif获得的符号化证明结合起来。最后,我们 计划实现该协议的一个原型,并验证是否可以使用不同的可视密码方案来提高 考试的感知安全性。

项目资源包含:可运行源码+sql文件+LW; python3.8+django+mysql5.7+html 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 系统基于Python语言和Django框架研究开发,利用MySQL进行数据管理,构建了一个符合现代教育需求的B/S结构题库管理子系统。系统主要为两种用户角色而设计,即管理员与教师。管理员有权管理教师档案、设置学院和专业目录、维护课程信息和整理题库,而教师端的功能则包括手动录入试题及批量导入试题,特别是对包含公式和图形的试题内容,系统能够实现精确解析和存储。 教师端的功能需求主要集中在试题的录入、管理和查询。教师需要能够便地录入新的试题到系统中,包括填写题目的基本信息如题型、答案、难度等,并上传包含公式和图形的复杂试题内容。系统应允许教师对已录入的试题进行修改或删除,并提供高效的搜索功能,以便教师能快速找到特定的题目。教师还要能够批量导入试题,系统需支持不同格式的文档,TXT和DOC,并解析文档中的内容,包括图形和公式。 管理员的功能需求主要集中在系统管理和题库维护。管理员负责管理教师账户和权限设置,确保每位教师能够访问其应有的系统功能。管理员同时需要监控系统的整体性能和安全状态,执行必要的系统升级和维护,以保证系统的稳定运行。在题库管理面,管理员需维护课程信息和相关的题库数据,包括增添查改与课程相关的题目。管理员还需要确保题库的内容准确无误,符合教学需求,并处理由教师提出的关于题库的任何问题。
内容概要:本文以“从单体到微服务的桥梁——Module模块化开发实践项目”为核心,系统阐述了模块化开发的进阶策略,涵盖模块通信、状态管理与测试隔离三大关键技术。文章提出模块化的“动态边界”理念,强调通信标准化、状态局部化、测试独立性和弹性扩展,并通过在线教育平台的课程服务模块在Spring Cloud微服务架构下的具体实现,展示了模块间同步与异步通信、基于事件驱动的数据一致性、以及单元测试、集成测试与契约测试的完整验证体系。此外,还探讨了模块化与云原生技术(如Serverless、Service Mesh、GitOps)的融合趋势。; 适合人群:具备一定Java和Spring Boot开发经验,正在参与或计划推进系统架构演进的中高级研发工程师、架构师,尤其是面临单体系统维护难题的技术负责人。; 使用场景及目标:①掌握如何将大型单体应用拆分为高内聚、低耦合的功能模块;②理解并实践模块间的高效通信机制(REST、消息队列、事件驱动);③实现模块数据自治与测试隔离,提升系统可维护性与可扩展性;④为后续向微服务或云原生架构演进奠定基础。; 阅读建议:此资源理论与实战紧密结合,建议结合文中Spring Cloud代码示例进行动手实践,重点关注Feign调用、事件监听、Mock测试等关键实现,并思考如何将所述策略应用于自身业务系统中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值