From 0b93175e40f1002a191007d68b7d9e03072e9b7e Mon Sep 17 00:00:00 2001 From: Dirk-Willem van Gulik Date: Thu, 9 Apr 2020 14:07:58 +0200 Subject: [PATCH] First stab at Markdown Versions 2 --- .../DP3T - Data Protection and Security.md | 233 ++++++++++++++++++ .../DP3T - Simplified Three Page Brief.md | 49 ++++ .../fig/1460d7b99247b1131d98d832ffd1b5c4.png | Bin 0 -> 26083 bytes .../fig/2454d6a42886554d4a1309a12cfec89f.png | Bin 0 -> 123702 bytes .../fig/9a11a2efc2e99baa6368c09436f2c68e.png | Bin 0 -> 60880 bytes .../fig/f81a696c9c11ba35032d071a91f2a1fc.png | Bin 0 -> 31512 bytes 6 files changed, 282 insertions(+) create mode 100644 src/markdown/DP3T - Data Protection and Security.md create mode 100644 src/markdown/DP3T - Simplified Three Page Brief.md create mode 100644 src/markdown/fig/1460d7b99247b1131d98d832ffd1b5c4.png create mode 100644 src/markdown/fig/2454d6a42886554d4a1309a12cfec89f.png create mode 100644 src/markdown/fig/9a11a2efc2e99baa6368c09436f2c68e.png create mode 100644 src/markdown/fig/f81a696c9c11ba35032d071a91f2a1fc.png diff --git a/src/markdown/DP3T - Data Protection and Security.md b/src/markdown/DP3T - Data Protection and Security.md new file mode 100644 index 0000000..14cde72 --- /dev/null +++ b/src/markdown/DP3T - Data Protection and Security.md @@ -0,0 +1,233 @@ +# Decentralized Privacy-Preserving Proximity Tracing +## Overview of Data Protection and Security +### Version: 3rd April 2020. Contact first author for latest version. + +**EPFL:** Prof. Carmela Troncoso, Prof. Mathias Payer, Prof. Jean-Pierre Hubaux, Prof. Marcel Salathé, Prof. James Larus, Prof. Edouard Bugnion, Dr. Wouter Lueks, Theresa Stadler, Dr. Apostolos Pyrgelis, Dr.Daniele Antonioli, Ludovic Barman, Sylvain Chatel + +**ETHZ:** Prof. Kenneth Paterson, Prof. Srdjan Capkun, Prof. David Basin, Dennis Jackson + +**KU Leuven:** : Prof. Bart Preneel, Prof. Nigel Smart, Dr. Dave Singelee, Dr. Aysajan Abidin + +**TU Delft:** Prof. Seda Guerses + +**University College London:** Dr. Michael Veale + +**CISPA:** Prof. Cas Cremers + +**University of Oxford:** Dr. Reuben Binns + +**TU Berlin / Fraunhofer HHI:** Prof. Thomas Wiegand + +There is growing political and epidemiological interest in deploying technological approaches to help individuals and countries navigate the COVID-19 pandemic. One approach has been +to make use of low-powered Bluetooth sensors on smartphones to inform users when they have been in contact with individuals who have since tested positive, and to support epidemiologists with modelling efforts. However, some infrastructures that can enable proportionate proximity tracing may fail to protect data, or be misused or extended far beyond their initial purpose and beyond the lifetime of the crisis. This is all the more important given the truly global nature of this challenge and the fact that the pandemic crosses across borders and jurisdictions with different levels of fundamental rights guarantees or in times where many governments are functioning under rules of exception. + +Designs with centralized components, where a single actor, such as a server or a state, can learn a great deal about individuals and communities, need specific attention because if they are attacked, compromised or repurposed, they can create greater harm. **In order to address these issues, we instead realise the same task using a decentralized design that does not require the centralized collection and processing of information on users.** Such a design builds on strong mathematically provable support for privacy and data protection goals, minimises the data required to what is necessary for the tasks envisaged, and prevents function creep, for example for law enforcement or intelligence purposes, by strictly limiting how the system can be repurposed with cryptographic methods. + +The decentralized system, explained in detail in the accompanying document, works in 4 phases: +1. **Installation**: the app is installed, generates a secret seed (SK), and derives *Ephemeral Bluetooth IDs* (EphIDs) from it + +2. **Normal operation:** each app broadcasts EphIDs via bluetooth, and records EphIDs that are broadcast by other apps in the vicinity + +3. **Handling infected patients:** after patients are diagnosed, and only with their consent and with authorization from a health authority, they upload specific data from their phone to the backend server. From this data, the identity of the patient cannot be derived by the server or by the apps of other users (see below), it is nearly anonymous. Before this point, no data other than the broadcast EphIDs leaves the phone. + +4. **Decentralized contact tracing:** each app can use the data from the backend to locally compute whether the app’s user was in physical proximity of an infected person and potentially at risk of infection. If they were, the app can inform the user to take action. + +Additionally, app users can *voluntarily* provide (anonymous) data to epidemiology research centers. + +![](fig/2454d6a42886554d4a1309a12cfec89f.png) + + *Figure 1: Phases in the decentralized proximity tracing system* + +The system provides the following security and privacy protections: + + **- Ensures data minimisation.** (See below) No entity can observe or keep record of a global view of the social graph of a population, in anonymized form or otherwise. + + **- Prevents function creep.** The entities in the system receive the minimum amount of information tailored to their requirements. None can abuse the data for other purposes, nor can they be coerced or subpoenaed to make data available. + + **- Protects non-infected users.** No entity, including the backend server, can learn information from non-infected users. + + **- Graceful dismantling.** The system will organically dismantle itself after the end of the epidemic. Infected patients will stop uploading their data to the central server, and people will stop using the app. Data on the server is removed after 14 days. + +And entails the following risks: + + - An *active tech-savvy* adversary can reidentify EphIDs from infected people *that they have been physically close to in the past* by actively modifying the app and collecting extra information about identities through additional means, such as a surveillance camera to record and identify the individuals.The information learned via the app is, in many cases, already expected to be known to this adversary (e.g., family, friends, neighbours, who will directly inform their close relations and friends). This attack **is inherent to any proximity-based system notification system,** as the adversary only uses the fact that they are notified together with additional information gathered by their phone or other means. + - A *tech-savvy adversary* deploying an antenna to eavesdrop on bluetooth connections can learn which connections correspond to infected people, and then can estimate the percentage of infected people in a small radius of 50m. If in addition, the adversary has a camera, he can capture images and potentially re-identify those people. + +Both of these attacks are local: adversaries can learn (some) information about infected individuals in close proximity to the equipment that they deployed. + +## High-Level Data Protection Overview +Data protection by design and default obliges that: + + *only personal data which are necessary for each specific purpose of the processing are processed. That obligation applies to the amount of personal data collected, the extent of their processing, the period of their storage and their accessibility* (GDPR, art. 25) + +There are five main data-protection-relevant actors in this system: **users, health authorities,** a **backend server, epidemiological research projects,** and **mobile phone operating system providers** (in this case, Apple and Google) Apple and Google only provide a push notification service, the same as for any app and are aware that the app has been installed, acting as processors, but able to see no content or data. Nevertheless, since Apple and Google provide the operating system running on mobile devices, one has to trust them, since they could potentially learn information related to the proximity tracing system (who is infected, who infected whom, social graphs, etc.). + +The decentralized approach notably minimises the amount of personal data collected by any one entity, and heavily reduces the possibility of accessibility of any information, providing the guarantee that **the backend server learns nothing about identifiable individuals or their health status.** This promotes trust in the system, as concerns around function creep and lack of purpose-limitation (such as the repurposing of the protocol by law enforcement or intelligence services in countries in which it is deployed) can be solidly rebutted mathematically. This itself may lead to wider uptake. + +The system is designed such that no entity beyond a user’s device processes or stores any identifiable personal data about the user. As a whole, the system fulfils processing goals that would usually require personal data to be transmitted. **We believe that under normal operation, none of the data used to achieve proximity tracing need be characterised as personal data, as no actors holding the data have the ability to re-identify it with *means reasonably likely to be used*** (following the test outlined by the CJEU in *Breyer*). + +The server transmits information about new infected ephemeral identifiers to users’ phones, which compute infection risk *locally*, on the device. This comes with the important benefit that **the server cannot learn the social graph**, which is data that can easily be repurposed and misused in ways that individuals would not reasonably expect and may not wish. The proposed system guarantees that transmitted information cannot be used to identify an infected individual without a costly, illegal, and tightly geographically localised attack that was successfully carried out in the past, before the individual tested positive. The theoretical potential of this attack is the tradeoff to obtain technical guarantees that prevent function creep and ensure limitation by design. + +Because some theoretical attacks exist (above) — requiring high-effort, illegal activity to carry out, and which only provide highly localised information — **we believe it is best for the purposes of trust to treat the entire pipeline with the same obligations that we would expect if personal data was processed by it**. There are additional ethical, non–data protection reasons to seek informed consent at every relevant point, although a different lawful basis (e.g., task in the public interest) may be appropriate to rely on. As a result, the fact that the sensitive information, including health information, has equivalent protection to genuinely anonymous data, means that it is protected from all actors by among the most technically stringent safeguards possible in a system with the functions necessary for this purpose. + +## Detailed Stage-by-Stage Analysis + + *In the remainder of the document, all communications between the app and the backend server, or any other party, are encrypted using the most appropriate TLS configuration.* +### 1. Installation process of proximity tracing app + +Users install the app from either the Apple App Store or the Google Play Store. No personal data is provided to the app. + +*Registering for push notifications.* The app needs to regularly receive information pertaining to newly infected patients from the backend server, so that it can locally determine whether its owner has been in physical proximity of an infected patient. Because apps running in the background are not guaranteed to be able to download information, the app registers for a push notification service: Firebase Cloud Messaging (FCM) on Android and Apple Push Notification service (APN) on iOS. The app sends the notification identifier to the backend. The backend stores this identifier to send information to the app. The backend does not store any other information (PII or otherwise) with this notification identifier. + +**Information security** + +The mobile phone OS operators (Apple and Google) learn that the user installed the app and have registered for the push notification service, but cannot see any data. + +The backend server only stores the notification identifier of the app. This identifier is only used to send data to the apps. When apps upload their seed SK after having been diagnosed, they do not supply this identifier to the backend. + +Network observers only observe encrypted data between the app and the backend. This data is the same for every app installation. Therefore network observers can conclude only *that somebody just installed the app.* + +**Data protection** + +The main controller of the system (e.g. the coordinator of the backend server and app deployment) would need a standard data processor agreement with the OS providers, as with any public sector app using push notifications. The system envisaged here is unlikely to pose additional risks to the rights and freedoms of data subjects, as data subjects withsmartphones will already be using these systems every day. + +### 2. Normal operation of proximity tracing app +**Note: although we use the word ‘identifier’, the term used in data protection law, the technical specifications of the system prevent them from being used to identify individuals.** + +*Broadcasting ephemeral Bluetooth identifiers.* Phones with the proximity tracing app installed broadcast ephemeral bluetooth identifiers (EphIDs) via Bluetooth low energy. These ephemeral identifiers are generated pseudo-randomly by the phone, derived from the secret key SK of the phone. EphIDs are rotated periodically. See Figure 2. + +*Storing of received Ephemeral Bluetooth Identifiers.* Phones receive Bluetooth identifiers that are being broadcasted by nearby phones. Phones store a record of each received ephemeral identifier with the following information: + - Received EphID + - Coarse time window: morning/afternoon/night and the date + +These records are stored locally on the phone and are **never** sent anywhere + +*Pruning records.* Phones regularly delete records of old received EphIDs. They are stored no longer than the duration considered relevant by the health authority, anticipated to be 14 days, but this is reconfigurable. + + ![](fig/f81a696c9c11ba35032d071a91f2a1fc.png) + + *Figure 2: Generation and broadcasting of ephemeral identifiers/EphIDs* + +**Information security** + +The EphIDs are generated pseudo-randomly and regularly rotated. Due to limitations on the Bluetooth technology, EphIDs are sent in the clear. Yet, as they are random and rotated frequently, they cannot be mapped to users’ identities nor be used to track them. + +Apps of users that have not been diagnosed with SARS-CoV-2 can delete EphIDs after the short period in which they are broadcasted, and will not further expose these EphIDs to the backend server. Only the confiscation of the phone, for example by law enforcement, might lead to the extraction of phone seeds to regenerate EphIDs of the given epoch. This risk can be mitigated by encrypting past seeds after they are used. These users are therefore not traceable based on EphIDs, even by parties that can receive and store these EphIDs. See below for the analysis for diagnosed patients. + +Collected and broadcast EphIDs, and the underlying secret seeds, will not be exposed in the +user interface of the app, as an additional safeguard against users seeking to go beyond +normal operation. + +From a traffic analysis perspective every instance of the app behaves the same. All of them +broadcast ephemeral identifiers. + +**Data protection** + +In normal operation, no user or the app on their phone processes personal data of any +individuals except themselves. While the information they collect, in conjunction with the broader protocol, enables them to compute a risk score, it does not relate to other identified +or identifiable natural persons. + +Users collect the ephemeral identifiers of nearby users who are using the app. These +identifiers are i) stored with only coarse time-frames (such as ‘the morning’), duration, +proximity, and other auxiliary data; and ii) rotating frequently. Future identifiers cannot be +predicted from observing previous identifiers. Even if an individual takes note, records with a +camera who they were near, and performs traffic analysis on the identifiers received during +that time, they could not use that information to single out an individual at other times, or to +re-identify data on others’ devices at other times. They would not learn more about +non-infected individuals than they already knew: that they were present at a location at a +specific time. + +The only way to link a device across multiple broadcast identifiers is by using information +held on that individual’s device. This would require access to that device, or obtaining +recordings from the device. Doing so without permission would represent a computer misuse +offence in most jurisdictions. The second scenario in which this information is provided is +intentional and by design, during the calculation of whether an individual is at risk of +infection. This situation is discussed further, below, when this aspect of the protocol is +described. Neither situation will, however, reveal the identity of an individual unless there is +side-information, e.g., a camera and on-device traffic analysis that stores the precise times +that individuals met (not possible retroactively). This scenario is, however, not a flaw of the +protocol, but rather a consequence of proximity tracking. + +To underscore the data protective nature of these measures, it is worth noting that the +re-identification test set out by the CJEU in Breyer (C-582/14) as necessary to classify this +as personal data would not be met. Firstly, establishing an effective side-database would +likely require breaking the law by surveilling individuals without an effective lawful basis (e.g. +illegitimately using covert cameras directed outward from the person, see Ryneš +(C-212/13)). In Breyer, the Court noted that the test of means reasonably likely to be used to +identify a natural person would not be met ‘if the identification of the data subject was +prohibited by law’. Furthermore, it is also arguable that these specialised attacks would +require ‘a disproportionate effort in terms of time, cost and man-power, so that the risk of +identification appears in reality to be insignificant’ (Breyer). However, as discussed, we +suggest ensuring the obligations applying to personal data are still applied as good practice. + +Collecting emitted Bluetooth data would additionally trigger article 5(3) of the ePrivacy +Directive, due to accessing/storing data from/on a terminal device. Multiple approaches to +this are possible, but the simplest would be to obtain the informed consent of all users upon +installation, which would then apply both ways, to the broadcast and the collection of +EphIDs. + +### 3. Handling infected patients + +Health authorities diagnose patients that have been infected with SARS-CoV-2. After a positive diagnosis, the health authority employee will ask the patient if they have the app +installed, and if the patient is willing to reveal their EphID to facilitate contact tracing. If the user **opts in,** they proceed as follows (see Figure 3). + +1. The health authority generates an authorization code for the patient, e.g., in the form +of a QR code. The health authority shows this QR code to the patient. +2. The patient instructs her app to scan the QR code to obtain this authorization code. +3. The app opens an encrypted TLS connection to the server and sends the authorization code and its seed SK, a compact representation of the EphIDs it has broadcast during the infectious window, to the backend. The size of this message is fixed. This upload does not include the push-notification identifier. +4. When the backend receives the upload, it verifies the authorization code, and stores the seed. It does not store any other information related to the upload (such as IP addresses or time). + + ![](fig/1460d7b99247b1131d98d832ffd1b5c4.png) + + *Figure 3: Information by infected patient* + +To combat traffic analysis, apps periodically upload data to the server at predetermined intervals (e.g., every 6 hours). If they are uploading the seed after being diagnosed, it uploads the real EphID-representation and the authorization code. Otherwise, the app transmits a dummy message formed by random bytes of the same size. + +**Information security** + +Apps of users that have been diagnosed with SARS-CoV-2 send to the backend the seed oftheir EphIDs corresponding to the infectious window. Given this seed, it is possible to link the EphIDs to the patient (whose identity is not revealed). + +Network observers can observe encrypted traffic between the phone and the backend. However, the timing and schedule of this traffic is identical, regardless of whether the patient was infected or not. + +**Data protection** + +**The health authority processes no additional personal data other than what it would usually process when carrying out a COVID-19 test.** . This is in line with the principles of +data protection by design, data minimisation, purpose limitation, and security. Their role is simply to facilitate processing by the user through validating the test and authorising the transfer of data to the server, without being a conduit to the data themselves. It may be that, following the case-law, this leaves them with controllership duties despite never seeing personal data (see *Wirtschaftsakademie Schleswig-Holstein* (C-49/17); *Jehovan todistajat* (C‑25/17); *Fashion ID* (C-49/17)), however these would be minimal as they would already expect to be a controller in relation to the execution of the COVID-19 test. They should inform the user about the process, in line with GDPR art. 13, for example orally or with asign. + +**The backend server that the data is transmitted to cannot link any of the infected EphIDs to natural persons.** In normal functioning, therefore, we can even understand that the server will not be holding personal data, although, as mentioned, we err on the side of caution and consider it to be personal data with near-anonymous safeguards. No additional data needs to be stored beyond these identifiers. + +### 4. Contact tracing and epidemiological research + +Several times a day, the backend server sends newly received EphID seeds of infected patients to all installed proximity tracing apps via the notification service. This notification message also contains updates to the parameters of the local computation of the risk score of the device user, as well as information regarding calibration of the proximity computation. Every device then proceeds as follows (see Figure 4): + +1. It compares the received EphIDs (corresponding to infected patients) to the stored +records of received Bluetooth identifiers. +2. If any of the received EphIDs matches a recorded identifier, the phone uses the latest +parameters to compute a risk score based on the number of matching identifiers and +the total duration. +3. If the computed risk score is above the provided threshold, the app shows a notification to the user that she/he has been in proximity to an infected patient. The notification contains instructions on what to do and whom to contact. + + ![](fig/9a11a2efc2e99baa6368c09436f2c68e.png) + + *Figure 4: Warning of persons at risk* + +*Participating in epidemiology research* (Optional). During installation, the app asks the user if the user wants to participate in the epidemiology research to help understand the SARS-CoV-2 virus. If the user **opts** in, the app sends the following data to the epidemiology research lab at the next scheduled upload time: + + - For each infected person (corresponding to an EphID seed, i e. without revealing the identity) that the smartphone observed: the number of encounters and the duration of each contact. + +To combat traffic analysis, apps will periodically upload data to the epidemiology research lab, even if they have not been in contact with an infected person. More precisely, the app picks a schedule for uploading data to the epidemiology research lab (e.g., once every 2 days). For every scheduled event, the phone creates an encrypted connection to the lab, and uploads either the real data, or a dummy message of the same size. + +**Information security** + +The notification messages from the backend to the phones are encrypted. All phones receive these messages. The phones process the received data locally, and if there is a match they show a notification to the user without sending any information to any other entity. Hence, from the perspective of an outside observer, the phones of both at-risk persons, those who have been in contact with an infected person, and those who are not at risk, behave the same + +Users who opt-in to the epidemiology research show a different traffic pattern. However, if a user has opted in to data sharing for research purposes, the app will regularly upload data to the epidemiology research lab so that an upload cannot be correlated with outside knowledge to detect whether a user has been in contact with an infected person. + +**Data protection** + +The risk model that is transmitted is a simple formula that does not differ by individual, and therefore is not personal data. There are no data protection issues with its transmission. + +As discussed above, from the server’s perspective, the data held is effectively not personal data, and cannot be linked back to individuals during normal operation. The user, upon downloading this non-personal data, computes a new category of personal data locally on their device: their risk score(s). + +The data used to compute the risk score, by default, is held only on the device of the user. If the user opts in to sending this data for epidemiology research, the data they send contains few variables and no identifier among them, and would not be personal data when in the hands of the researchers. + diff --git a/src/markdown/DP3T - Simplified Three Page Brief.md b/src/markdown/DP3T - Simplified Three Page Brief.md new file mode 100644 index 0000000..38cf0ed --- /dev/null +++ b/src/markdown/DP3T - Simplified Three Page Brief.md @@ -0,0 +1,49 @@ +### Decentralized Privacy-Preserving Proximity Tracing: Simplified Overview +3rd April 2020. For more information and authors, see the full white paper. + +There is growing political and epidemiological interest in deploying technological approaches to help individuals and countries navigate the COVID-19 pandemic. One approach has been to make use of low-powered Bluetooth sensors on smartphones to inform users when they have been in contact with individuals who have since tested positive, and to support epidemiologists with modelling efforts. However, not all proposed infrastructures that can enable proportionate proximity tracing are the same. Some of these proposals may fail to protect data, or be misused or extended far beyond their initial purpose and beyond the lifetime of the crisis. This is all the more important given the truly global nature of this challenge and the fact that the pandemic crosses across borders and jurisdictions with different levels of fundamental rights guarantees and in times where many governments are functioning under rules of exception. + +We currently see **different approaches** emerge across countries and groups: + +● **Data grab model**: Suggesting that due to exceptional conditions it is legitimate to obtain location, telecoms, sensor data collecting in existing commercial and public infrastructures, centralise it and analyse it, relying on legal norms to protect these efforts. This model advocates disproportionate collection of personal data, and assumes legal protections will be sufficient to protect populations which are often not the case. + +● **‘Anonymised’ data approach**: Solutions that propose to anonymise existing location, telecoms sensor data for further use in the pandemic. Anonymisation of personal data is a difficult, if not impossible bar to reach. For location data, for example, this will generally be ‘privacy washing’, as such rich data is impossible to effectively anonymise. Such solutions also lack in purpose specification and proportionality. + +● **Designs to minimise data collection**: Solutions that propose setting up an infrastructure specific to collecting only data needed for fulfilling proximity tracing needs of health authorities or epidemiologists. Proposals avoid relying on data collected by existing commercial or public infrastructures that were not set up for the goal of proximity tracing. These solutions can range between centralized and decentralized models: +- Centralized models attempt to minimise data by generating and keeping track of ephemeral identifiers distributed to users which can be used to construct the contact graph of a user only in the case they are infected. The generation of identifiers and generation of contact graphs are done on a server which is often assumed to be controlled by a government or another trusted entity. This model assumes that the entity running the server shall not misuse the data and capabilities of the server other than when people are infected, for example, at the request of law enforcement, border control or intelligence agencies. Such protection relies on the protection of the central server which can potentially be repurposed into a ‘data grab’ model. +- **Decentralized** models are designed to keep as much sensitive data on users devices as possible. Methods are introduced to strictly control data flows in order to avoid accumulating any contact data on a centralized server. This means that a server exists but only to enable people to use their own devices to trace contacts. The server is not trusted with sensitive data at all and therefore is not vulnerable to function creep like all the other solutions. + +Given the concerns around the effectiveness of legal measures, the impossibility of anonymization, and the intrinsic vulnerabilities of centralized data minimization models, we focus on a decentralized design for privacy preserving proximity tracing. As discussed above, designs with centralized proposals raise concerns: if they are attacked, compromised or repurposed, they can generate great harm and broadly so. **In order to mitigate these issues, we implement proximity tracing using a decentralized design that does not require the centralized collection and processing of information on users**. Such a +design builds in strong, mathematically provable support for privacy and data protection goals, minimises the data required to what is necessary for the tasks envisaged, and prevents function creep, for example for law enforcement or intelligence purposes, by strictly limiting how the system can be repurposed through the application of cryptographic methods. + +The decentralized system works in 4 phases: +1. **Installation**: the app is installed, generates a secret piece of data it uses to derive a chain of identifiers to broadcast out. +2. **Normal operation**: each app broadcasts ephemeral identifiers via bluetooth, and records ephemeral identifiers that are broadcast by other apps in the vicinity. The app rotates the broadcasted identifiers frequently. A third-party listening out will not be able to predict the next one that is rotated to, and so cannot use this to track individuals (e.g. to spot repeat visits to the same place). +3. **Handling infected patients**: after patients are diagnosed, and only with their consent and with authorization from a health authority, they (with an authorisation code) upload data from their phone to the backend server, from which the last 14 days of the identifiers they broadcast can be recreated. From this data, the identity of the patient cannot be derived by the server or by the apps of other users, it is in effect anonymous. +4. **Decentralized contact tracing**: each app can use the data they download from the backend to compute privately on their own device whether the app’s user was in physical proximity of an infected person and potentially at risk of infection. If they were, the app can inform the user to take action. + +Additionally, app users can *voluntarily* provide (anonymous) data to epidemiology research centers. + +This system: + +- **Ensures data** minimization. The central server only observes anonymous identifiers of infected people without any proximity information; health authorities learn no information (beyond when a user manually reaches out to them after being notified); and the epidemiologists obtain an anonymized proximity graph with minimal information. +- **Prevents abuse of data**. As the different entities in the system receive the minimum amount of information tailored to their requirements, none of them can abuse the +data for other purposes, nor can they be coerced or subpoenaed to make other data available. +- **Prevents tracking of non-infected users**. No entity, including the backend server, can track non-infected users based on broadcasted ephemeral identifiers. +- **Graceful dismantling**. The system will organically dismantle itself after the end of the epidemic. Infected patients will stop uploading their data to the central server, and people will stop using the app. Data on the server is removed after 14 days. + +Avoiding the accumulation of sensitive data on a centralised database comes at the ‘cost’ of localized vulnerabilities elsewhere in the infrastructure. Specifically, we see two types of high-effort attacks on the system which are theoretically possible. + +- A tech-savvy adversary could reidentify identifiers from infected people *that they have been physically close to in the past by* i) actively modifying the app to record more specific identifier data and ii) collecting extra information about identities through additional means, such as a surveillance camera to record and identify the individuals. This would generally be illegal, would be spatially limited, and high effort. + +- A *tech-savvy adversary* could reidentify identifiers from infected people that they have been physically close to in the past by i) actively modifying the app to record more specific identifier data and ii) collecting extra information about identities through additional means, such as a surveillance camera to record and identify the individuals. This would generally be illegal, would be spatially limited, and high effort. + +**Our protocol is demonstrative of the fact that privacy-preserving approaches to proximity tracing are possible, and that countries or organisations do not need to accept methods that support risk and misuse. Where the law requires strict necessity and proportionality, and societal support is behind proximity tracing, this decentralized design provides an abuse-resistant way to carry it out.** + + 3 April 2020 + Contact author: Prof. Carmela Troncoso, EPFL + + + + + diff --git a/src/markdown/fig/1460d7b99247b1131d98d832ffd1b5c4.png b/src/markdown/fig/1460d7b99247b1131d98d832ffd1b5c4.png new file mode 100644 index 0000000000000000000000000000000000000000..c6295317e36b8d0844f05d8f980398abb0d7a295 GIT binary patch literal 26083 zcmd>l1zVI|7cL;;&?zOIBGTO{4H8NtUD6Fw(jpxaL)QS(Asy1)-O|!29cS}?=lqKE zcmWRi%$~j1x@(0hD@miH5Tn4s!J*5_NUFlYA@G6!heD9R`{5P_Ht+$_Tuf064z3~! z_0I4)cnt5PDlHCII!v+y9#9y|s4Bw2eW8Pc`x*!bcLP54^)DQp3o9Jlt^phze-a!V zfqiO&iXiv`l99Z$B;4cEzs%=sr#JW>y8;t9I8zc?NwE*^^9N~e zsV}FN9#_n_Y7V>&4d?RQ#FT$hed~tOLp6=UWG821Go*6Zh$EId>DjtF@nZ?&3dXjv zjai~31HNTK-h6XTF!eiVUhy;^K8mX6@H|>-3@Ry4#Vj*CTo%Y5WN>OZ<6EK1jmLTZ zzbl9mNs-IX|G%qUIS|JY?|)Y?O?-4t=6@F}O;#Yu|NCxa+Kt!$yU=7`Q%Z~dcNxlv zBlDsB?~=fg>s3+y?;?y<7LWYDzdHK=<6o_Z!l&9#mgWhCQm<{vLJAt{GD!5IVdvm}(6uog&>`s=o5XPII8mp6%%Z5U>0 zB*&U38H|w&eRY4Y%Qu;^?#(6rrE2S6&9JJRe;Y-c!6;N;)zv-H#rX%Us(NWChh>~N zc$FmW*HT;fPUN56&&rIH(#U)vI@fZ&JA2hQtYR|7t<2%+Z$5LTMtIK z19`u3lBOxjmm{~*PcHr)+5V2>h$Phu4_A|lArV{%fFTOS}|S^mI{k#>h_F3}u(k#KZ;BYVOi zQ%D^M(PIX8wY}Y+^+0k|#5bP8RYvbIyDm(KcKZ7n=5gc7eIyi09Q=k;k(!n^NXM@E z$1A(0F>L2A?2(NmRh78d^Jb0>)I{B}vtMHA)Jc)3Z8SWbUomMiuqPK;h4M7X=5(7)vmLexh| z7&Yw^{cL-_;^gqOeUG2t_5 zn=}_oiUf!wsMuvDk#udK$t}H%bNZYA4i1)CQ-kAMj;zKbnk0%9=v*2T8%e&{jx9n` z^PEN%%P2tMTfKqIw)Qs3&1(fQV<)DeA#|E6RSAXRHnoNCeJTn{`XxHvT^mj3_W7apl{QXzh z%Nvp~=t0H{m&V%3iHiqmqdq$+waw5m5DVVV(7n<|3`#_pCI3vi zeLJ$?cW*2H=5`B?HjT2lEgtsxHPIQ`f+CSQk@hT# z3(WMpl(=p5-+wyfrHc~!?yirMsnbxMq#2eEMPf6YU{PU3rcfXskETGN;6me6FywEs zn;(Ww4O%FvBO!E*tJaX!sZ!*XqyM7X@x*l&{Y!a5pNm+MX;0IJae16We*bMd-7^vf zqZ0<(AgNsj+&d}(v&mX#sP$ZB(D?Yc>r67N&-d}t_w3>JXx*`1v(=~h>|QxQRq(L; z5C1IZ5>qRW$GO{ez)xKU>X+e)bNvsoLS7Xf&xT4OAPTH5#@{)i+O;>l(G{fg+C!ejh2?AM^&Dur^LSya;@YsK3dA3?-i!726RxB(Xp5zi(fs15{;b&Td3aGO z-+Ltbhz#6tMjL4-Vso5U2Ii{Q_L9z{#n zgU{I=Ns2m3FE0K5#x)a*`D+9rTe~Cs8_B>Z^8ZTK1GDdO5{aKB(yYqy^XKnU;Ka1$ zFwP={{Q|E(gn45V(}CU=)7~s#X=wvbIfm%I_~}$isdFzhM7eXncu)|3QOXw(lY3N%lJxSvnTkHCMFKsB#g0j`+w$pIcs{TDHR5g zO$yLV#Y>Y?A5y6Ux;Avb?BqS2!1y0O*d{3hDR_7i<(cbgPWb{rr=j_;_kZu(DO8Hg zt%Sw1)OrWYMo;Fh4rVk52G&g~6T;sr>Q~zINYxz9nmqT%gQJ7N|3d#q;yLMHA&wgJ zjQ^wsZ;P}lDN5KQ>L--F=4f8h%#3bs$HT&vW{+81{59PR10zeju@oB*U|MO%+XmRm}+)MF;V zrBnFR`gq%#%xdW0u~ATt0e)um^u?ylM>+rTk!^jS@04wON*lAusG*mzOv^7O)drcc zQj{UnsC$~+=gUQ|`~|p+@kO7#m-}wJv}bkMXY#|DIp1N11nhe>pib zgQ-O+J>!Cdi+l2=8A3VgB4oDk?|J+|aXSUo{AH*qUsahq57#eK2xStx0}?}DvOzcZ zD}2c}BkvSyl4ek1aaEJJO_4HuF0ftx{n}ru4Xe10o5xoG#3M+|9}6LI;GL9Iw;1ZH zkg#Zu=xN<&hxX!fp_b4XXQx>=(4)rpl+T(9uu$n_LM`RcsK0SO+h<-xfXX_GqZmso zO5)lEPM_q~kfW_)hH_ufeg2IqAIimJ&Pimc^_PF2dDfqXkaoGCBH!MG$|y{A%3Jx6 z@=g$sE!s~^FTf>WjC5Az^_2vz+)wdV1#@e|cJ&<#>(ad9Y{D$d@S%*aI#CkyF(sHr zmChy&Z^iKiY?pfK?vTB1JQ#lcGo74Pk4cXWAhtz8$(r+kyekwQpBKV{DC_ILXC)+w zRfvRH=H}-9acv~UJ$-2Z`i3k8ChO$HaeH}WzS81tz1%csXtSS^F6_io#p;E1}19ZKVE4RXsdM;K1dW4pOCMsMvUKO8N9av`tR7LR)(U#mjB57Hk1=SKf9i{k$v5@ z{=n4Q`h(H5cLHTx6hf*duBFH)6A+*KcFn604l#mm+D?1O?^zHb%uq{pZkS@{vAK$-y#_)yYu+<+ruIDARR{W*1gPvg8)O%kAEI!Sf{+~q${%YE(sUb3 z-w>9~zxPmDF*1EfU_h)){N9r=`j*X<@#T*fv#qW1>b|%RC&J^ZRmT?0j+JKxKMS*~ z8?Y$Ra#ty7`NDE@X)efL!`;=n@Lbo&oz$(r4OZ?|=4#*(X;{#>$X-Zr(`+^HXBD?R zSI)dL&?IeNiRGe+&BQj?yBIPtH;?-v+>TP_*BK9wfk#ljJ8?M{*p}-sk<8^1lZR<; z_c)KT6&dQQlY2w3fO`3j;h@)U1@{R@68xxviVH+ZgJBy#->WiYSlj44m zwjGm=oX8ktm+k|v{nxbHmb>vja6P22T$dtKix~xLI`*|fAOwMIzF`9GN3OuXoq>AG zy#lZYlbwe7%w>@J(WGr`nDX-SQa!eki}e~4#&V={Eaz7Z#hC+tv!Zb-8ZR}t2;Loc zG~MhL0meZVFWo~b;973ngF)uG&vtrtR=@kRsBY~$ql}_r*QO%_U4F&@IfSm~TE8Y4 zX=ZB14~vGLP5^WFCYb-?U?qeG4q@=yl@$9HY70YEkFx4gR1g^@ z*_>=xU_%4HIa?@%yAU8*Q%4gMj|-76Z5y+6e;ZM2&$?j0WRM$dnNI&u(K08m&S`4#DuMS7v~gX^Mc&?8e;oJH#x@Mqc0P6TWqvPi|3% zKw?t$&8yiKPuvJa>RyEb2jX`S%tD3^A|5mT=bkli{8?DWSSWeeRT(>`zNli}#?(5s zHWKuag}59s(3;TMur#BeHHR}q$x4vP000~oGEiHR@9#|!k#-NM#rYgYIVU+mpuMH?W2A! zJtBy27du>IlakDJW)Y13s(Xtm1zS8iHGa5)BZ{7hYsnI`eb}3iCy$dYHvAEUr&ZWW&uf zNEUTqSl|^64h~L|pe?)Sh1c`;_ohQW&=l=s4}Oi9hej!OLp*+k1W5GnJWerVCF|vYdn8C5DO- za&qyE@7jsYaCt4eFWTD4d}V_WGJW`{v1*5oMNa&N%+ zC>SKXzjvpKv?`3Azv8jY&B|)S{w^mcS9iUY;&Cx&em#-#&^egQL5-Mgq2n3U@nV|z zO*AYNiyvyQbxunR{e9}n_^x&(A?LZhRi?IGfT0FuU@)9QhqWiJI^k(_k_^YUo^{&c z#9%3^IU?h}0VatW=->8`!*QA8Jiqflj-J>1VI!|uifA}EqUx)*O$h1QDnt38K@bV zZ8k>@UX_N7y6~)bD;e!}&i&OUks(z>;Z#(eQ0~8d^dNv35wfzIgOyMH%E@(+xNo$c zXl412hlu3dCQ?ds~fJIi?7 zIP!fI5OCeMR~Y26p8Y+ZC+~50(!;l%>SV-^tI9iw_2pBYF0*7&FgB++r$dt7$1?H) zI&oYJC?rT02N6LG5}`)BLc(Xia}rL%2Gx6>;%>KTl?yY8Nk|Y|E?~>0&#UPg!4bm} z6JDvq=&+z=;7jA{8KfUhLBmGX6H!8^l#%UgKM19#rG<~`>3UeB0=w`v6N}--F`GiV zGv0!mZDwH}8H3CCcx95HDZl51Z4c`+EYkUtHlRK|f3x6`_+aECtf2xh74I8H5UE05JSktMaKuJt-!)eDt)`(vcfU z#*v1gQZ z*LBVm@8!#rb@Io$v$4<}Ruf}8WbJ+`&f=5}cELNzj(B=-M zCi=*m8#$;pF%)pN$e+@P0PHXvrD`)#m+N* zXT9=38%GyuI^TIMvr}{an^PoswR`hIdF4Y}!oe%vFY^e2TkoJ>EIN~UB{So(4Vx4g zQr&Z91eOywKMGu=T2x)dQsyP8c;vi(y*T_3i=e_6H4nK&pQh6eh7yG2>dDd{4?Vm@V_;-?9Y!;Ee3JrU2a9I4# zByW={FE3tCv-(v4#T?O`1+$;XtfZG03390L?w-|aMiyE(NnxVGj>4aBjF&5V;$pZF zvWVg};#IU%#3){$ce z=1R=Uz!3Vh=|JsicUZ7~#JBZ(c`!ULyw^ZRnVSoP0cCr}ao#fjBrfAF&~4e{MF*>e zjm_q;z>y>bdra(}fh5o_s_Ta7=2LdwcIhr5GX&j*l77$%!K_!pLEG`o=EvKD(vsiN zV)7ak%t6;Z>7te&*dDws;>WdeRpY;jnWyGxZx{>9-Wu{a#!Y>5aT zG&Cr&XlUtbg_1n`2pOu6Oyvukg8yZdn6};F9(&**jnT(+#xnuV&u)9p37R(U~aktO>ohkhanQN&qvS3-wWsPY|;Jl2n|GjU(ZD(S{u5?^u;%aT`yqb#N5Fw$Z^ z)aS{f>owS~ibIJJ2*go14UMv~(GXd~)yGw(*Usp44(S4=bakm17cGi5I3Ux~ZYG4G6jE}EKo-4OxPZeY#=7o8x15$l`Jsc>kksQOk0X^it zO?o~nj}MnXorX}>{qaYwdwjSJ$^EEN7MKb;R%z2|KV<$bkXG{3zkCPK6Qg#4w5sjS zN2Jm9;QKMWf!haH*P02ju{3tqea$DS`LKSQjLc&LJ2(F7-pA+REQ90og<#Rutx%r@%aimC_8KmvD^^!?D(k69Nog}fNBb1W#ay>u)4Tr?`uX|un|Wlu z@xZIP53u)qNa*N(k}~KLHOYC<@!Xo0@4+zsTr3k)G}Hl2Szd1>B6bnF-z{sPFW{+Z zwTn4d}cUr&fdJ z=D}hKGlq*T!!+w}Y-+6MdV39Xu*ECC40&??N-!jj_2@}eP*O^FVNpf(R0rZ=BYBxX zB=(#!rOEQ5PjQgCrC}@H^SO`Z5no%=8RE=X>3peVUe7kB4e4-8|4I&KX!{+-fJU6M zXUV3`8VHsO)rL)0;WwHdfha`mH)lan88syvn!B_p>m(tVZm5cqa>uZujFMT z=Ew*yrhe3ju69>$p-@$5mWpQnn7`pyRmF8^L^OR#`(fr|Y-&7)=(~>$n?HVZdaT>; zAo%&wd>c71T&v5Oy_+%<)~)id?-?}LloHO2i6?yTz!px#5qY=hK*0px&6)y1y35Vm zpny=BQheayC?-|FdKjg=g?`%iB9?tpJ5qS;%nldpWf-(teY^+%{R6^zPF~*gj1g%y zHC%vZ!|NkUw5oyu-K5SlS?`XRoSw$$lU9yW=v4%DTk){*NcfZQy-P?85x~eSt#|Ce zqjV~*t+m>3)zQ|j+k#rTpL7vee*XMf!whJ1zSjf#yzAi{^T_Z}7&bZii1+1^w3HN* z+oHpZU_%2!B#loVv`=!|-<+sJR;Z<&V&Q>ThS#aA@YSDZr>Cb>ND-FMyW5pVvmq!K z4K3}-p8g{=HWo(-l-zWWEutr~8_BmtSlasV1xOx5L_|tLT#7k`g`q;87sosK8T<%q zqi#qRDK>Js$XZ%_f1xjAqlG-(Vq=8Sas|%0%?2n`q%zo2QFoz!kmQgWCipMCBAA5Z zxtSI(ERdL2X$3spdoe?7@R=ICANvEFjByaf_X zV$sM7L;U%<-@>-AJFju>d~L2`&+GL1RtA}i>(}HI51Z{i?`Nxi z(KEGbU-}aVSrb!})9dbEU)v(}^l`Q$sCmrMGL6UEdosLaToh@mB87uvsHJoe!uAi{ zs{-k32ZBmbFZP$DoSbmSA*y<6V#eOlL8u9=9_?e+i%sbttyU;Gs8KD&-+g>8)-f{Z zz#)b*U3woK+`u2WWwch;$H_IVqFEgjC88&$x@aE>6;2$hkKHzh`@In()B&gA>mh4~B;uPjth{il zs|NMjvj3?CVtD~E zPVjQkDN@SKnf~L45BA$>ZjR%!^w7K|`{%u=q1?Rb~p* zUGU`2WzWwv4-Cj>be+%%KDkr6xVS{Bdl?x~#nHbEJp<{E_oNfI zu&_`J(k67d*a1p`g{5T$fBR;3ef^wDF2)QaziM_gYS!wwS2!_W>h)UAT=0)PgYKV**}+Q`zWVUJ2{mqOSCqAHpb2M@U5Hc7#*5g_{X} zkwULcMfEM%;(oHxNDwR5FQ9nV)=xF|!eu0E*7R-SY< z0z8#dQ;MP}D)j}Q12)pNet`q2F(M`wb|Y>R#hN&$9wicS<s|F+I6_98zykqv((fbQu@?b=vt<0OkLK0(Ceit`KoM||QB zH7%8}L&un8;ndyW&kDFbEOSX?>kLKAc@5bl5oTTv!d|jOSNBM5qHux8b@n?BBtqU~ zuUhZo*Ph+Rz<%%jWAi!Zb##(a`K11RBqcDKxGj^0FrH8hJxYKmH^pES!bUXBA!KnC zGfqK>#=Eb3*^@#G>FJ^8@b0&+*W}X;fo-$Cr6x!`G}{|yVPIkM zQ-=0Q4;gNh1EULa^{kGIh1m^Z+&Ly8RWZ4dumf$J_}I9Yf+&=4knh61Up!CCwT=%$ia^WK{#BN{>A{?fW5%27~sxKFYK6=s%sK#>QXbrX8YI zBbq)CNvW z+22r8*sI(=26}JCT-&#!qvGFL60%R*J>-!Qb&kK_h&H6LjW?gb_y+fr#wPkmxgw|4 zpD8+F6Kspc5sPc1G|Wk6Ak*1<;4(Lb4^LPx$TIJPhpx) z`o!uM1QgUZgkezv5ed`k{$jYCp(ER3Gm8{UG!csCi**b#oX)yn!N-U|xp_%>N8xP| zS^0~P0)$}%12DO#C$qjvME3osgzZ<2jJgakZd|rp3bkAh+3}k#R?tk?7tt(qHc=A> z8z!H-QY_7pMXj%|d+b;AT!DgE@bhOoD;k;Cu^4mHu{b*i2X#_(iB6 zIxoH4QeWnG)~otJSUrkQ3tJ!7!x6>(Wc}_v1DAqjx%rCg_lqNODxx%j(82haz*fE5 zW)<>P1*Igl&UAJ@8H>-QdD&hfswk?e?1d$T26iXR-4Q9_^70Tq{Yj)zB8ocB+MIyR z>F2_=*0`}j&5EUdwkxjUe|?JIeOjY^9Z+4ZuA*8QhD|MnwXN7mk}R*%=hGdLCf-Dk zjGp%Mr`(#*$;P%4gfFG~rTfBRiTA=>#=>qYRw9HZIGsTIb*@B8WmzB(ssh6ienki;6Ilk2u!-Il8ZgA{aO{x@ z8WI9W6g%&0g>;r6t8{G31S;D#E6tGAU*caaE?leb!(HY+V%o&X;jA?cUl?qhX+B$Z zng56qip4x|l5H>GZMKXag$(*)zu|fM!8P9S57C>oNlYj>U$LdmIiW?BO z*~av}3Q!A8O(i*O*eiuBrIbbUI1pq+Xz# z{*|5L?P4F&jQsendt{UETCf#Rh7}}T(YCi2}#E!hSZ90(xDJK3! zjqomiXN~r~VVy!tsMlrV$|f)`xBwLthqS4^7wU4E(UW#`bj;Y@kesm_%YJva$>J*p z@tfI;7<~>E@fEhMP4T|HsIXfR2Ck7-y`yPoN)OkJZU@Lrg~rE*hlks8@JjsXb3o!p zs1@*g-t%@XfQ!-Mgr{Ql>?0>PH><}Tp7RiHb{&_L$@ZCke&lb?@S0i$Md^v9=~wle zh={mx0Cmh>P4y6Rt~*{Q`R*GDmgYh-q=jrADF-$TaOs66``GUB@D9W+h&!sJW732X z$^_DT8cfM)L2xT^r*f zppcP~anOvcam5SSU))!$zkm7GBXe8ky}#NeO!s!q3E(e>qvlIT(3U1Ikl-X0FQyZIwK^rx9_i*wMr^Z#We?7*2~#k_nxCOJt`3VldL1^MDg7)eic#ekSJF>3h0@Vyc(F4u zFbuD(VxX4+x&}5c@Fq#U>%alx%HF@kie9ipMO@QfB&6UK7k_ePl(7JrK()Z%`T&=s%r1hP+m<FxXTv_XH=$|ElP1C2!_! zW6dXGI*Q&V&LCjj$w&OGB6uEqYVw@ge2m8zSYo2kH* zCFQp8@)Fe0_vQ*CV2P~T+K79<1&mioNL#61Bd`4*xTn=TL^}?pPk+iEg@>a7K-vS= zyZ;@5UMBz!oj{Bo2H8-V_wUVj#`8LRdYm5bFP*lM%}?`1?vcw0*(NxjjGSap9SQWk z*g%$$cI9^Y(jC-}zJUR&ZOIcER!X}>?u`kl%vF~zKmka)H{P4LwW)uXN42#6*~Xbt zP-q8(ed15hsCfvG{BuUbPGyc~+!IdCWk^WXIS<)>3~(ax;7y4R;fP#Pl6O<=C4C=3 znbANO^sZ5YCOB~s`#S4|U+2MT?2qK3mdZDBjNdJ-ZK>K4v2JM#G8B4meQY)H<$3)W zk#TVrr0GRIY@6Bj3lW}eKgcX3!WNquc)VKv~prR6UwiM5x z2A+77yS?yfFLh*|nsnL>DJKul*~NmL8}G4;-ZpqC41n4Kz+E>HUQK1$(3^vW+Ni!b z`pabG`k@WLQOm98*h@j8^04*MM^0WITim{nHnH66+EFTsY-q&if+K-Nf7oL?t>^Zr zHELu#2M~~}D|ess9P$d6J#`<@+}O>BNp|=4EG;b!kCvNLy)Wj9KQ%Y#V4yb!bf}#0 zs%tZplzh#-;xto88<^~qR@2c@H2ui-5B(RoQvpn*GWy8eTu%1!Dj8Y1u7i`HuACkB zw;1m>S1sDQS<&cCWG-JuH5!W_PQL!2{#EFm0DMGepd=@$w)QTTIF({tc(@6Qyh5(U zs%Re>U3mIdXfiGTev%sw+e7zxT?r2-TiT|WyE&JTsB)ruUx3y(1 zYdS^Izn!1q1)M)E`sK=1H_uafXuaxUx!QT}yZbus{^7Ef9t(0jDuL;+U{eb}Iys4_ z5^U3qZ^goK=Vb0#RdJZrc)2pQ{Q2C?mAupOe3rm20-Wv?<_hkM#l9<#%h&j z{8bCu8Tt5Dt3(az_1F?Ou?#mXrzWhcmt-H<+ID8E?Lnyy-9+H5xTWXwCY58<;NlF3 zX`6mTMo0gc`5bKewdThr>{D#xuZ1Bb{9jmyC~h(L&F=mpQ@)4{VT|M8)SO<9FG@h^dqt<%wGe&% zw>NVJO#Jw#1bNAm?~Zuo z0hA)GaszmtMf+#KFoNQS)~%OgEb&lE8}RAAoqtXRr`kb~XyH-vgCfxId1?G75O*>F zlC_$+w>P?FVaLwvVhP@qoTp(1l70mY&Gvppo~2H}G;HifP&S?ig~(6 zFnC&+mhkjVX+W-eJYIAfaTwy7abA_m-u}xShkK8uC?~hey5AwnrRtp4^oiwDS>o2# zRubk-i@PVb`0;TECWq}Jud|-{X8(_-lkQi;**-m_ZpvzE9qB@zfVLSeH+d{N^pJi4 zir1WJ;t5F0sAy{TMv@9#0lh#8xByQX_IjYcxdXg(-NoY52COrX+#u1=b$AXsoR;Kv zkE-O}Ft)di-KuLNaCCut?yToF425M`YIkmH`np|~Gw4%n7%rd{wW1O2O6>?3c$EC= zw$-U)#6C6IJ8>tmn`|f*aH$&DmA&tnkn%i4GhZ}9E+AzfkZP3-e6)SUKh$Bk`}VMG zD<3Gm+_h_YXUy%z_U##Ew+mx$*VZIZWLVQ`3SQ8yYGOgc2j z>D>QQPP6L4MuEuS=m9}ht&+4S+%Ro!8=ij;RI|^YiShR0T6%Lt295v%HT^fSR9$iU zS9U%?5tlRv8`KZ@uW15qjuVPJPZr|YxdUse`jxvBUa8@papSs$1NxDv3&Pm3aN)vgBfgKVUA1iXVidhVV{^zLp(W$9} zAg)q>HY`9|bq=O^`uqDKNCDWeT~cHtAu%^iKh1;rv9IAREjczxZKCH3>Q|S|B|2`W zf8UF!>TQw^d~Ax3ohs6B0@;@;i!rLhx^)aNqOiDyv1WkaJda(Q*S38B{AvgeCt{2* z?)Wou)(f52r!~l`Jbg+7G{bRn0j<#X$^(UDR@B6ShyxPV;tTKWIAf6yb}iRtAezH% zLVy+2CVdXA_Pn%xqCHPmmM!>N%VqP?>c1}wB`Gk=ZaiCl$C`y03Op;23gH%Piq`A# z^AZl3>B3-r)i`6s@d^;zrI!L{>^M8|LYDWe7tb1ilFL;s4nW`VEsmI6~{N_d#vtzJttAv!ewV zu>Q?OMMOXhXtR~yu2@cJKf~0>MF*7|8acc=Bemjob+j5+p;w1c#l)Jy^wpK-Z%}QF zAtAO4hTX#774!}YEQsV^vv(pSMiJY`H5ZAi(Yf0P)%H*2jB0 zZV!^7&OSzJ5X zQdJtO>IiUyV+T4=m$4bV%xmFx|*jla9|>UlAIaj<}lh@do!z(7l&=Zwv$QR>XkeKW){ ze<|-~+d}<(5PTc{TTQH!`@^M1YP_26DDoA%G>50i0pQIQZbzSrDD{|ON@@K76~fKd z*t`PKR4~AL3H3QxSmSgodulNwxJaI65v^yIM1zJE^-%pA|7 z=EOYt#2OtnfEB!kdDqe4TK<*Tod6VcTHAWhM8yKw!QZS9K(e0y0W&z;fO}ZiN^szf zf&rPYY{uQZ;se8J0t}3d#v8pcNl8X#$D#~}`2r01!!<^PaVQrZH^ zv&h+e)DdbhTLsc&w}912J9q#5SVWcWwY|M9?X0PvtT=Di4S*1thMvpIhSIp?jQqwl>nzw}PAt^5}y%w?n5OW4ZCPtg25~5DYU3QA>r}mpU{q z=>lIs*RhXQi8g2F1|YF|dCI4kCxq+^Bx7WIgY;gV%qIP9o(VuB!z;jrHoiJuRk~^U zV)cFb4Nx7vx2^uG-%QW}C3=6QH3JM{rawg`C=toM&#|9Q_#vgP2sPk`kJlNGl+4Vf z6AfhZc40L>NRm?87+n|GRQsNB!$$c3ejZZ3aIx8(U->@j|CUM3Y;W%{k-qr(k`Z(H zE(?aY`B#I334L&%!*%Gjqu-OaGHZ&&{UhzsS_F0&vH7_7Yw$?A>;Fi% zG0ic2(M`@csp8fj0S+)HC#U_A%gob`RMybwLFZY-iqrB1C(r#UO89S5O$#_Bz-V{u zJPI}hL?5(rHcX*&EC&aNyM1#JC(Ts9?o3;ack-G}TZ5F0jA50P?9yx(;T*%?j`wF{ z*r(c*oj{1qxT^?dq^i6;I!gGax8A2OmNv3{lw3jSZQkthoo(yA>(fpGX5^Sl+Jaqc z+S76^HM*UFP5%@;I(_;$qvys30wqtv&I15+|G7H-jAhYDN$!Lke58CuVbeJ~yn`r1BCLv^oYt}k=4u3iL^n_$QM>aGUJ}L<;up10M;2fl31YdLG zh=XaDk53Dvpmd3tkj~0igVMWK);j!D=t0k16qC%iw6@*|eq~F+%shO8NM3~Tire~6 zyqc02WRZI&2sQui z`NVs>M18lj-2&3=A88}}dvAgDyLXo!AHQ*T@ic@7cp4!kA`lWxOifRK(?uQlXW8>; z6EK&Jng!c+5Ejm>t4jhmm<}*x{8LybvNbjx(R{D?u(|%oHvb2-&#KfqmO(p1whZ0Ff^om(o5;noMWr#Z_0e{!v+Tx zfW*(N%RI9RSXXpXAY=5rC7R{v_=opJt&V- z@@&4L3;DDOo+VinJxTcOX6g@W7C<$l2VpKCh&)pUDqRPrNchOM6W$a?Pwl(V zzK8opu#l$x@jDjn=oU$$R+-6{>i6V+qNrq1QDsa*q>1U0()e6LWsMLI9(N^yMKqLh_&#{i*PUkWZp>~24*P_cpMWb`M`mSZ z?1F7$1Ym^SZ1kA#$-RX&n^T8Ram34kIP(N-^HspS;Q*lL^UP(#!+KNHO@a)xAn)Zo zIFs`-=Ai9~<$(oi|F&Y2H&QjsUzDaa0z~eof$D|lze(z9yJUh485Bh^<&DQ-D>&(N z{JH*p%lD11Sy;^1a*-{>YsVp>JqJef@qN~FHOOi=*zNYGHi_@cZo+FCP+9Xbggk4X z@f&w5z!maQl2HxBsoV%qazlE_g`oI3v1_s3GT3MpABhjn<*DZ7q^h+{mP|GE4t%EZ z;&Kq2F+N{6Gl11;E<1Zpp!@r&h5$}4%Svcc(2j3EEOe<0-WHXZzQ0KAg9my_OI!9k zkQ8$S1L`NBnjHfLFtn(wr6J9HLlZBaslsJ4bZjSQptiYVdS=E6)ItEvjylmA?k^T( z<>mKO*xo|L0>horPfC?FjkQVEd;LFsM~6bVtJ8x*8bLKKmb?rv$26s3_4 zY45Y&`@i?o{d~u842FX`oU`{@&zkc$=aF=srD%^xzBf2qHzKU_K<}}dmhnx^@w+PD zK@*IyTC*{nD|QYr;Tb)!#IcdTN4z*{xsrS};I1b6I-?g_c~o&|+E7VBjkb@MBQ*4~ z1;pS6$p&0v-^Hpt(GolDzK6O;9r;BK#I+aPE;YD!FTc|lm&GLb@aEIn^|h;OE>%X^ zd6w}c882n!?!`~G+nqI8`8?w1CG?|9UfXVa-r3vP#Qtj#GcbUJ&usP7qr$(&POxnO z68>L%bX1Azx{(7af;-k8PTCh3RmHWpxBHRaa!5lI^YZY6BshToOY&bKV4et*);2J68 zJgVp~?nsqYU*huIob6xQSSLZd?eAADM5Z>bMPI1BYPixeB5Hb}8Dt%qnVXyXSLP{o z3nj*x&(YwOz*U77W?`{c?3}3qh4##b4?k@d#YZ8u!N$mMn37eeNx^4?*Sp^^!){jC3;_a z?z=x&e!EluyoBXb>xcVB=X5YzHYqgKb?w>Hx<_<$pY$tCd4)$ul?fVKHx30%&n!5i zGJ+a}8&7%Wn3c)-5~F@#kuhZ92U$m(TokL^*(<{r{{&!}1rp}R=c|0-48j=cZ0u>b zgwW4GH_^ihb8arKkWN-W-2pGXQZY4S{&n4WR7_G^&0kJp0tbyU;-f|kjAfaBReQHb zr>A=nSsehAl_USq99cW? zTwx&qHjqZbiau8eGjwWW>Ej2hSV12)lc4g;LUHj!qTcN{**LQ^@u{^q)vQkvKD@ha zNj03;CqG`mHG-x|%Dr>%9^KwDZDx&&X*?b2XE^Y#a&z?JS)`$7mh zZB@(qmgDZADxC~1H=*5{iow5QyT-N%ZhV8Mf5_SwBD2a1w2X1 z+K8>Ptr^`N4gkns9^-d0zEyW!WxW15thk~}f{zz&>fe$yCjyb61aYN{g*9 z;LTUpS&i`WWaiiIa!wE;BP5*7Jugni8_be9baZsi#{JK!Vc6rMHgX9dSC{g+3I}jk za4_6^cq_{A*-#LK4Gj+uuj;dW?tC^F?bixn=$}4Y2j0&>FnvzZ&N3~x3yNqXjDr0j z@Ii32px_3we)3hXT;s&I9g5FYGHej zg5nQ^_ma0`QUs&Mz;7Z-xVD`+-?XtS;MDsdK|5i1Xu3PwRd9R7^Xy9uWgH5F?vb

8gqY|JFraQPvK#Let5Z=)8jWfz>B= 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 aJ#3wwFm49w|Jj1iV%$|wmoG${y!>Cx={hg~ literal 0 HcmV?d00001 diff --git a/src/markdown/fig/2454d6a42886554d4a1309a12cfec89f.png b/src/markdown/fig/2454d6a42886554d4a1309a12cfec89f.png new file mode 100644 index 0000000000000000000000000000000000000000..5697cef594e07b61712419ac6a3e6bb3c0723a76 GIT binary patch literal 123702 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