📚 Year 12 AQA Computer Science: Interdisciplinary Integrated Question Practice | AQA 计算机:跨学科综合题型训练
In AQA Year 12 Computer Science, achieving high marks requires more than rote memorisation of theory – you must learn to apply computational thinking across different disciplines. This article presents a collection of integrated question practices that blend computer science with mathematics, biology, physics, economics and geography. Each section targets a specific AQA topic, such as data structures, graph traversal, object-oriented programming or regular languages, while linking the context to an external subject. Working through these problems will strengthen your ability to model real-world scenarios, translate interdisciplinary requirements into precise algorithms and write examination-ready answers.
在 AQA 12 年级计算机科学中,拿高分不只靠死记硬背理论——你需要学会将计算思维应用到不同学科中。本文精选了一组跨学科综合题型训练,将计算机科学与数学、生物、物理、经济和地理相融合。每一节针对一个 AQA 考点,如数据结构、图遍历、面向对象编程或正则语言,同时把情境与外部学科联系起来。通过解决这些问题,你将提升对真实世界场景建模的能力,学会把跨学科需求转化为精确的算法,并写出符合考试要求的答案。
1. Big O Notation and Population Growth | 大 O 记法与人口增长
els the population of a bacterial colony using the recurrence relation P(n+1) = 1.5 × P(n) – f time steps n, and explain why the space complexity is O(1) if only the current and previous populations are stored. Suggest how the complexity would change if all intermediate populations are recorded in an array for plotting.
一位生物研究员使用递推关系 P(n+1) = 1.5 × P(n) – 0.02 × P(n)² 对细菌菌落种群建模,P 的单位为千个细胞。程序模拟 500 个时间步。请指出以时间步数 n 表示的大 O 时间复杂度,并解释若仅存储当前和上一代种群数据,空间复杂度为何是 O(1)。如果为了绘图而将所有中间种群记录在数组中,复杂度将如何变化?
Time = O(n), Space initial = O(1), Space with array = O(n)
The loop runs n times, performing constant-time arithmetic each iteration, so time complexity is O(n). Storing only two variables keeps space usage constant, O(1). Collecting every intermediate value in an array of size n makes space complexity O(n).
循环运行 n 次,每次迭代执行常数时间算术运算,因此时间复杂度为 O(n)。只存储两个变量使空间使用量保持常数,为 O(1)。将所有中间值收集到大小为 n 的数组中,空间复杂度变为 O(n)。
2. Stacks in Reverse Polish Notation for Physics Formulas | 栈在物理公式逆波兰表示法中的应用
evaluate complex expressions like kinetic energy E = ½ m v². Convert the infix expression '½ * m * v2' lue. Explain why a stack-based approach is memory efficient in embedded systems used in laboratory instruments.
物理学家经常计算动能 E = ½ m v² 等复杂表达式。请将中缀表达式 '½ * m * v2' 转换为逆波兰表示法(RPN)。给出当 m = 4.0 kg, v = 5.0 m/s 时,求值所需的逐步栈操作。写出最终结果。解释为什么实验室仪器嵌入式系统中栈方法内存效率高。
RPN: 0.5 m v 2 ^ * *
Push 0.5, push m (4.0), push v (5.0), push 2, perform exponentiation (5.02 .0 J. Stacks require only a small contiguous memory area; intermediate results are automatically consumed, avoiding the need for extensive register allocation or temporary variables, which is crucial in memory‑constrained embedded controllers.
依次压入 0.5、m (4.0)、v (5.0)、2,执行乘方运算(5.02 = 25.0),压入结果,乘法(25.0 × 4.0 = 100.0),压入结果,乘法(0.5 × 100.0 = 50.0)。最终能量 = 50.0 J。栈只需一小块连续内存,中间结果自动消耗,无需大量寄存器分配或临时变量,这对内存紧张的嵌入式控制器至关重要。
3. Graph Traversal for Transport Geography | 图遍历与交通地理
A logistics company needs to find all towns within 3 stops from a central hub in a road network. The network is represented as an unweighted graph where nodes are towns and edges are direct road links. Describe the algorithm you would use – Breadth‑First Search (BFS) or Depth‑First Search (DFS) – to list all towns within a radius of 3. Justify your choice in terms of completeness and the order of discovery. Provide a pseudocode outline that stops after level 3.
某物流公司需要找出公路网络中距中心枢纽 3 站以内的所有城镇。该网络表示为无权图,节点为城镇,边为直接道路连接。请描述你会使用哪种算法——广度优先搜索 (BFS) 还是深度优先搜索 (DFS)——来列出半径为 3 内的所有城镇。从完备性和发现顺序的角度说明理由。给出在遍历完第 3 层后停止的伪代码框架。
BFS explores level by level, guaranteeing that the first time a node is discovered, it is via the shortest path (in number of edges). Therefore, you can simply run BFS from the hub, track the current distance, and stop enqueuing new nodes once distance becomes 3. DFS would dive deep and might find some nodes at distance >3 before exhausting all nodes at shorter distances, making it harder to enforce the exact radius.
BFS 逐层探测,保证节点第一次被发现时经过最短路径(按边数计)。因此只需从枢纽出发运行 BFS,记录当前距离,一旦距离达到 3 就停止将新节点入队。DFS 会深入搜索,可能在穷尽所有短距离节点之前就找到距离大于 3 的节点,难以精确限制半径。
Queue q
q.enqueue(hub)
distance[hub] = 0
while q not empty:
u = q.dequeue()
if distance[u] == 3: continue
for each neighbour v of u:
if v not visited:
visited[v] = true
distance[v] = distance[u] + 1
q.enqueue(v)
4. Object-Oriented Programming: Modelling Chemical Elements | 面向对象编程:化学元素建模
Design a class diagram for a periodic table entry called Element. Attributes include atomic number, symbol, name, relative atomic mass (floating‑point), and a Boolean indicating whether it is a metal. Include a constructor, accessor methods, and a method calculateMolarMass(quantity) that returns the mass of quantity moles. Explain how encapsulation protects the integrity of the atomic number. Then write a Java/C#‑style class definition that overloads the + operator (or a method add) to return a Compound object when two Element objects are combined, assuming a simple 1:1 ratio for demonstration.
为周期表元素设计一个名为 Element 的类图。属性包括原子序数、符号、名称、相对原子质量(浮点数)以及是否为金属的布尔值。包含构造函数、访问器方法,以及根据摩尔的量(quantity)返回质量的 calculateMolarMass(quantity) 方法。解释封装如何保护原子序数的完整性。然后编写一个 Java/C# 风格的类定义,重载 + 运算符(或 add 方法),使得两个 Element 对象组合时返回一个 Compound 对象(演示中假设 1:1 比例)。
Encapsulation makes the atomic number field private, so external code cannot arbitrarily change it – preserving the identity of the element. The constructor validates that the atomic number is positive. The calculateMolarMass method multiplies the stored relative atomic mass by the number of moles.
封装把原子序数字段设为私有,外部代码无法随意修改——保护了元素的唯一标识。构造函数验证原子序数为正数。calculateMolarMass 方法将存储的相对原子质量乘以摩尔的量。
class Element {
private int atomicNumber;
private String symbol;
private String name;
private double atomicMass;
private boolean isMetal;
public Element(int z, String sym, String nm, double mass, boolean metal) {
if (z <= 0) throw new IllegalArgumentException("Atomic number must be positive");
atomicNumber = z; symbol = sym; name = nm; atomicMass = mass; isMetal = metal;
}
public int getAtomicNumber() { return atomicNumber; }
public double getAtomicMass() { return atomicMass; }
public double calculateMolarMass(double moles) {
return atomicMass * moles;
}
public static Compound add(Elements a, Elements b) {
return new Compound(a, b, 1, 1); // 1:1 ratio
}
}
5. Finite State Machines for Genetic Sequence Recognition | 有限状态机与基因序列识别
Bioinformatics uses finite state machines (FSMs) to search for specific patterns in DNA. Design a deterministic FSM (Mealy machine) that recognises the DNA substring 'ATG' within a longer sequence of the symbols A, C, G, T. Draw the state transition diagram, clearly indicating the start state, accepting state and the output 'Detected' when the motif is found. Show the transition table. Explain why a non‑deterministic FSM would be more compact but harder to implement directly in hardware.
生物信息学使用有限状态机在 DNA 中搜索特定模式。设计一个识别 DNA 子串 'ATG' 的确定型 FSM(Mealy 机),符号集为 A、C、G、T。绘制状态转移图,明确标识起始状态、接受状态以及发现目标模式时输出 'Detected'。给出转换表。解释非确定型 FSM 为什么更紧凑,但直接在硬件中实现更困难。
The FSM has four states: S0 (start, no match), S1 (matched 'A'), S2 (matched 'AT'), S3 (matched 'ATG', accepting). Transitions: from S0 on 'A' → S1; else → S0. From S1 on 'T' → S2, on 'A' → S1, else → S0. From S2 on 'G' → S3, on 'A' → S1, else → S0. From S3: stays emitting 'Detected'. A non‑deterministic FSM could use ε‑ ll possibilities, demanding multiple parallel logic units and resolution mechanisms which add complexity and cost.
FSM 有四个状态:S0(初始,无匹配),S1(已匹配 'A'),S2(已匹配 'AT'),S3(已匹配 'ATG',接受)。转换:从 S0 遇 'A' → S1;否则 → S0。从 S1 遇 'T' → S2,遇 'A' → S1,否则 → S0。从 S2 遇 'G' → S3,遇 'A' → S1,否则 → S0。从 S3 保持并输出 'Detected'。非确定型 FSM 可使用 ε‑转移合并相似的模式路径,减少显式状态数,但实际电路需同时探测所有可能性,要求多个并行逻辑单元和仲裁机制,增加了复杂性和成本。
6. Regular Expressions for Economic Data Validation | 正则表达式与经济数据验证
An economist downloads a CSV file where each line records a country code, GDP value and year. The country code must be exactly two uppercase letters (A–Z), the GDP a positive integer or decimal with up to two decimal places, and the year a four‑digit number between 2000 and 2099. Write a regular expression that matches a whole line of this format. Test it manually on the string 'UK,2.7,2024' and explain each component of your expression. Discuss why using a regular expression might be preferable to a hand‑coded validation loop in a scripting context.
某经济学家下载了一个 CSV 文件,每行记录国家代码、GDP 值和年份。国家代码必须恰好是两个大写字母(A–Z),GDP 为正整数或最多两位小数的十进制数,年份为 2000 至 2099 之间的四位数字。编写匹配整行格式的正则表达式。在字符串 'UK,2.7,2024' 上手动测试,并解释表达式各部分。讨论在脚本环境中使用正则表达式为什么可能优于手写验证循环。
^[A-Z]{2},\d+(\.\d{1,2})?,(20\d{2})$
^[A-Z]{2} ensures the line starts with exactly two uppercase letters. ,\d+ matches a comma followed by one or more digits for the integer part of GDP. (\.\d{1,2})? optionally matches a decimal point and 1‑2 digits. ,(20\d{2}) matches a comma, then '20' followed by any two digits, capturing the year. The anchors ^ and $ ensure the entire string conforms. Test: 'UK,2.7,2024' – 'UK' matches [A-Z]{2}, comma matches, '2' matches \d+, '.7' matches \.\d{1,2} (as '.7' is one decimal digit), comma and '2024' , declarative and executed by highly optimised internal automata, reducing the risk of off‑by‑one errors and improving readability compared to a lengthy set of if‑conditions.
^[A-Z]{2} 确保行首正好是两个大写字母;,\d+ 匹配逗号后一位或多位数字(GDP 整数部分);(\.\d{1,2})? 可选匹配小数点及 1‑2 位小数;,(20\d{2}) 匹配逗号、'20' 和任意两位数字,捕获年份。锚点 ^ 和 $ 确保整串都符合格式。测试:'UK,2.7,2024' — 'UK' 匹配 [A-Z]{2},逗号匹配,'2' 匹配 \d+,'.7' 匹配 \.\d{1,2}(一位小数),逗号及 '2024' 匹配。正则验证简洁、声明式,由高度优化的内部自动机执行,与冗长的 if 条件相比,减少了偏差一类的错误,并提高了可读性。
7. Algorithmic Efficiency in Climate Modelling | 气候建模中的算法效率
values. The update rule for cell (i, j) requires the average of its four orthogonal neighbours. The naï ed loops and extracts neighbour values with index checks. Calculate the number of floating‑ ry cells have fewer neighbours. Propose a more efficient approach using convolution or pre‑computed neighbour offsets, and discuss how a space‑time trade‑ d) reduces branching and improves cache performance. Relate your answer to the AQA idea of 'algorithmic optimisation'.
气候科学家运行一个更新二维温度网格的模拟。单元 (i, j) 的更新规则需要其四个正交邻居的平均值。朴素算法使用嵌套循环并通过索引检查提取邻居值。计算 N×N 网格每时间步的浮点运算次数(假设边界单元邻居较少)。提出一种使用卷积或预计算邻居偏移量的更高效方法,并讨论如何通过时间‑空间权衡(例如复制网格)减少分支并改善缓存性能。将你的回答与 AQA 的“算法优化”理念联系起来。
rners: 2 neighbours → 2 add + 1 div = 3 ops each. Total ops ≈ 5(N-2)² + 16(N-2) + 12. Instead, pre‑compute a list of (dx, dy) neighbour offsets once, iterate in a single pass without if‑ erages only for interior cells, and store results in a separate array. This eliminates per‑ ead from old, write to new) avoids overwriting cells needed by neighbours, enabling stream‑like memory access that maximises cache line usage – a classic space‑for‑time optimisation. AQA values the ability to assess trade‑ s patterns that reduce constant factors, even when time complexity formally remains O(N²).
内部单元 (N-2)² 每个需 4 次加法和 1 次除法 = 5 次运算。边上的 4(N-2) 个单元各有 3 个邻居 → 3 次加法 + 1 次除法 = 4 次运算。四个角:2 个邻居 → 2 次加法 + 1 次除法 = 3 次运算。总运算量 ≈ 5(N-2)² + 16(N-2) + 12。取而代之,预计算邻居偏移量列表 (dx, dy) 一次,仅对内部单元求平均,无需 if 检查,并将结果存入另一个数组。这消除了逐单元的分支,允许编译器对内循环进行向量化。复制网格(从旧数组读,写入新数组)避免覆盖邻居仍需的单元,实现流式内存访问,最大化缓存行利用率——经典的以空间换时间策略。AQA 重视评估权衡的能力:选择能减少常数因子的数据结构和访问模式,即使时间复杂度形式上仍为 O(N²)。
8. Boolean Logic and Medical Diagnosis Rules | 布尔逻辑与医疗诊断规则
A decision-support system uses three inputs: fever (F), cough (C), and loss of taste (T). The system raises an alert S if (fever AND cough) OR (loss of taste AND (fever OR cough)). Write the Boolean expression for S, simplify it using Boolean algebra identities, and draw the logic gate circuit before and after simplification. Explain how simplification benefits a mobile health app that runs on a low‑power device. Use truth tables to verify equivalence.
某个决策支持系统使用三个输入:发烧 (F)、咳嗽 (C) 和味觉丧失 (T)。若 (发烧 AND 咳嗽) OR (味觉丧失 AND (发烧 OR 咳嗽)),则系统发出警报 S。写出 S 的布尔表达式,用布尔代数恒等式化简之,并绘制化简前后的逻辑门电路。解释简化对运行于低功耗移动设备的健康应用有何好处。使用真值表验证等价性。
Expression: S = (F ∧ C) ∨ (T ∧ (F ∨ C)). By distribution: (F ∧ C) ∨ (T ∧ F) ∨ (T ∧ C). Factor F with C: F ∧ (C ∨ T) ∨ (T ∧ C). Notice (T ∧ C) is covered by the previous if we rewrite as F ∧ (C ∨ T) ∨ (T ∧ C). Further thinking: using consensus, (F ∧ C) ∨ (T ∧ F) ∨ (T ∧ C) = (F ∧ C) ∨ (T ∧ F) ∨ (T ∧ C) – no further common simplification. But applying absorption: if we consider F ∧ C covers the cases where both F and C are true; T ∧ (F ∨ C) covers T with at least one of F, C. Complete simplification yields S = (F ∧ C) ∨ (T ∧ (F ∨ C)). However, a Karnaugh map reveals S = (F ∧ C) ∨ (T ∧ F) ∨ (T ∧ products without introducing XOR. Simpler circuit uses three AND gates and one OR gate (2‑level). Pre‑ 1) or (T=1 and F=1) or (T=1 and C=1). Simplification reduces gate count, lowering dynamic power consumption and allowing the app to run faster on energy‑harvested wearables.
表达式:S = (F ∧ C) ∨ (T ∧ (F ∨ C))。分配后:(F ∧ C) ∨ (T ∧ F) ∨ (T ∧ C)。提取 F 与 C:F ∧ (C ∨ T) ∨ (T ∧ C)。使用 Karnaugh 图,S = (F ∧ C) ∨ (T ∧ F) ∨ (T ∧ C),无法进一步化为更少的积之和而不引入异或门。简单电路使用三个 AND 门和一个 OR 门(两级)。化简前表达式需要内部一个 OR 门,共三个门。真值表(8 行)证实 S 在 (F=1,C=1) 或 (T=1 且 F=1) 或 (T=1 且 C=1) 的任意组合时为真。化简减少了门数量,降低了动态功耗,使应用在能量收集型可穿戴设备上运行更快。
9. Data Structures: Priority Queues for Hospital Triage | 数据结构:医院分诊优先级队列
ent) to patients. A computer system must always serve the lowest score first. Which abstract data type – stack, queue, or priority queue – is suitable? s efficiently. Given a series of insertions: [3, 1, 4, 1, 5, 9, 2], draw the resulting min‑ ing the two most urgent patients. Analyse the time complexity of insertion and extraction.
急诊科为患者分配分诊评分(1 = 最紧急,5 = 最不紧急)。计算机系统必须始终优先处理最低评分。哪种抽象数据类型——栈、队列还是优先级队列——合适?解释二叉堆如何高效实现这一点。给定一系列插入:[3, 1, 4, 1, 5, 9, 2],画出每次插入后的最小堆,并展示提取两位最紧急患者的步骤。分析插入和提取的时间复杂度。
uired because elements must be dequeued based on priority, not arrival order. A binary min‑ where each parent ≤ its children. Insertion adds the element at the next leaf position and 'bubbles up' ile the parent is larger. Extraction removes the root, replaces it with the last leaf, and 'bubbles down' , the final heap will have 1 as root; extracting produces 1 then the next 1. The exact per‑step heap diagrams would show the bubble‑up process maintaining the min‑heap property.
需要优先级队列,因为元素必须按优先级出队,而非按到达顺序。二叉最小堆将元素存储在完全二叉树中,其中每个父节点 ≤ 其子节点。插入将元素添加到下一个叶位置,并在父节点较大时“上浮”。提取移除根节点,用最后一个叶节点替换,然后“下沉”。两个操作均为 O(log n)。对于给定序列,最终堆的根为 1;提取操作产生第一个 1,再产生下一个 1。逐步堆图将显示维持最小堆性质的上浮过程。
10. Halting Problem and Economics Forecasting Models | 停机问题与经济预测模型
Economists sometimes attempt to build a 'perfect' forecasting program that can predict whether any given economic simulation will eventually stabilise or crash. Using your understanding of Turing's Halting Problem, explain why a general algorithm that takes the source code of any simulation and predicts its long‑term outcome is impossible. Relate your argument to self‑referential paradoxes like 'This program crashes if it detects it will stabilise'. Discuss the implications for AQA's study of 'Limits of Computation'.
经济学家有时试图构建一个“完美”的预测程序,能够判断任意给定的经济模拟最终会稳定还是崩溃。基于对图灵停机问题的理解,解释为什么一个能够接受任意模拟源代码并预测其长期结果的通用算法是不可能的。将你的论点与自指悖论联系起来,如“如果本程序检测到自己将稳定,则崩溃”。讨论这对 AQA “计算局限性”学习的意义。
Turing proved there is no general algorithm H that decides for every program P and input I whether P(I) halts. If such a forecasting predictor F existed, we could construct a paradoxical simulation S that behaves opposite to F'S prediction: S stabilises if F says it will crash, and crashes if F says it will stabilise. This self‑reference creates a contradiction, demonstrating F cannot exist. The same reasoning shows that any non‑trivial semantic property of programs is undecidable (Rice's theorem). For AQA, this underscores that computations have fundamental limits; even with unlimited resources, some problems are unsolvable, guiding software design toward practical heuristics rather than exhaustive verification.
Turing 证明不存在通用算法 H 能判定每个程序 P 和输入 I 是否停机。若存在这样的预测器 F,我们可构造一个悖论模拟 S,其行为与 F 的预测相反:若 F 说 S 崩溃,S 就稳定;若 F 说 S 稳定,S 就崩溃。这种自指产生矛盾,证明 F 不可能存在。同理,程序的任何非平凡语义性质都是不可判定的(莱斯定理)。对于 AQA,这强调计算存在根本性限制;即使资源无限,某些问题也无法解决,这引导软件设计走向实用的启发式方法,而非穷举验证。
11. Database Normalisation for Environmental Survey Data | 数据库规范化与环境调查数据
A conservation team records field observations in a single table: Observation(ObsID, Date, SpeciesName, HabitatType, SurveyorID, SurveyorName). Identify insertion, deletion and update anomalies. Normalise this to 3NF by suggesting appropriate new tables and key assignments. Write SQL queries to (a) list all observations of species 'Red Squirrel' in 'Pine Forest', and (b) count the number of distinct habitats surveyed by each surveyor. Explain how normalisation reduces data redundancy in long‑term ecological monitoring databases.
某保护团队在单表中记录野外观察:Observation(ObsID, Date, SpeciesName, HabitatType, SurveyorID, SurveyorName)。指出插入、删除和更新异常。通过建议合适的新表和关键字分配将其规范化为 3NF。写出 SQL 查询以 (a) 列出在“松树林”中观察到“红松鼠”的所有记录,以及 (b) 统计每个调查员调查的不同栖息地数量。解释规范化如何减少长期生态监测数据库中的数据冗余。
Anomalies: Insertion – cannot add a new surveyor without an observation. Deletion – removing the last observation of a surveyor loses their name. Update – ating many rows. 3NF: Surveyor(SurveyorID, SurveyorName), Species(SpeciesName, HabitatType?) – but habitat depends on species? cies table is optional if SpeciesName is atomic. The dependency ObsID → Date, SpeciesName, HabitatType, SurveyorID; SurveyorID → SurveyorName. This is already 2NF if we split Surveyor. Full 3NF: Observation(ObsID, Date, SpeciesName, HabitatType, SurveyorID), Surveyor(SurveyorID, SurveyorName). SQL: (a) SELECT * FROM Observation WHERE SpeciesName = 'Red Squirrel' AND HabitatType = 'Pine Forest' P BY SurveyorName; Normalisation ensures each fact is stored once, so updating a surveyor’s name affects only one row, preventing inconsistencies in decade‑long datasets.
异常:插入——无法在没有观察的情况下添加新调查员。删除——删除某调查员的最后一次观察将丢失其姓名。更新——更改调查员姓名需更新多行。3NF:Surveyor(SurveyorID, SurveyorName);Observation(ObsID, Date, SpeciesName, HabitatType, SurveyorID)。物种表可选,若物种名为原子属性。依赖关系:ObsID → Date, SpeciesName, HabitatType, SurveyorID;SurveyorID → SurveyorName。拆分 Surveyor 后已满足 2NF。完整 3NF:Observation(ObsID, Date, SpeciesName, HabitatType, SurveyorID),Surveyor(SurveyorID, SurveyorName)。SQL:(a) SELECT * FROM Observation WHERE SpeciesName = 'Red Squirrel' AND HabitatType = 'Pine Forest'; vation JOIN Surveyor ON Observation.SurveyorID = Surveyor.SurveyorID GROUP BY SurveyorName。规范化确保每个事实只存储一次,因此更新调查员姓名只影响一行,防止长达十年数据集中的不一致。
12. Network Security and Financial Transaction Protocols | 网络安全与金融交易协议
When a customer initiates an online bank transfer, the session must prevent eavesdropping and ensure message integrity. Describe how symmetric encryption (e.g., AES) and asymmetric encryption (e.g., RSA) are combined in the TLS handshake to exchange a session key. Explain what a digital signature achieves and how it links to the concept of non‑repudiation. Finally, illustrate a simple man‑in‑the‑middle attack and explain why a Public Key Infrastructure (PKI) is essential to mitigate this threat. Frame your discussion around AQA's network security syllabus points.
当客户发起在线银行转账时,会话必须防止窃听并确保消息完整性。描述 TLS 握手中如何结合对称加密(如 AES)与非对称加密(如 RSA)来交换会话密钥。解释数字签名实现什么功能,以及它如何与非抵赖性概念相关联。最后,描绘一个简单的中间人攻击,并解释为什么公钥基础设施(PKI)对缓解此威胁至关重要。围绕 AQA 网络安全大纲要点展开讨论。
TLS uses RSA to encrypt a pre‑master secret with the server's public key; only the server's private key can decrypt it. Both parties then derive symmetric AES session keys for bulk data encryption, combining the speed of symmetric ciphers with secure key exchange. A digital signature (encrypting a hash with the sender's private key) provides integrity and authentication; because the sender's private key is unique, they cannot later deny having signed the message – this is non‑repudiation. In a MITM attack, an attacker intercepts the server's public key and substitutes their own; the client encrypts the pre‑master secret with the attacker's key, allowing the attacker to decrypt and re‑encrypt for the real server. PKI uses Certificate Authorities to bind public keys to verified identities via digital certificates, so the client can validate the server's certificate and detect substitution. AQA syllabus covers encryption, digital signatures, the TLS handshake and the role of CAs.
TLS 使用 RSA 以服务器公钥加密预主密钥;只有服务器私钥能解密。双方随后导出对称 AES 会话密钥,用于批量数据加密,结合了对称密码的速度和非对称密钥交换的安全性。数字签名(用发送者私钥加密哈希)提供完整性和认证;因发送者私钥唯一,其事后无法否认签名——即非抵赖性。在中间人攻击中,攻击者截获服务器公钥并替换为自己的公钥;客户端使用攻击者的密钥加密预主密钥,攻击者解密后重新加密发给真实服务器。PKI 通过证书颁发机构将公钥与经过验证的身份绑定为数字证书,使客户端可以验证服务器证书并发现替换。AQA 大纲涵盖加密、数字签名、TLS 握手以及 CA 的作用。
Published by TutorHao | Computer Science Revision Series | aleveler.com
更多咨询请联系16621398022(同微信)

或截图后用「扫一扫 → 相册」选择本图