sync nextclodu

This commit is contained in:
Amaury JOLY 2025-05-16 13:27:55 +02:00
commit 71296deb95
69 changed files with 5815 additions and 0 deletions

0
.nextcloudsync.log Normal file
View File

14
.sync-exclude.lst Normal file
View File

@ -0,0 +1,14 @@
]*.aux
]*.log
]*.toc
]*.out
]*.synctex.gz
]*.bbl
]*.blg
]*.fdb_latexmk
]*.fls
]*.nav
]*.snm
]*.vrb
]_build/
]build/

BIN
.sync_6b06af9d0893.db Normal file

Binary file not shown.

BIN
.sync_6b06af9d0893.db-wal Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
]*.log
]*.aux
]*.blg
]*.out
]*.el

View File

@ -0,0 +1,17 @@
{
"emeraldwalk.runonsave": {
"commands": [
{
"cmd": "pandoc -o ${fileDirname}/${fileBasenameNoExt}.pdf ${file}",
"match": "\\.t2t$",
}
]
},
"grammarly.selectors": [
{
"language": "plaintext",
"scheme": "file",
"pattern": "sujet-cifre.t2t"
}
]
}

View File

@ -0,0 +1,39 @@
#
# txt2tags et TeX makefile générique
#
# Outils
FORGE:=.
TXT2TAGS:=~/bin/txt2tags
###################################################################
# Par convention le source doit avoir le même nom que le répertoire
## nom du répertoire courant
## Mais ici c'est le dernier fichier t2t qui compte
MAINT2T:= $(notdir $(abspath $(shell ls -rt *.t2t | tail -1)))
MAIN:= $(patsubst %.t2t,%,${MAINT2T})
all: ${MAIN}.pdf
# NB : par défaut aucune sortie : faire make NODEBUG= sinon
NODEBUG= >/dev/null
########## Mise en Forme
%.tex: %.t2t %.bbl config.sujet.t2t sujet.tex
${TXT2TAGS} -T sujet.tex -t tex -o $@ $<
include ${FORGE}/Makefile.tex
%.bib.tex:%.bib getbib.t2t
@echo $*
${TXT2TAGS} -t tex -o $*.bib.tex getbib.t2t
%.bbl:%.bib.tex
pdflatex $<
rm $*.bib.pdf
bibtex $*.bib
mv $*.bib.bbl $@

View File

@ -0,0 +1,110 @@
#
# txt2tags et TeX makefile générique
# E.Godard -- 29/05/2001
# -- 22/08/2005
# -- 23/05/2007
# -- 20/08/2007
# -- 03/12/2009
# -- 09/09/2012
# Le fichier principal doit porter le même nom que le répertoire
# courant.
# make -> fichier postscript (sans màj bibliographie)
# make final -> force la màj des pages,etc par double compilation
LATEX := latex -file-line-error
PDFLATEX := pdflatex -file-line-error
ALLT2T = $(wildcard *.t2t)
T2TDEP = $(filter-out $(MAIN).t2t,$(ALLT2T)) # les autres sont des dépendances
ECRAN = ${MAIN}.pdf # pdf = présentation
PAPIER = ${MAIN}.x6.pdf # x6.pdf = à imprimer pour distribution/correction
FIG := $(wildcard *.fig)
PSTEX := $(FIG:.fig=.pstex)
PSTEX_T := $(FIG:.fig=.pstex_t)
FIGPDF := $(FIG:.fig=-fig.pdf)
FIGTEX := $(FIG:.fig=-fig.tex)
final:
touch ${MAIN}.force
make ${ECRAN}
sleep 1;touch ${MAIN}.force
make ${ECRAN}
make ${PAPIER}
# sleep 1;touch ${MAIN}.force
# make ${PAPIER}
$(MAIN).force:
touch $@
.PHONY: all final clean mrproper
debug.${TARGET}:
@ls -l $(TEMPLATEFILE) $(TARGETCONF) ${PARAMT2T}
#### Dépendances génériques latex
%.pdf: %.tex ${FIGPDF} ${FIGTEX}
${PDFLATEX} -jobname=$* $<
%.x6.pdf: %.pdf
pdfnup --nup 3x2 --outfile $@ $<
%.x2.pdf: %.pdf
pdfnup --nup 1x2 --outfile $@ $<
%-fig.pdf: %.fig
fig2dev -L pdftex -F $< $@
%-fig.tex: %.fig
fig2dev -L pdftex_t -F -p $*-fig.pdf $< $@
# Latex ne gère pas le svg
%.pdf: %.svg
inkscape -A $@ $<
# Obsolète ??
%.dvi: %.tex
${LATEX} -jobname=$* $<
%.ps: %.dvi
dvips $< -o
echo $@ >> $(CVSIGNORE)
%.x6.ps: %.handout.ps
# hack pour éliminer la dernière page (vide actuellement)
mv $< tmp.$<
psselect -p-_2 tmp.$< $<
rm tmp.$<
# paramètres d'après la doc beamer
psnup -6 -m15 -W128mm -H96mm $< > $@
%.pstex: %.fig
fig2dev -L pstex -F $< $@
%.pstex_t: %.fig
fig2dev -L pstex_t -F -p $*.pstex $< $@
%.gz: %
gzip $<
# Nettoyage
clean:
rm -vf *.log *.aux *.bbl *.blg *.ilg *.toc *.lof *.lot *.idx *.ind *.out *.nav *.snm ${MAIN}.force
mrproper: clean
rm -vf ${MAIN}.x6.ps ${MAIN}.ps ${MAIN}.pdf ${MAIN}.dvi $(PSTEX) $(PSTEX_T) ${MAIN}.tex
# Si il y a uniquement des dépendances locales
$(MAIN).tgz: $(ALLT2T) $(FIG) $(MAIN).pdf Makefile
tar zcf $@ $+
LOCALRULES=$(wildcard Makefile*.local)
include ${LOCALRULES}

View File

@ -0,0 +1,258 @@
@article{saito_optimistic_2005,
title = {Optimistic {Replication}},
volume = {37},
url = {https://inria.hal.science/hal-01248208},
doi = {10.1145/1057977.1057980},
abstract = {Data replication is a key technology in distributed systems that enables higher availability and performance. This article surveys optimistic replication algorithms. They allow replica contents to diverge in the short term to support concurrent work practices and tolerate failures in low-quality communication links. The importance of such techniques is increasing as collaboration through wide-area and mobile networks becomes popular.Optimistic replication deploys algorithms not seen in traditional “pessimistic” systems. Instead of synchronous replica coordination, an optimistic algorithm propagates changes in the background, discovers conflicts after they happen, and reaches agreement on the final contents incrementally.We explore the solution space for optimistic replication algorithms. This article identifies key challenges facing optimistic replication systems---ordering operations, detecting and resolving conflicts, propagating changes efficiently, and bounding replica divergence---and provides a comprehensive survey of techniques developed for addressing these challenges.},
language = {en},
number = {1},
urldate = {2023-06-09},
journal = {ACM Computing Surveys},
author = {Saito, Yasushi and Shapiro, Marc},
year = {2005},
pages = {42},
file = {Saito et Shapiro - 2005 - Optimistic Replication.pdf:/home/amaury/Zotero/storage/4WJX5IAN/Saito et Shapiro - 2005 - Optimistic Replication.pdf:application/pdf},
}
@article{singh_zeno_2009,
title = {Zeno: {Eventually} {Consistent} {Byzantine}-{Fault} {Tolerance}},
abstract = {Many distributed services are hosted at large, shared, geographically diverse data centers, and they use replication to achieve high availability despite the unreachability of an entire data center. Recent events show that non-crash faults occur in these services and may lead to long outages. While Byzantine-Fault Tolerance (BFT) could be used to withstand these faults, current BFT protocols can become unavailable if a small fraction of their replicas are unreachable. This is because existing BFT protocols favor strong safety guarantees (consistency) over liveness (availability).},
language = {en},
author = {Singh, Atul and Fonseca, Pedro and Kuznetsov, Petr and Rodrigues, Rodrigo and Maniatis, Petros},
year = {2009},
file = {Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:/home/amaury/Zotero/storage/K6J2UEBK/Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:application/pdf},
}
@inproceedings{shakarami_refresh_2019,
title = {Refresh {Instead} of {Revoke} {Enhances} {Safety} and {Availability}: {A} {Formal} {Analysis}},
volume = {LNCS-11559},
shorttitle = {Refresh {Instead} of {Revoke} {Enhances} {Safety} and {Availability}},
url = {https://inria.hal.science/hal-02384596},
doi = {10.1007/978-3-030-22479-0_16},
abstract = {Due to inherent delays and performance costs, the decision point in a distributed multi-authority Attribute-Based Access Control (ABAC) system is exposed to the risk of relying on outdated attribute values and policy; which is the safety and consistency problem. This paper formally characterizes three increasingly strong levels of consistency to restrict this exposure. Notably, we recognize the concept of refreshing attribute values rather than simply checking the revocation status, as in traditional approaches. Refresh replaces an older value with a newer one, while revoke simply invalidates the old value. Our lowest consistency level starts from the highest level in prior revocation-based work by Lee and Winslett (LW). Our two higher levels utilize the concept of request time which is absent in LW. For each of our levels we formally show that using refresh instead of revocation provides added safety and availability.},
language = {en},
urldate = {2023-06-09},
publisher = {Springer International Publishing},
author = {Shakarami, Mehrnoosh and Sandhu, Ravi},
month = jul,
year = {2019},
pages = {301},
file = {Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:/home/amaury/Zotero/storage/XQNWKF7H/Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:application/pdf},
}
@article{misra_axioms_1986,
title = {Axioms for memory access in asynchronous hardware systems},
volume = {8},
issn = {0164-0925, 1558-4593},
url = {https://dl.acm.org/doi/10.1145/5001.5007},
doi = {10.1145/5001.5007},
abstract = {The problem of concurrent accesses to registers by asynchronous components is considered. A set of axioms about the values in a register during concurrent accesses is proposed. It is shown that if these axioms are met by a register, then concurrent accesses to it may be viewed as nonconcurrent, thus making it possible to analyze asynchronous algorithms without elaborate timing analysis of operations. These axioms are shown, in a certain sense, to be the weakest. Motivation for this work came from analyzing low-level hardware components in a VLSI chip which concurrently accesses a flip-flop.},
language = {en},
number = {1},
urldate = {2023-06-08},
journal = {ACM Transactions on Programming Languages and Systems},
author = {Misra, J.},
month = jan,
year = {1986},
pages = {142--153},
file = {Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:/home/amaury/Zotero/storage/KZP2774N/Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:application/pdf},
}
@article{lamport_interprocess_1986,
title = {On interprocess communication},
volume = {1},
issn = {1432-0452},
url = {https://doi.org/10.1007/BF01786228},
doi = {10.1007/BF01786228},
abstract = {Interprocess communication is studied without assuming any lower-level communication primitives. Three classes of communication registers are considered, and several constructions are given for implementing one class of register with a weaker class. The formalism developed in Part I is used in proving the correctness of these constructions.},
language = {en},
number = {2},
urldate = {2023-06-08},
journal = {Distributed Computing},
author = {Lamport, Leslie},
month = jun,
year = {1986},
keywords = {Communication Network, Computer Hardware, Computer System, Operating System, System Organization},
pages = {86--101},
file = {Lamport - 1986 - On interprocess communication.pdf:/home/amaury/Zotero/storage/XV7AEARN/Lamport - 1986 - On interprocess communication.pdf:application/pdf},
}
@book{lipton_pram_1988,
title = {{PRAM}: {A} {Scalable} {Shared} {Memory}},
shorttitle = {{PRAM}},
language = {en},
publisher = {Princeton University, Department of Computer Science},
author = {Lipton, Richard J. and Sandberg, Jonathan S.},
year = {1988},
note = {Google-Books-ID: 962epwAACAAJ},
file = {Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:/home/amaury/Zotero/storage/3ZYT3WT4/Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:application/pdf},
}
@inproceedings{hutto_slow_1990,
title = {Slow memory: weakening consistency to enhance concurrency in distributed shared memories},
shorttitle = {Slow memory},
url = {https://www.computer.org/csdl/proceedings-article/icdcs/1990/00089297/12OmNvSKNPr},
doi = {10.1109/ICDCS.1990.89297},
abstract = {The use of weakly consistent memories in distributed shared memory systems to combat unacceptable network delay and to allow such systems to scale is proposed. Proposed memory correctness conditions are surveyed, and how they are related by a weakness hierarchy is demonstrated. Multiversion and messaging interpretations of memory are introduced as means of systematically exploring the space of possible memories. Slow memory is presented as a memory that allows the effects of writes to propagate slowly through the system, eliminating the need for costly consistency maintenance protocols that limit concurrency. Slow memory processes a valuable locality property and supports a reduction from traditional atomic memory. Thus slow memory is as expressive as atomic memory. This expressiveness is demonstrated by two exclusion algorithms and a solution to M.J. Fischer and A. Michael's (1982) dictionary problem on slow memory.},
language = {English},
urldate = {2023-06-06},
publisher = {IEEE Computer Society},
author = {Hutto, P. W. and Ahamad, M.},
month = jan,
year = {1990},
pages = {302,303,304,305,306,307,308,309--302,303,304,305,306,307,308,309},
file = {Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:/home/amaury/Téléchargements/Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:application/pdf},
}
@article{lamport_how_1979,
title = {How to {Make} a {Multiprocessor} {Computer} {That} {Correctly} {Executes} {Multiprocess} {Programs}},
volume = {C-28},
issn = {1557-9956},
doi = {10.1109/TC.1979.1675439},
abstract = {Many large sequential computers execute operations in a different order than is specified by the program. A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order. For a multiprocessor computer, such a correct execution by each processor does not guarantee the correct execution of the entire program. Additional conditions are given which do guarantee that a computer correctly executes multiprocess programs.},
number = {9},
journal = {IEEE Transactions on Computers},
author = {{Lamport}},
month = sep,
year = {1979},
note = {Conference Name: IEEE Transactions on Computers},
keywords = {Computer design, concurrent computing, hardware correctness, multiprocessing, parallel processing},
pages = {690--691},
file = {IEEE Xplore Abstract Record:/home/amaury/Zotero/storage/IVGSSPNE/1675439.html:text/html;Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:/home/amaury/Zotero/storage/GY8CWGUV/Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:application/pdf},
}
@article{mosberger_memory_1993,
title = {Memory consistency models},
volume = {27},
issn = {0163-5980},
url = {https://dl.acm.org/doi/10.1145/160551.160553},
doi = {10.1145/160551.160553},
abstract = {This paper discusses memory consistency models and their influence on software in the context of parallel machines. In the first part we review previous work on memory consistency models. The second part discusses the issues that arise due to weakening memory consistency. We are especially interested in the influence that weakened consistency models have on language, compiler, and runtime system design. We conclude that tighter interaction between those parts and the memory system might improve performance considerably.},
language = {en},
number = {1},
urldate = {2023-06-06},
journal = {ACM SIGOPS Operating Systems Review},
author = {Mosberger, David},
month = jan,
year = {1993},
pages = {18--26},
file = {Mosberger - 1993 - Memory consistency models.pdf:/home/amaury/Zotero/storage/VF2ZNK6A/Mosberger - 1993 - Memory consistency models.pdf:application/pdf},
}
@incollection{goos_causal_1995,
address = {Berlin, Heidelberg},
title = {From causal consistency to sequential consistency in shared memory systems},
volume = {1026},
isbn = {978-3-540-60692-5 978-3-540-49263-4},
url = {http://link.springer.com/10.1007/3-540-60692-0_48},
language = {en},
urldate = {2023-06-06},
booktitle = {Foundations of {Software} {Technology} and {Theoretical} {Computer} {Science}},
publisher = {Springer Berlin Heidelberg},
author = {Raynal, Michel and Schiper, André},
editor = {Goos, Gerhard and Hartmanis, Juris and Leeuwen, Jan and Thiagarajan, P. S.},
year = {1995},
doi = {10.1007/3-540-60692-0_48},
note = {Series Title: Lecture Notes in Computer Science},
pages = {180--194},
file = {Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:/home/amaury/Zotero/storage/B8UNWUSA/Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:application/pdf},
}
@phdthesis{kumar_fault-tolerant_2019,
type = {{PhD} {Thesis}},
title = {Fault-{Tolerant} {Distributed} {Services} in {Message}-{Passing} {Systems}},
school = {Texas A\&M University},
author = {Kumar, Saptaparni},
year = {2019},
file = {Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:/home/amaury/Zotero/storage/Q9XK77W9/Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:application/pdf;Snapshot:/home/amaury/Zotero/storage/7JB26RAJ/1.html:text/html},
}
@article{somasekaram_high-availability_2022,
title = {High-{Availability} {Clusters}: {A} {Taxonomy}, {Survey}, and {Future} {Directions}},
volume = {187},
issn = {01641212},
shorttitle = {High-{Availability} {Clusters}},
url = {http://arxiv.org/abs/2109.15139},
doi = {10.1016/j.jss.2021.111208},
abstract = {The delivery of key services in domains ranging from finance and manufacturing to healthcare and transportation is underpinned by a rapidly growing number of mission-critical enterprise applications. Ensuring the continuity of these complex applications requires the use of software-managed infrastructures called high-availability clusters (HACs). HACs employ sophisticated techniques to monitor the health of key enterprise application layers and of the resources they use, and to seamlessly restart or relocate application components after failures. In this paper, we first describe the manifold uses of HACs to protect essential layers of a critical application and present the architecture of high availability clusters. We then propose a taxonomy that covers all key aspects of HACs -- deployment patterns, application areas, types of cluster, topology, cluster management, failure detection and recovery, consistency and integrity, and data synchronisation; and we use this taxonomy to provide a comprehensive survey of the end-to-end software solutions available for the HAC deployment of enterprise applications. Finally, we discuss the limitations and challenges of existing HAC solutions, and we identify opportunities for future research in the area.},
urldate = {2023-06-06},
journal = {Journal of Systems and Software},
author = {Somasekaram, Premathas and Calinescu, Radu and Buyya, Rajkumar},
month = may,
year = {2022},
note = {arXiv:2109.15139 [cs, eess]},
keywords = {Computer Science - Distributed, Parallel, and Cluster Computing, Computer Science - Networking and Internet Architecture, Electrical Engineering and Systems Science - Systems and Control},
pages = {111208},
file = {arXiv.org Snapshot:/home/amaury/Zotero/storage/B4KCP9BG/2109.html:text/html;Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:/home/amaury/Zotero/storage/K3LQZLC8/Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:application/pdf},
}
@book{perrin_concurrence_2017,
title = {Concurrence et cohérence dans les systèmes répartis},
isbn = {978-1-78405-295-9},
abstract = {La société moderne est de plus en plus dominée par la société virtuelle, le nombre dinternautes dans le monde ayant dépassé les trois milliards en 2015. A la différence de leurs homologues séquentiels, les systèmes répartis sont beaucoup plus difficiles à concevoir, et sont donc sujets à de nombreux problèmes.La cohérence séquentielle fournit la même vue globale à tous les utilisateurs, mais le confort d\&\#39;utilisation qu\&\#39;elle apporte est trop coûteux, voire impossible, à mettre en oeuvre à grande échelle. Concurrence et cohérence dans les systèmes répartis examine les meilleures façons de spécifier les objets que lon peut tout de même implémenter dans ces systèmes.Cet ouvrage explore la zone grise des systèmes répartis et dresse une carte des critères de cohérence faible, identifiant plusieurs familles et démontrant comment elles peuvent sintégrer dans un langage de programmation.},
language = {fr},
publisher = {ISTE Group},
author = {Perrin, Matthieu},
month = sep,
year = {2017},
note = {Google-Books-ID: 6DRlDwAAQBAJ},
file = {Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:/home/amaury/Téléchargements/Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:application/pdf},
}
@article{van_der_linde_practical_2020,
title = {Practical client-side replication: weak consistency semantics for insecure settings},
volume = {13},
issn = {2150-8097},
shorttitle = {Practical client-side replication},
url = {https://dl.acm.org/doi/10.14778/3407790.3407847},
doi = {10.14778/3407790.3407847},
abstract = {Client-side replication and direct client-to-client synchronization can be used to create highly available, low-latency interactive applications. Causal consistency, the strongest available consistency model under network partitions, is an attractive consistency model for these applications.},
language = {en},
number = {12},
urldate = {2023-06-06},
journal = {Proceedings of the VLDB Endowment},
author = {Van Der Linde, Albert and Leitão, João and Preguiça, Nuno},
month = aug,
year = {2020},
pages = {2590--2605},
file = {Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:/home/amaury/Zotero/storage/5TJ3SA56/Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:application/pdf},
}
@article{decandia_dynamo_2007,
title = {Dynamo: {Amazon}s {Highly} {Available} {Key}-value {Store}},
abstract = {Reliability at massive scale is one of the biggest challenges we face at Amazon.com, one of the largest e-commerce operations in the world; even the slightest outage has significant financial consequences and impacts customer trust. The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world. At this scale, small and large components fail continuously and the way persistent state is managed in the face of these failures drives the reliability and scalability of the software systems.},
language = {en},
author = {DeCandia, Giuseppe and Hastorun, Deniz and Jampani, Madan and Kakulapati, Gunavardhan and Lakshman, Avinash and Pilchin, Alex and Sivasubramanian, Swaminathan and Vosshall, Peter and Vogels, Werner},
year = {2007},
file = {DeCandia et al. - Dynamo Amazons Highly Available Key-value Store.pdf:/home/amaury/Zotero/storage/KDHRPBGR/DeCandia et al. - Dynamo Amazons Highly Available Key-value Store.pdf:application/pdf},
}
@misc{misra_byzantine_2021,
title = {Byzantine {Fault} {Tolerant} {Causal} {Ordering}},
url = {http://arxiv.org/abs/2112.11337},
abstract = {Causal ordering in an asynchronous system has many applications in distributed computing, including in replicated databases and real-time collaborative software. Previous work in the area focused on ordering point-to-point messages in a fault-free setting, and on ordering broadcasts under various fault models. To the best of our knowledge, Byzantine faulttolerant causal ordering has not been attempted for point-topoint communication in an asynchronous setting. In this paper, we first show that existing algorithms for causal ordering of point-to-point communication fail under Byzantine faults. We then prove that it is impossible to causally order messages under point-to-point communication in an asynchronous system with one or more Byzantine failures. We then present two algorithms that can causally order messages under Byzantine failures, where the network provides an upper bound on the message transmission time. The proofs of correctness for these algorithms show that it is possible to achieve causal ordering for point-to-point communication under a stronger asynchrony model where the network provides an upper bound on message transmission time. We also give extensions of our two algorithms for Byzantine fault-tolerant causal ordering of multicasts.},
language = {en},
urldate = {2023-07-12},
publisher = {arXiv},
author = {Misra, Anshuman and Kshemkalyani, Ajay},
month = dec,
year = {2021},
note = {arXiv:2112.11337 [cs]},
keywords = {Computer Science - Distributed, Parallel, and Cluster Computing},
file = {Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:/home/amaury/Zotero/storage/P2R366US/Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:application/pdf},
}
@inproceedings{tseng_distributed_2019,
title = {Distributed {Causal} {Memory} in the {Presence} of {Byzantine} {Servers}},
doi = {10.1109/NCA.2019.8935059},
abstract = {We study distributed causal shared memory (or distributed read/write objects) in the client-server model over asynchronous message-passing networks in which some servers may suffer Byzantine failures. Since Ahamad et al. proposed causal memory in 1994, there have been abundant research on causal storage. Lately, there is a renewed interest in enforcing causal consistency in large-scale distributed storage systems (e.g., COPS, Eiger, Bolt-on). However, to the best of our knowledge, the fault-tolerance aspect of causal memory is not well studied, especially on the tight resilience bound. In our prior work, we showed that 2 f+1 servers is the tight bound to emulate crash-tolerant causal shared memory when up to f servers may crash. In this paper, we adopt a typical model considered in many prior works on Byzantine-tolerant storage algorithms and quorum systems. In the system, up to f servers may suffer Byzantine failures and any number of clients may crash. We constructively present an emulation algorithm for Byzantine causal memory using 3 f+1 servers. We also prove that 3 f+1 is necessary for tolerating up to f Byzantine servers. In other words, we show that 3 f+1 is a tight bound. For evaluation, we implement our algorithm in Golang and compare their performance with two state-of-the-art fault-tolerant algorithms that ensure atomicity in the Google Cloud Platform.},
booktitle = {2019 {IEEE} 18th {International} {Symposium} on {Network} {Computing} and {Applications} ({NCA})},
author = {Tseng, Lewis and Wang, Zezhi and Zhao, Yajie and Pan, Haochen},
month = sep,
year = {2019},
note = {ISSN: 2643-7929},
keywords = {asynchrony, Byzantine faults, causal memory, Computer crashes, Consensus protocol, distributed storage system, Emulation, evaluation, Fault tolerance, Fault tolerant systems, History, Servers, tight condition},
pages = {1--8},
file = {IEEE Xplore Abstract Record:/home/amaury/Zotero/storage/DDV34ULW/8935059.html:text/html},
}

View File

@ -0,0 +1,5 @@
_______________________________________________
Fsi mailing list
Fsi@liste.lis-lab.fr
https://mailman.lis-lab.fr/lists/listinfo/fsi

View File

@ -0,0 +1,98 @@
# Fdb version 4
["bibtex sujet-cifre"] 1703348836 "sujet-cifre.aux" "sujet-cifre.bbl" "sujet-cifre" 1703348837 2
"sujet-cifre.aux" 1703252674 2196 578250cc933fcbf3d403233ab65be64b ""
(generated)
"sujet-cifre.bbl"
"sujet-cifre.blg"
(rewritten before read)
["pdflatex"] 1703348835 "/home/amaury/Nextcloud/Thèse/Administration/cifre/_sujet-cifre.tex" "_sujet-cifre.pdf" "_sujet-cifre" 1703348837 0
"/etc/texmf/web2c/texmf.cnf" 1702042508 475 c0e671620eb5563b2130f56340a5fde8 ""
"/home/amaury/Nextcloud/Thèse/Administration/cifre/_sujet-cifre.tex" 1703348834 21411 ac3e290fd951eeb95f9d8be8941fb746 ""
"/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/tcrm1000.tfm" 1136768653 1536 e07581a4bb3136ece9eeb4c3ffab8233 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm" 1136768653 1328 c834bbb027764024c09d3d2bf908b5f0 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm" 1136768653 1324 c910af8c371558dc20f2d7822f66fe64 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1136768653 1512 f21f83efb36853c0b70002322c1ab3ad ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm" 1136768653 1520 eccf95517727cb11801f4f1aee3a21b4 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1136768653 1288 655e228510b4c2a1abe905c368440826 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr17.tfm" 1136768653 1292 296a67155bdbfc32aa9c636f21e91433 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr6.tfm" 1136768653 1300 b62933e007d01cfd073f79b963c01526 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr8.tfm" 1136768653 1292 21c1c5bfeaebccffdb478fd231a0997d ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1136768653 1124 6c73e740cf17375f03eec0ee63599741 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm" 1136768653 1116 933a60c408fc0a863a92debe84b2d294 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm" 1136768653 1120 8b7d695260f3cff42e636090a8002094 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmti10.tfm" 1136768653 1480 aa8e34af0eb6a2941b776984cf1dfdc4 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmtt10.tfm" 1136768653 768 1321e9409b4137d6fb428ac9dc956269 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/latex-fonts/lasy6.tfm" 1136768653 520 4889cce2180234b97cad636b6039c722 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb" 1248133631 34811 78b52f49e893bcba91bd7581cdc144c0 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb" 1248133631 32080 340ef9bf63678554ee606688e7b5339d ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb" 1248133631 32722 d7379af29a190c3f453aba36302ff5a9 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb" 1248133631 32362 179c33bbf43f19adbb3825bb4e36e57a ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb" 1248133631 37944 359e864bd06cde3b1cf57bb20757fb06 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb" 1248133631 31099 c85edf1dd5b9e826d67c9c7293b6786c ""
"/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
"/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 ""
"/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
"/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
"/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b ""
"/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
"/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1644112042 7237 bdd120a32c8fdb4b433cf9ca2e7cd98a ""
"/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
"/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
"/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
"/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1600895880 17859 4409f8f50cd365c68e684407e5350b1b ""
"/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
"/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty" 1578692523 15682 94f55b803e160cf7fb6e4d77d07cfe1d ""
"/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
"/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d ""
"/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/article.cls" 1667332637 20144 d5ecf0a5140c8d8d8b72cbe86e320eff ""
"/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1667332637 3052 30236f0cc243a8651b82240dfd2e8b9d ""
"/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1667332637 2462 8ce5f9a9c63002f2c1af03c262cf29af ""
"/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1667332637 8448 c33a4e1cb35cee9b33c2b21033b73e39 ""
"/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1663965824 19448 1e988b341dda20961a6b931bcde55519 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty" 1654720880 7233 e46ce9241d2b2ca2a78155475fdd557a ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1654720880 18387 8f900a490197ebaf93c02ae9476d4b09 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1654720880 8010 a8d949cbdbc5c983593827c9eec252e1 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty" 1654720880 2671 7e67d78d9b88c845599a85b2d41f2e39 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx" 1667332637 2885 9c645d672ae17285bba324998918efd8 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1654720880 4023 293ea1c16429fc0c4cf605f4da1791a9 ""
"/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1668456740 48272 52af74196dd55e6c486243beada2adcd ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1668456740 222727 cfc4e76008392378678e691ec73ef8f0 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1668456740 12947 2cb391007415dfa63f4c5ba1610afddb ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1668456740 14249 c27c0c7065e940126403e065c08683b6 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def" 1668456740 117125 a8ce97e3b03f76decc5ad7e8d4da3088 ""
"/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e ""
"/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 ""
"/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1673989714 30429 213676d4c7327a21d91ddaed900e7b81 ""
"/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
"/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 ""
"/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty" 1485124581 14857 82c76ebe8f06becf69ab309565b2a0cb ""
"/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
"/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1657483315 9714 ba3194bd52c8499b3f1e3eb91d409670 ""
"/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1681034085 39561 34c98e380bf7c7201ee6a7909aff625a ""
"/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc" 1636152094 2900 1537cc8184ad1792082cd229ecc269f4 ""
"/usr/share/texmf/fonts/type1/public/cm-super/sfrm1000.pfb" 1636152094 138258 6525c253f16cededa14c7fd0da7f67b2 ""
"/usr/share/texmf/web2c/texmf.cnf" 1681034085 39561 34c98e380bf7c7201ee6a7909aff625a ""
"/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1702459634 4623455 fa0568a71dd9a288d6c226ee477506c6 ""
"/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1702459746 7881417 4ad1cca5899ad0336eafc70d53f9d6c2 ""
"_sujet-cifre.aux" 1703348836 1130 e2e682d5d1e2592618502651edd65195 "pdflatex"
"_sujet-cifre.out" 1703348836 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex"
"_sujet-cifre.tex" 1703348834 21411 ac3e290fd951eeb95f9d8be8941fb746 ""
"_sujet-cifre.toc" 1703348836 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex"
"sujet-cifre.bbl" 1703348837 0 d41d8cd98f00b204e9800998ecf8427e "bibtex sujet-cifre"
(generated)
"_sujet-cifre.aux"
"_sujet-cifre.log"
"_sujet-cifre.out"
"_sujet-cifre.pdf"
"_sujet-cifre.toc"
(rewritten before read)

View File

@ -0,0 +1,497 @@
PWD /home/amaury/Nextcloud/Thèse/Administration/cifre
INPUT /etc/texmf/web2c/texmf.cnf
INPUT /usr/share/texmf/web2c/texmf.cnf
INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf
INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt
INPUT /home/amaury/Nextcloud/Thèse/Administration/cifre/_sujet-cifre.tex
OUTPUT _sujet-cifre.log
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/latex-fonts/lasy6.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT ./_sujet-cifre.aux
INPUT _sujet-cifre.aux
INPUT _sujet-cifre.aux
OUTPUT _sujet-cifre.aux
INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx
OUTPUT _sujet-cifre.out
OUTPUT _sujet-cifre.pdf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr17.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr8.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr6.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm
OUTPUT _sujet-cifre.toc
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm
INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmti10.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/tcrm1000.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmtt10.tfm
INPUT ./sujet-cifre.bbl
INPUT sujet-cifre.bbl
INPUT ./sujet-cifre.bbl
INPUT sujet-cifre.bbl
INPUT _sujet-cifre.aux
INPUT ./_sujet-cifre.out
INPUT ./_sujet-cifre.out
INPUT /usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb
INPUT /usr/share/texmf/fonts/type1/public/cm-super/sfrm1000.pfb

View File

@ -0,0 +1,403 @@
\documentclass{article}
\usepackage{graphicx}
\usepackage{paralist} % needed for compact lists
\usepackage[normalem]{ulem} % needed by strike
\usepackage[urlcolor=blue,colorlinks=true]{hyperref}
\title{Cohérences faibles pour le cloud zero-trust}
\author{SUJET DE RECHERCHE}
\begin{document}
\date{Emmanuel Godard (LIS) -- Corentin Travers (LIS)\\emmanuel.godard@lis-lab.fr et corentin.travers@lis-lab.fr}
\maketitle
\tableofcontents
\textbf{Mots-clefs:} Cloud, Sécurité par conception, Structures et algorithmes distribués, Cohérences faibles, Systèmes byzantins
\hypertarget{toc1}{}
\section*{Résumé}
Les applications collaboratives en temps réel sont de plus en plus utilisées
dans le cadre de la mise en place de systèmes de travail à distance. Ces
applications sont souvent basées sur des architectures client-serveur
centralisées, ce qui pose des problèmes de sécurité et de confidentialité. Les
données sont stockées sur un serveur centralisé, ce qui implique que les
utilisateurs doivent faire confiance à un tiers pour la gestion de leurs
données. De plus, ces architectures sont souvent vulnérables aux attaques par
déni de service, et ne permettent pas de garantir la confidentialité des
données.
Pour répondre à ces problématiques, nous proposons d'explorer des
solutions d'échange de l'information basées sur des architectures sans
tiers de confiances à travers des approches dites zero-trust et/ou
pair à pair. Ces solutions nous permettraient de proposer de solutions
à haut niveau de sécurité tout en garantissant une certaine résilience
du système. Pour conserver des performances fortes notamment en haute
disponibilité, les cohérences faibles sont fréquemment utilisées.
Dans ce contexte, nous proposons d'étudier les propriétés de cohérences faibles
appliquée aux problématiques liées au cloud. Dans un premier temps sera réalisé
un état de l'art sur les solutions byzantines sans primitives cryptographiques,
ainsi que sur les différentes implémentations existantes (WP1). Une deuxième
étape consistera à proposer des solutions plus efficaces mais utilisant des
primitives cryptographiques (WP2). Enfin, une dernière étape consistera en la
production d'une preuve de concept de solution de stockage clef/valeurs
utilisant les algorithmes retenus aux étapes précédentes (WP3).
\pagebreak
\hypertarget{toc2}{}
\section*{Problématique}
Depuis les travaux pionniers des années 80, par Lamport
\cite{LamportInterprocess1986} et Misra \cite{MisraAxioms1986} notamment, la
gestion de la réplication est au cœur des développements du numérique
en terme de haute disponibilité. L'une des problématiques
fondamentales est d'offrir aux développeurs d'applications une
abstraction de la mémoire répliquée qui soit à la fois simple à
utiliser et permette de mobiliser de manière souple et résistante
aux défaillances l'intégralité des ressources distribuées.
Cette voie de recherche a produit la notion de \textit{cohérence des données}
dont les nombreuses déclinaisons permette de s'adapter aux meilleurs
compromis d'usage et spécificités de chaque application.
La tendance actuelle autour de la mise en Cloud des applications
informatiques implique des modifications importantes dans les usages
et les modes de développement des nouvelles applications. Dans le cadre de nouvelles facilités d'usage, où la maintenance de l'infrastructure est déléguée à un prestataire, cela a conduit à une centralisation des
ressources. Cela ré-introduit des problématiques classiques en termes de
sécurité : nécessité de confiance/souveraineté ou bien
\textit{point central de défaillance} (SPOF).
De nouvelles approches dites \textit{sans-confiance} (zero-trust) ont donc
été proposées pour continuer à utiliser ces ressources cloud sans dépendre d'un prestataire particulier. Elles nécessitent à la fois des architectures multi-fournisseurs et des approches cryptographiques avancées.
\medskip
Du point de vue des programmeurs, il est souvent avantageux de
considérer de telles applications sur le nuage comme un seul système
centralisé. Cela nécessite que les structures de données utilisées
aient une propriété dite de \textit{cohérence forte}.
En conditions réelles, les serveurs peuvent avoir à supporter des
conditions de fonctionnement très difficiles. Il est bien connu, à la
fois des théoriciens et des praticiens, par le théorème CAP (Consistency, Availability, Partition tolerance) que des
compromis de fonctionnement sont souvent nécessaires. En particulier,
si c'est la cohérence forte qui est recherchée, le temps de calcul
est proportionnel à la latence de \textbf{tout} le réseau. Ce qui diminue en
pratique la disponibilité.
Si l'on se réfère au théorème CAP, en appliquant la cohérence forte il
est impossible de mettre en place un système hautement résilient, tout
en fournissant une application hautement disponible. Ces deux points
pouvant néanmoins se retrouver être essentiels dans la réalisation
dune application collaborative.
Lapproche pair-à-pair implique en effet une grande résistance du système
face à la panne. Les répliques sont emmenées à se déconnecter les uns des
autres et à avoir des différences de latences importantes et inégales.
La non-maitrise du poste et de lenvironnement dexécution de lapplication
nous pousse à imaginer des systèmes pouvant résister aux pires situations
possibles.
Dans le même temps, la nature de lapplication recherchée, qui est la
collaboration en temps réel, est liée à la question de la
haute disponibilité. Le but étant de permettre à des répliques différentes
daccéder à la même donnée partagée pour un travail en temps réel. Il ne
serait donc pas acceptable de proposer des temps de latences trop
conséquents entre deux modifications.
Etant donnée limpossibilité de satisfaire ces deux aspects nous nous
tournons vers létude des cohérences faibles, et notamment de la convergence.
On peut ainsi définir comme convergent les systèmes respectant la propriété suivante :
Si les répliques arrêtent de proposer des modifications, alors ces mêmes répliques doivent éventuellement atteindre un état cohérent.
La convergence (ou Eventual Consistency) est particulièrement étudiée. Ainsi
un certains nombres de structures de données distribuées proposant de respecter la convergence ont
vu le jour. Néanmoins à elles seules, celles-ci ne permettent pas de résoudre notre
problématique. En effet cette propriété n'offre pas de garantie sur les comportements durant
lexécution, là exactement où lincohérence au sein du système est permise
par la convergence. Or il ne suffit pas quun document converge à terme pour
en faire une application dédition collaborative satisfaisante. Mais il faut aussi
proposer des mécanismes pour résoudre les conflits, qui sont inévitables
dans l'approche collaborative. Cette résolution doit être réalisée de la manière la
plus optimale pour maximiser la préservation du sens donné à chaque modification
par la réplique qui la émise.
Ces questions ont bien entendu été très étudiées et les différentes solutions
proposées particulièrement adaptées dans notre contexte sont les
\textit{types des données répliqués} (ou Replicated Data Type).
Il en existe deux classes, les types de
données répliquées commutatives (CmRDT), dont les opérations donnent le
même résultat, peu importe leurs ordres dexécutions locales.
Et les structures de données convergentes (CvRDT), par exemple un système où
la donnée viserait à croitre continuellement convergeant ainsi vers une
structure maximale. Ces deux classes sont regroupées sous la dénomination
de type de données sans conflit (CRDT) et sont en réalité équivalentes lune
à lautre \cite{ShapiroConflictFree2011}.
\medskip
En outre, pour proposer des solutions véritablement sécurisées dans un
contexte zéro-trust, les conditions de fonctionnement les plus
difficiles à considérer sont lorsque des serveurs ou des clients
participants ont été compromis et ne respectent pas strictement le
protocole. Dans la littérature, cela s'appelle un fonctionnement
byzantin.
Etant données ces contraintes difficiles de disponibilité et de sécurité,
assurer une propriété
de cohérence forte peut être très coûteux en calcul et en temps. Les
exigences applicatives ne sont parfois pas compatibles avec de telles
conditions de fonctionnement. On peut alors considérer des données
avec des propriétés dites de \textit{cohérences faibles}.
\hypertarget{toc3}{}
\section*{État de l'art}
Le paysage des propriétés de \textit{cohérences faibles} est relativement
complexe. On peut distinguer trois grandes familles de cohérences
faibles \cite{Raynal18}, \cite{MPBook}:
\begin{compactitem}
\item la sérialisabilité
\item la cohérence causale
\item la cohérence éventuellement forte
\end{compactitem}
Si la cohérence éventuellement forte est en général recherchée pour
les applications collaboratives, elle est particulièrement
coûteuse. La sérialisabilité est plus simple à implémenter mais
produit parfois des transactions qui ne terminent pas. Ces situations
d'erreur doivent alors être gérées par l'application.
La cohérence
causale maintient l'ordre causal perçu par chaque processus et permet
en général d'implémenter des structures de données de plus haut niveau
de manière efficace.
Le lecteur pourra se référer à la cartographie assez exhaustive de
M. Perrin \cite{MPBook}.
\hypertarget{toc4}{}
\subsection*{Résultats Algorithmiques}
Les premiers travaux sur des outils collaboratifs sécurisés dans un
contexte de haute disponibilité
datent de 2009, cependant les recherches plus
systématiques concernant la sécurité des cohérences dites faibles sont
en fait très récentes.
En 2009, Sing \textit{et al.} propose le système Zeno qui est le premier
à proposer un algorithme byzantin qui privilégie la disponibilité sur
la cohérence (forte). Il offre une robustesse byzantine à la
cohérence éventuellement forte \cite{SinghZeno2009}. L'algorithme montre
de manière expérimentale de meilleures performances de disponibilité
que les algorithmes byzantins classiques.
Il existe actuellement essentiellement des études et solutions
partielles pour la cohérence causale \cite{TsengDistributed2019} et
\cite{VanDerLindePractical2020}. Tseng \textit{et al.} présentent des bornes
exactes de calculabilité dans un cadre byzantin d'un côté et donnent
un algorithme dont les performances sont comparées avec ceux de la
plateforme Google Compute. Van Der Linde \textit{et al.} présentent un
système pair-à-pair résistant aux attaques byzantines qui offre des
garanties de cohérence causale. Leur évaluation considère que malgré
une architecture pair-à-pair, les performances, notamment en termes de
latence sont très bonnes en comparaison avec une architecture
client-serveur classique.
En complément de ces algorithmes, Misra et Kshemkalyani ont montré
dans \cite{MisraByzantine2021} que dans un contexte asynchrone, il n'est
pas possible de proposer de la consistance causale même avec un seul
participant byzantin.
L'une des particularités de \cite{VanDerLindePractical2020} est de proposer
également une réflexion sur les défaillances byzantines dans un
contexte de cohérences faibles. Un système pair-à-pair tel que celui
de \cite{MisraByzantine2021} justifie de proposer de nouvelles attaques où
un participant exploite les informations des couches basses de
réplication pour créer des attaques au niveau applicatif.
L'application de critères de cohérences faibles ne suffit pas à
satisfaire le cadre de notre problématique. Le contexte du cloud pose
notamment de grande questions en termes de centralisation et de
gouvernance des données, avec un marché dominé par quelques acteurs
majeurs auxquels les utilisateurs doivent faire confiance de manière
aveugle. Posant ainsi de grande question sur la confidentialité et la
souveraineté de leurs informations.
C'est dans ce contexte qu'intégrer la notion d'un cloud zero-trust est
essentiel en ancrant nos réflexions dans une approche
pertinente d'un point de vue industriel et réglementaire. Le zero-trust comme défini
par le NIST dans la SP 800-207 \cite{RoseZero2020} est un modèle de sécurité qui ne fait
confiance à aucun tiers, et qui ne fait aucune hypothèse sur la
sécurité du réseau. Il permet ainsi de se préserver des comportements
malveillants émis par les intermédiaires diminuant la surface
d'attaque et limitant les comportements byzantins aux seuls clients
qui eux ont accès aux données.
Evidement ce dernier point est aussi à considérer. C'est pourquoi une
approche de sécurité centrée sur la donnée en plus des communications
peut aussi être envisagé en adoptant des approches dites "Data Centric".
C'est-à-dire de considérer la donnée elle-même comme un acteur vivant du
système en lui attribuant des processus de contrôle d'accès et de suivie
\cite{BayukDatacentric2009}. Ces questions représentent des enjeux grandissants et
sont considérés par les acteurs étatique et inter-étatique à l'image de l'OTAN
qui statut sur ces problématiques à travers les STANAG 4774 et 4778. Ces
questions sont largement étudiées depuis les années 2010 avec des travaux comme
\cite{GoyalAttributebased2006, MullerDistributed2009} qui définisse des solutions
pour mettre en place du chiffrement par attribut. Consistant à émettre des clés
de chiffrements dépendantes de droits, et donc de permettre de définir des
politiques de sécurité. Des travaux comme \cite{YanFlexible2017} propose des
solutions plus adaptées au cloud en se basant sur des architectures plus
flexibles et avec une plus grande granularité dans la définition des droits.
Néanmoins sur les aspects du zero-trust et de la sécurité centrée sur
la donnée, il n'existe pas encore de travaux académiques concernant
une formalisation consensuelle de ces notions. Et ces termes sont
soumis à de nombreuses interprétations. Il reste donc à spécifier
formellement ces différents termes pour comprendre quelles propriétés
sont à satisfaire pour réaliser de la cohérence faible dans un
contexte zero-trust.
\hypertarget{toc5}{}
\subsection*{Implémentations Existantes}
Des projets actuels tentent d'implémenter des protocoles de cohérences faibles pour la mise en place d'applications collaboratives en temps réel. Parmi ces projets on peut citer yjs \cite{Yjs2023} qui implémente le protocole YATA \cite{NicolaescuRealTime2016} et qui permet d'assurer une convergence forte (ou SEC d'après le référentiel de Perrin) à travers un système de type CRDT.
D'autres projets plus anciens tel qu'Etherpad utilise des solutions plus simples à base de résolution de conflit continue, assurant aussi une convergence forte mais réalisant des opérations algorithmiques plus complexes en termes de mémoire et de temps de calcul vis-à-vis des CRDTs \cite{AppJetEtherpad2011}.
\hypertarget{toc6}{}
\section*{Objectifs}
Les objectifs de cette thèse sont à la fois d'étudier les trois types
de cohérence faible en situation byzantine et de définir des
algorithmes byzantins efficaces pour pouvoir les implémenter. Puisque
la cohérence causale est déjà bien étudiée, ce sont les deux autres
cohérences qui seront les principaux axes de recherche de cette thèse.
La première étape (WP1) consistera à étudier des solutions byzantines
sans primitives cryptographiques, ou avec des primitives
raisonnablement coûteuses, c'est-à-dire notamment sans calcul
homomorphe. Une étude des implémentations existantes sera réalisée
pour notamment déterminer les garanties offertes par ces solutions
dans le vocabulaire des cohérences faibles.
La deuxième étape (WP2) consistera à produire des solutions plus efficaces
mais qui utilisent des primitives cryptographiques nécessitant des
primitives de partage de secret avancées et/ou de calcul homomorphe.
Une dernière étape (WP3) consistera en la production d'une preuve de concept
de solution de stockage \textit{clef/valeurs} utilisant les algorithmes
retenus aux étapes précédentes.
\hypertarget{toc7}{}
\section*{Méthodologie et Planning}
Une revue précise des modèles de calcul distribué pour lesquels des
solutions (principalement de consistance causale) ont été proposées
sera établie dans le but de déterminer l'ensemble des hypothèses,
théoriques et pratiques, de validité de ces solutions. En parallèle de
cetté étude, en relation avec l'entreprise Scille, une liste
d'attaques sur les architectures pair-à-pairs à cohérence faible sera
établie. L'accent sera mis sur la production de connaissances
nouvelles (nouvelles solutions par rapport à l'état de l'art mais
également nouvelles attaques).
Les algorithmes seront tout d'abord validé de manière formelle
avant de voir une preuve de concept développée.
Le WP1 se déroulera en 2024, le WP2 en 2025, et le WP3 en ZO26.
\hypertarget{toc8}{}
\section*{Modalités de Suivi et d'Échange}
Le doctorant participe aux réunions hebdomadaires de suivi de
l'entreprise Scille. Les partenaires se rencontreront tous les trois
mois pour un point d'avancée sur les travaux.
Il participera également aux réunions physiques de
l'entreprise tous les 6 mois.
\hypertarget{toc9}{}
\section*{Moyens Matériels}
Le doctorant sera hébergé au Laboratoire d'Informatique et des
Systèmes. Il bénéficiera de l'environnement scientifique et technique
d'un laboratoire UMR CNRS de 800 personnes, dont environ 400 personnels permanents .
Du côté de l'entreprise Scille, qui fonctionne en \textit{full remote}, le
doctorant aura accès à un banc d'essai cloud hébergé par
l'entreprise.
\hypertarget{toc10}{}
\section*{Retombées Attendues}
Du côté du laboratoire LIS, les retombées attendues sont les publications scientifiques suivantes :
\begin{compactitem}
\item état de l'art et synthèse concernant les consistances faibles byzantines
\item propositions et preuves de nouveaux algorithmes dans le contexte zéro-trust
\end{compactitem}
Du côté de l'entreprise Scille, il est attendu une mini-maquette de
synchronisation et collaboration cloud, une preuve de concept des
algorithmes sus-cités ainsi que du conseil et de l'expertise dans le
domaine du "développement scientifique" des produits développés par Scille, notamment \texttt{parsec}.
\hypertarget{toc11}{}
\section*{Équipe}
\hypertarget{toc12}{}
\subsection*{Équipe Algorithmique Distribuée (DALGO)}
L'équipe Algorithmique Distribuée (responsable Arnaud Labourel) fait
partie du Laboratoire d'Informatique et Systèmes (LIS CNRS UMR 7020).
du Laboratoire d'Informatique et Systèmes (LIS CNRS UMR 7020). C'est
une équipe de recherche reconnue au plus haut niveau international,
avec 8 membres permanents dont les centres d'intérêt vont des
algorithmes distribués fiables, de la confidentialité dans les
systèmes distribués aux réseaux de communication, ainsi qu'aux
algorithmes de graphes, aux agents mobiles et à l'IoT,
\hypertarget{toc13}{}
\subsection*{Encadrants}
\textbf{Emmanuel Godard} est professeur à l'Université Aix-Marseille. Ses
intérêts de recherche portent principalement sur la compréhension et
la maximisation de la décentralisation (en un sens large) dans les
systèmes distribués. Il est expert en algorithmique et calculabilité distribuées.
\textbf{Corentin Travers} est Maître de Conférences à l'Université
Aix-Marseille. Ses intérêts de recherche portent sur les
algorithmes distributés robustes et efficaces pour les systèmes à
mémoire partagée ou les réseaux distribués. Il est expert en algorithmique et complexité distribuées.
\textbf{Marcos Medrano} est ingénieur R\&D chez Scille. Diplômé d'un master de recherche en sciences
de l'informatique et mathématique appliqué. Il est en charge de la stratégie de développement
du produit Parsec et réalise le lien entre les ingénieurs et les intervenants académiques.
\hypertarget{toc14}{}
\subsection*{Choix du Candidat}
L'équipe DALGO est partie prenante du Master "Fiabilité et Sécurité
Informatique" de l'Université Aix-Marseille. Ce parcours de master est
labellisé \textit{SecNumEdu} par l'ANSSI. À l'automne 2022, le sujet
proposé avec l'entreprise Scille a été présenté à l'ensemble des
étudiants de master. Suite à cet appel à candidature, M. Amaury Joly a
été retenu pour un stage de recherche préliminaire de 6 mois sur le
thème des consistances faibles au laboratoire LIS.
Les notes de M. Amaury Joly sont très bonnes, il obtient une mention
bien au master. Il présente en outre un très bon double profil à la
fois théorique et technique, sa motivation pour les activités de
recherche en lien avec la sécurité du Cloud est très forte, il est le
candidat parfait pour un tel sujet de recherche.
{\footnotesize
\input{sujet-cifre.bbl}
}
% LaTeX2e code generated by txt2tags 3.4 (http://txt2tags.org)
% cmdline: txt2tags -t tex --toc sujet-cifre.t2t
\end{document}

View File

@ -0,0 +1,4 @@
%!template: sujet

View File

@ -0,0 +1,10 @@
%!postproc(tex): \\maketitle ""
%!postproc(tex): \\clearpage ""
''' \nocite{*}
''\bibliography{''%%OUTFILE(%F)''}''
''' \bibliographystyle{alpha}

View File

@ -0,0 +1,98 @@
\documentclass{article}
\usepackage[french]{babel}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{svg}
\begin{document}
\title{Laboratoire d'accueil : le LIS}
\date{}
\maketitle
\begin{abstract}
Ce document présente le laboratoire d'Informatique et Système (LIS) ainsi que l'équipe d'accueil.
\end{abstract}
\section{Présentation du LIS}
Le LIS Laboratoire dInformatique et Systèmes est une Unité Mixte de Recherche (UMR) sous tutelles du Centre National de la Recherche Scientifique (CNRS) rattachée à lInstitut des sciences informatiques et de leurs interactions (CNRS Sciences informatiques), de lUniversité dAix-Marseille (AMU) et de lUniversité de Toulon (UTLN). LEcole Centrale de Marseille est par ailleurs partenaire du LIS. Ses locaux sont situés sur les campus de Saint-Jérôme et de Luminy à Marseille et sur le campus de lUniversité de Toulon. Ce laboratoire regroupe les activités de recherche relevant principalement des sections 06 et 07 du CNRS et des sections 27 et 61 du CNU. Le LIS fédère plus de 375 membres dont 190 permanents chercheurs et enseignants chercheurs et 20 personnels ingénieurs, administratifs, techniques, sociaux et de santé (IT/IATSS).
Le LIS mène des recherches fondamentales et appliquées dans les domaines de linformatique, de lautomatique, du signal et de limage. Il est composé de 20 équipes de recherche et structuré en 4 pôles :
\begin{figure}[htbp]
\centering
% \includegraphics[scale=.4]{lis_pole.pdf}
\caption{Structuration en pôles du LIS}
\label{fig:pole}
\end{figure}
Les recherches menées au LIS trouvent généralement une finalisation dans des domaines applicatifs aussi divers que le transport, la santé, lénergie, lenvironnement, la défense, etc. Le LIS a ainsi un lien fort avec le monde socio-économique et une activité contractuelle importante. Ces nombreuses activités de valorisation lui permettent de simpliquer dans plusieurs pôles de compétitivités (pôle Mer, Pôle Solutions Communicantes Sécurisées SCS, Pôle Risques, pôle Eurobiomed et le pôle OPTITEC) et être membre de linstitut Carnot STAR.Une des caractéristiques notables du LIS se situe dans la multidisciplinarité des compétences quil regroupe. Cet éventail de compétences complémentaires permet à l'unité dêtre impliqué dans plusieurs actions nationales et locales structurantes telles que les instituts de convergence ILCB « Institut Langage, Communication et Cerveau » et Centuri « Centre Turing des Systèmes Vivants »), ainsi que dans linstitut « Archimède » de lInitiative dExcellence A*Midex regroupant les activités de recherche en Mathématique, Informatique et interactions sur les sites dAix-Marseille et Toulon.
Les chercheurs et enseignants-chercheurs de l'unité simpliquent dans différentes formations de lUniversité dAix-Marseille et de lUniversité de Toulon (IUT, Licences, Masters, école dingénieur Polytech Marseille, école dingénieur SeaTech Toulon) ainsi quà lEcole Centrale de Marseille (ECM) dans les spécialités informatique, génie électrique et automatique.
\subsection{Historique et géographie}
Le LIS est né le 1er janvier 2018 de la fusion de deux laboratoires :
\begin{itemize}
\item Le Laboratoire dinformatique fondamentale de Marseille (ex-UMR7279), le LIF, laboratoire qui regroupait en 2017 63 chercheurs et enseignants-chercheurs répartis dans 7 équipes de recherche, 7 personnels ITA / BIATSS, et une trentaine de membres non-permanents (doctorants et post-doctorants). Les thématiques du LIF relevaient toutes de linformatique et étaient centrées sur lalgorithmique, la combinatoire, les méthodes formelles, les modèles de calcul, la complexité, lapprentissage, les bases de données et la fouille de données, et le traitement automatique des langues; et
\item Le Laboratoire des sciences de linformation et des systèmes (ex-UMR7296), le LSIS, laboratoire qui regroupait en 2017 117 chercheurs et enseignants-chercheurs répartis dans 12 équipes de recherche, 18 personnels ITA / BIATSS, et environ 140 membres non-permanents (doctorants, post-doctorants et ingénieurs sous contrat). Les thématiques du LSIS étaient organisées selon trois axes : linformatique (logique, représentation des connaissances, contraintes, systèmes dinformation, fouille de données, recherche dinformation), lautomatique (analyse, commande, diagnostic-pronostic de systèmes complexes non-linéaires, discrets ou mécaniques, et de la productique) et limage (modélisation graphique et analyse et traitement dimages).
\end{itemize}
Le LIS développe ses activités sur trois sites officiels :
\begin{itemize}
\item
Marseille Sud : campus de Luminy ;
\item
Marseille Nord : campus de Saint-Jérôme ;
\item
Toulon : campus de la Garde.
\end{itemize}
\subsection{Production scientifique}
La production scientifique du laboratoire s'élève à 1728 publications sur la période 2016-2021 (source : rapport d'évaluation du laboratoire en prévision de la visite de l'HCERES (Haut Conseil de l'Évaluation de la Recherche et de l'Enseignement Supérieur).) Ces publications se répartissent comme suit :
\begin{figure}[htbp]\centering
\begin{tabular}{|l|c|c|c|c|c|c|c|}
\hline
\textbf{LIS} &\textbf{all} & \textbf{2016} & \textbf{2017} & \textbf{2018} & \textbf{2019} & \textbf{2020} & \textbf{2021} \\
\hline
\textbf{totalité}& 1728 & 289 & 291 & 295 & 294 & 288 & 271 \\
\textbf{Revues} & 687 & 107 & 119 & 105 & 104 & 126 & 126 \\
\textbf{Conférences avec actes} & 924 & 167 & 158 & 176 & 159 & 141 & 123 \\
\textbf{Directions douvrage} & 28 & 6 & 5 & 5 & 3 & 3 & 6 \\
\textbf{Chapitres douvrage} & 89 & 9 & 9 & 9 & 28 & 18 & 16 \\
\hline
\end{tabular}
\caption{Publications du LIS sur la période 2016-2021}
\end{figure}
\section{Équipe DAlgo}
Le doctorant développera son activité au sein de l'équipe DAlgo (Distributed Algorithms) située sur le campus de Luminy. Le concept de système distribué est fondamental tant pour les applications pratiques que pour les fondements théoriques de l'informatique. Un système distribué est un environnement où plusieurs processus travaillent ensemble pour atteindre un but commun ; dans un tel système, les différents processus ne peuvent communiquer directement qu'avec un nombre limité d'autres processus. Nous cherchons à déterminer quels sont les résultats globaux qui peuvent être obtenus dans ces systèmes où les actions des processus n'ont qu'un impact local. L'équipe DALGO s'intéresse à la puissance de calcul des différents modèles distribués et à la complexité des problèmes associés.
Les sujets d'intérêt principalement considérés par l'équipe sont :
\begin{itemize}
\item
Conception et analyse d'algorithmes distribués
\item
Systèmes d'agents mobiles
\item
Systèmes à mémoire partagée et tolérance aux pannes
\item
Modélisation de réseaux dynamiques
\item
Systèmes embarqués et programmation synchrone
\end{itemize}
L'équipe de se compose de 8 permanents (1 directeur de recherche CNRS, 5 maîtres de conférences et 2 professeures d'université) et de 4 non permanents (3 doctorants et un post-doctorant). Son responsable actuel est \href{mailto://arnaud.labourel@lis-lab.fr}{Arnaud Labourel}.
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

View File

@ -0,0 +1,194 @@
\newcommand{\etalchar}[1]{$^{#1}$}
\begin{thebibliography}{VDLLP20}
\bibitem[App11]{AppJetEtherpad2011}
AppJet.
\newblock Etherpad and {{EasySync Technical Manual}}.
\newblock
https://raw.githubusercontent.com/ether/etherpad-lite/master/doc/easysync/easysync-full-description.pdf,
2011.
\bibitem[Bay09]{BayukDatacentric2009}
Jennifer Bayuk.
\newblock Data-centric security.
\newblock {\em Computer Fraud \& Security}, 2009(3):7--11, March 2009.
\bibitem[BGYZ14]{BurckhardtReplicated2014}
Sebastian Burckhardt, Alexey Gotsman, Hongseok Yang, and Marek Zawirski.
\newblock Replicated data types: Specification, verification, optimality.
\newblock In {\em Proceedings of the 41st {{ACM SIGPLAN-SIGACT Symposium}} on
{{Principles}} of {{Programming Languages}}}, pages 271--284, {San Diego
California USA}, January 2014. {ACM}.
\bibitem[DHJ{\etalchar{+}}07]{DeCandiaDynamo2007}
Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati,
Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall,
and Werner Vogels.
\newblock Dynamo: amazon's highly available key-value store.
\newblock In Thomas~C. Bressoud and M.~Frans Kaashoek, editors, {\em
Proceedings of the 21st {ACM} Symposium on Operating Systems Principles
({SOSP})}, pages 205--220. {ACM}, 2007.
\bibitem[GPSW06]{GoyalAttributebased2006}
Vipul Goyal, Omkant Pandey, Amit Sahai, and Brent Waters.
\newblock Attribute-based encryption for fine-grained access control of
encrypted data.
\newblock In {\em Proceedings of the 13th {{ACM}} Conference on {{Computer}}
and Communications Security}, pages 89--98. {ACM}, October 2006.
\bibitem[HA90]{HuttoSlow1990}
P.~W. Hutto and M.~Ahamad.
\newblock Slow memory: Weakening consistency to enhance concurrency in
distributed shared memories.
\newblock In {\em Proceedings.,10th {{International Conference}} on
{{Distributed Computing Systems}}}, pages 302--309. {IEEE Computer Society},
January 1990.
\bibitem[KB17]{KleppmannConflictFree2017}
Martin Kleppmann and Alastair~R. Beresford.
\newblock A {{Conflict-Free Replicated JSON Datatype}}.
\newblock {\em IEEE Transactions on Parallel and Distributed Systems},
28(10):2733--2746, October 2017.
\bibitem[Kum19]{KumarFaultTolerant2019}
Saptaparni Kumar.
\newblock {\em Fault-{{Tolerant Distributed Services}} in {{Message-Passing
Systems}}}.
\newblock PhD thesis, Texas A\&M University, 2019.
\bibitem[{Lam}79]{LamportHow1979}
{Lamport}.
\newblock How to {{Make}} a {{Multiprocessor Computer That Correctly Executes
Multiprocess Programs}}.
\newblock {\em IEEE Transactions on Computers}, C-28(9):690--691, September
1979.
\bibitem[Lam86]{LamportInterprocess1986}
Leslie Lamport.
\newblock On interprocess communication.
\newblock {\em Distributed Computing}, 1(2):86--101, June 1986.
\bibitem[LS88]{LiptonPRAM1988}
Richard~J. Lipton and Jonathan~S. Sandberg.
\newblock {{PRAM}}: {{A Scalable Shared Memory}}.
\newblock Technical report, Princeton University, Department of Computer
Science, 1988.
\bibitem[Mis86]{MisraAxioms1986}
J.~Misra.
\newblock Axioms for memory access in asynchronous hardware systems.
\newblock {\em ACM Transactions on Programming Languages and Systems},
8(1):142--153, January 1986.
\bibitem[MK23]{MisraByzantine2021}
Anshuman Misra and Ajay~D. Kshemkalyani.
\newblock Byzantine fault-tolerant causal ordering.
\newblock In {\em 24th International Conference on Distributed Computing and
Networking, ({ICDCN})}, pages 100--109. {ACM}, 2023.
\bibitem[MKE09]{MullerDistributed2009}
Sascha M{\"u}ller, Stefan Katzenbeisser, and Claudia Eckert.
\newblock Distributed {{Attribute-Based Encryption}}.
\newblock In Pil~Joong Lee and Jung~Hee Cheon, editors, {\em Information
{{Security}} and {{Cryptology}} {\textendash} {{ICISC}} 2008}, volume 5461,
pages 20--36. {Springer Berlin Heidelberg}, {Berlin, Heidelberg}, 2009.
\bibitem[Mos93]{MosbergerMemory1993}
David Mosberger.
\newblock Memory consistency models.
\newblock {\em ACM SIGOPS Operating Systems Review}, 27(1):18--26, January
1993.
\bibitem[NJDK16]{NicolaescuRealTime2016}
Petru Nicolaescu, Kevin Jahns, Michael Derntl, and Ralf Klamma.
\newblock Near {{Real-Time Peer-to-Peer Shared Editing}} on {{Extensible Data
Types}}.
\newblock In {\em Proceedings of the 19th {{International Conference}} on
{{Supporting Group Work}}}, pages 39--49. {ACM}, November 2016.
\bibitem[Per17]{MPBook}
Matthieu Perrin.
\newblock {\em {Concurrence et coh{\'e}rence dans les syst{\`e}mes
r{\'e}partis}}.
\newblock {ISTE Group}, September 2017.
\bibitem[Ray18]{Raynal18}
Michel Raynal.
\newblock {\em Fault-{{Tolerant Message-Passing Distributed Systems}}: {{An
Algorithmic Approach}}}.
\newblock {Springer}, September 2018.
\bibitem[RBMC20]{RoseZero2020}
Scott Rose, Oliver Borchert, Stu Mitchell, and Sean Connelly.
\newblock Zero {{Trust Architecture}}.
\newblock Technical report, {National Institute of Standards and Technology},
August 2020.
\bibitem[RS95]{RaynalCausal1995}
Michel Raynal and Andr{\'e} Schiper.
\newblock From causal consistency to sequential consistency in shared memory
systems.
\newblock In Gerhard Goos, Juris Hartmanis, Jan Leeuwen, and P.~S. Thiagarajan,
editors, {\em Foundations of {{Software Technology}} and {{Theoretical
Computer Science}}}, volume 1026, pages 180--194. {Springer Berlin
Heidelberg}, {Berlin, Heidelberg}, 1995.
\bibitem[SCB22]{SomasekaramHighAvailability2022}
Premathas Somasekaram, Radu Calinescu, and Rajkumar Buyya.
\newblock High-{{Availability Clusters}}: {{A Taxonomy}}, {{Survey}}, and
{{Future Directions}}.
\newblock {\em Journal of Systems and Software}, 187:111208, May 2022.
\bibitem[SFK{\etalchar{+}}09]{SinghZeno2009}
Atul Singh, Pedro Fonseca, Petr Kuznetsov, Rodrigo Rodrigues, and Petros
Maniatis.
\newblock Zeno: Eventually consistent byzantine-fault tolerance.
\newblock In Jennifer Rexford and Emin~G{\"{u}}n Sirer, editors, {\em
Proceedings of the 6th {USENIX} Symposium on Networked Systems Design and
Implementation ({NSDI})}, pages 169--184. {USENIX} Association, 2009.
\bibitem[SPBZ11]{ShapiroConflictFree2011}
Marc Shapiro, Nuno Pregui{\c c}a, Carlos Baquero, and Marek Zawirski.
\newblock Conflict-{{Free Replicated Data Types}}.
\newblock In {\em Stabilization, {{Safety}}, and {{Security}} of {{Distributed
Systems}}}, volume 6976, pages 386--400. {Springer Berlin Heidelberg},
{Berlin, Heidelberg}, 2011.
\bibitem[SS05]{SaitoOptimistic2005}
Yasushi Saito and Marc Shapiro.
\newblock Optimistic {{Replication}}.
\newblock {\em ACM Computing Surveys}, 37(1):42, 2005.
\bibitem[SS19]{ShakaramiRefresh2019}
Mehrnoosh Shakarami and Ravi Sandhu.
\newblock Refresh {{Instead}} of {{Revoke Enhances Safety}} and
{{Availability}}: {{A Formal Analysis}}.
\newblock In {\em 33th {{IFIP Annual Conference}} on {{Data}} and
{{Applications Security}} and {{Privacy}} ({{DBSec}})}, volume LNCS-11559,
page 301. {Springer International Publishing}, July 2019.
\bibitem[TWZP19]{TsengDistributed2019}
Lewis Tseng, Zezhi Wang, Yajie Zhao, and Haochen Pan.
\newblock Distributed {{Causal Memory}} in the {{Presence}} of {{Byzantine
Servers}}.
\newblock In {\em {{IEEE}} 18th {{International Symposium}} on {{Network
Computing}} and {{Applications}} ({{NCA}})}, pages 1--8, September 2019.
\bibitem[VDLLP20]{VanDerLindePractical2020}
Albert Van Der~Linde, Jo{\~a}o Leit{\~a}o, and Nuno Pregui{\c c}a.
\newblock Practical client-side replication: Weak consistency semantics for
insecure settings.
\newblock {\em Proceedings of the VLDB Endowment}, 13(12):2590--2605, August
2020.
\bibitem[Yjs23]{Yjs2023}
Yjs/yjs: Shared data types for building collaborative software.
\newblock https://github.com/yjs/yjs, December 2023.
\bibitem[YLWV17]{YanFlexible2017}
Zheng Yan, Xueyun Li, Mingjun Wang, and Athanasios~V. Vasilakos.
\newblock Flexible {{Data Access Control Based}} on {{Trust}} and
{{Reputation}} in {{Cloud Computing}}.
\newblock {\em IEEE Transactions on Cloud Computing}, 5(3):485--498, July 2017.
\end{thebibliography}

View File

@ -0,0 +1,462 @@
@misc{AppJetEtherpad2011,
title = {Etherpad and {{EasySync Technical Manual}}},
author = {AppJet},
year = {2011},
urldate = {2023-12-10},
howpublished = {https://raw.githubusercontent.com/ether/etherpad-lite/master/doc/easysync/easysync-full-description.pdf},
file = {/home/amaury/Zotero/storage/F5SV2JTZ/easysync-full-description.pdf}
}
@article{BayukDatacentric2009,
title = {Data-Centric Security},
author = {Bayuk, Jennifer},
year = {2009},
month = mar,
journal = {Computer Fraud \& Security},
volume = {2009},
number = {3},
pages = {7--11},
issn = {1361-3723},
doi = {10.1016/S1361-3723(09)70032-6},
urldate = {2023-12-08},
abstract = {The authoritative control objectives for access to data have always been something along the lines of: ``Confirm that user access rights to systems and data are in line with defined and documented business needs, and that job requirements are attached to user identities{\ldots}. Ensure that critical and confidential information is withheld from those who should not have access to it.''1},
file = {/home/amaury/Zotero/storage/2YRZBICQ/Bayuk - 2009 - Data-centric security.pdf;/home/amaury/Zotero/storage/KC3F5F86/S1361372309700326.html}
}
@inproceedings{BurckhardtReplicated2014,
title = {Replicated Data Types: Specification, Verification, Optimality},
shorttitle = {Replicated Data Types},
booktitle = {Proceedings of the 41st {{ACM SIGPLAN-SIGACT Symposium}} on {{Principles}} of {{Programming Languages}}},
author = {Burckhardt, Sebastian and Gotsman, Alexey and Yang, Hongseok and Zawirski, Marek},
year = {2014},
month = jan,
pages = {271--284},
publisher = {{ACM}},
address = {{San Diego California USA}},
doi = {10.1145/2535838.2535848},
urldate = {2023-11-17},
abstract = {Geographically distributed systems often rely on replicated eventually consistent data stores to achieve availability and performance. To resolve conflicting updates at different replicas, researchers and practitioners have proposed specialized consistency protocols, called replicated data types, that implement objects such as registers, counters, sets or lists. Reasoning about replicated data types has however not been on par with comparable work on abstract data types and concurrent data types, lacking specifications, correctness proofs, and optimality results.},
isbn = {978-1-4503-2544-8},
langid = {english},
file = {/home/amaury/Zotero/storage/KQNF7XLE/Burckhardt et al. - 2014 - Replicated data types specification, verification.pdf}
}
@inproceedings{DeCandiaDynamo2007,
author = {Giuseppe DeCandia and
Deniz Hastorun and
Madan Jampani and
Gunavardhan Kakulapati and
Avinash Lakshman and
Alex Pilchin and
Swaminathan Sivasubramanian and
Peter Vosshall and
Werner Vogels},
editor = {Thomas C. Bressoud and
M. Frans Kaashoek},
title = {Dynamo: amazon's highly available key-value store},
booktitle = {Proceedings of the 21st {ACM} Symposium on Operating Systems Principles
({SOSP})},
pages = {205--220},
publisher = {{ACM}},
year = {2007},
url = {https://doi.org/10.1145/1294261.1294281},
doi = {10.1145/1294261.1294281},
timestamp = {Wed, 14 Nov 2018 10:55:11 +0100},
biburl = {https://dblp.org/rec/conf/sosp/DeCandiaHJKLPSVV07.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{GoyalAttributebased2006,
title = {Attribute-Based Encryption for Fine-Grained Access Control of Encrypted Data},
booktitle = {Proceedings of the 13th {{ACM}} Conference on {{Computer}} and Communications Security},
author = {Goyal, Vipul and Pandey, Omkant and Sahai, Amit and Waters, Brent},
year = {2006},
month = oct,
pages = {89--98},
publisher = {{ACM}},
doi = {10.1145/1180405.1180418},
urldate = {2023-12-08},
abstract = {As more sensitive data is shared and stored by third-party sites on the Internet, there will be a need to encrypt data stored at these sites. One drawback of encrypting data, is that it can be selectively shared only at a coarse-grained level (i.e., giving another party your private key). We develop a new cryptosystem for fine-grained sharing of encrypted data that we call Key-Policy Attribute-Based Encryption (KP-ABE). In our cryptosystem, ciphertexts are labeled with sets of attributes and private keys are associated with access structures that control which ciphertexts a user is able to decrypt. We demonstrate the applicability of our construction to sharing of audit-log information and broadcast encryption. Our construction supports delegation of private keys which subsumes Hierarchical Identity-Based Encryption (HIBE).},
isbn = {978-1-59593-518-2},
langid = {english},
file = {/home/amaury/Zotero/storage/Z9NEMU4F/Goyal et al. - 2006 - Attribute-based encryption for fine-grained access.pdf}
}
@inproceedings{HuttoSlow1990,
title = {Slow Memory: Weakening Consistency to Enhance Concurrency in Distributed Shared Memories},
shorttitle = {Slow Memory},
booktitle = {Proceedings.,10th {{International Conference}} on {{Distributed Computing Systems}}},
author = {Hutto, P. W. and Ahamad, M.},
year = {1990},
month = jan,
pages = {302--309},
publisher = {{IEEE Computer Society}},
doi = {10.1109/ICDCS.1990.89297},
urldate = {2023-06-06},
abstract = {The use of weakly consistent memories in distributed shared memory systems to combat unacceptable network delay and to allow such systems to scale is proposed. Proposed memory correctness conditions are surveyed, and how they are related by a weakness hierarchy is demonstrated. Multiversion and messaging interpretations of memory are introduced as means of systematically exploring the space of possible memories. Slow memory is presented as a memory that allows the effects of writes to propagate slowly through the system, eliminating the need for costly consistency maintenance protocols that limit concurrency. Slow memory processes a valuable locality property and supports a reduction from traditional atomic memory. Thus slow memory is as expressive as atomic memory. This expressiveness is demonstrated by two exclusion algorithms and a solution to M.J. Fischer and A. Michael's (1982) dictionary problem on slow memory.},
langid = {english},
file = {/home/amaury/Téléchargements/Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf}
}
@article{KleppmannConflictFree2017,
title = {A {{Conflict-Free Replicated JSON Datatype}}},
author = {Kleppmann, Martin and Beresford, Alastair R.},
year = {2017},
month = oct,
journal = {IEEE Transactions on Parallel and Distributed Systems},
volume = {28},
number = {10},
eprint = {1608.03960},
primaryclass = {cs},
pages = {2733--2746},
issn = {1045-9219},
doi = {10.1109/TPDS.2017.2697382},
urldate = {2023-12-10},
abstract = {Many applications model their data in a general-purpose storage format such as JSON. This data structure is modified by the application as a result of user input. Such modifications are well understood if performed sequentially on a single copy of the data, but if the data is replicated and modified concurrently on multiple devices, it is unclear what the semantics should be. In this paper we present an algorithm and formal semantics for a JSON data structure that automatically resolves concurrent modifications such that no updates are lost, and such that all replicas converge towards the same state (a conflict-free replicated datatype or CRDT). It supports arbitrarily nested list and map types, which can be modified by insertion, deletion and assignment. The algorithm performs all merging client-side and does not depend on ordering guarantees from the network, making it suitable for deployment on mobile devices with poor network connectivity, in peer-to-peer networks, and in messaging systems with end-to-end encryption.},
archiveprefix = {arxiv},
langid = {english},
keywords = {Computer Science - Databases,{Computer Science - Distributed, Parallel, and Cluster Computing}},
file = {/home/amaury/Zotero/storage/BQVG57MU/Kleppmann et Beresford - 2017 - A Conflict-Free Replicated JSON Datatype.pdf}
}
@phdthesis{KumarFaultTolerant2019,
title = {Fault-{{Tolerant Distributed Services}} in {{Message-Passing Systems}}},
author = {Kumar, Saptaparni},
year = {2019},
school = {Texas A\&M University},
file = {/home/amaury/Zotero/storage/Q9XK77W9/Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf;/home/amaury/Zotero/storage/7JB26RAJ/1.html}
}
@article{LamportHow1979,
title = {How to {{Make}} a {{Multiprocessor Computer That Correctly Executes Multiprocess Programs}}},
author = {{Lamport}},
year = {1979},
month = sep,
journal = {IEEE Transactions on Computers},
volume = {C-28},
number = {9},
pages = {690--691},
issn = {1557-9956},
doi = {10.1109/TC.1979.1675439},
abstract = {Many large sequential computers execute operations in a different order than is specified by the program. A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order. For a multiprocessor computer, such a correct execution by each processor does not guarantee the correct execution of the entire program. Additional conditions are given which do guarantee that a computer correctly executes multiprocess programs.},
keywords = {Computer design,concurrent computing,hardware correctness,multiprocessing,parallel processing},
file = {/home/amaury/Zotero/storage/GY8CWGUV/Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf;/home/amaury/Zotero/storage/IVGSSPNE/1675439.html}
}
@article{LamportInterprocess1986,
title = {On Interprocess Communication},
author = {Lamport, Leslie},
year = {1986},
month = jun,
journal = {Distributed Computing},
volume = {1},
number = {2},
pages = {86--101},
issn = {1432-0452},
doi = {10.1007/BF01786228},
urldate = {2023-06-08},
abstract = {Interprocess communication is studied without assuming any lower-level communication primitives. Three classes of communication registers are considered, and several constructions are given for implementing one class of register with a weaker class. The formalism developed in Part I is used in proving the correctness of these constructions.},
langid = {english},
keywords = {Communication Network,Computer Hardware,Computer System,Operating System,System Organization},
file = {/home/amaury/Zotero/storage/XV7AEARN/Lamport - 1986 - On interprocess communication.pdf}
}
@TechReport{LiptonPRAM1988,
author = {Lipton, Richard J. and Sandberg, Jonathan S.},
title = {{{PRAM}}: {{A Scalable Shared Memory}}},
institution = {Princeton University, Department of Computer Science},
year = 1988,
key = {TR-180-88 }}
@article{MisraAxioms1986,
title = {Axioms for Memory Access in Asynchronous Hardware Systems},
author = {Misra, J.},
year = {1986},
month = jan,
journal = {ACM Transactions on Programming Languages and Systems},
volume = {8},
number = {1},
pages = {142--153},
issn = {0164-0925, 1558-4593},
doi = {10.1145/5001.5007},
urldate = {2023-06-08},
abstract = {The problem of concurrent accesses to registers by asynchronous components is considered. A set of axioms about the values in a register during concurrent accesses is proposed. It is shown that if these axioms are met by a register, then concurrent accesses to it may be viewed as nonconcurrent, thus making it possible to analyze asynchronous algorithms without elaborate timing analysis of operations. These axioms are shown, in a certain sense, to be the weakest. Motivation for this work came from analyzing low-level hardware components in a VLSI chip which concurrently accesses a flip-flop.},
langid = {english},
file = {/home/amaury/Zotero/storage/KZP2774N/Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf}
}
@inproceedings{MisraByzantine2021,
author = {Anshuman Misra and
Ajay D. Kshemkalyani},
title = {Byzantine Fault-Tolerant Causal Ordering},
booktitle = {24th International Conference on Distributed Computing and Networking,
({ICDCN})},
pages = {100--109},
publisher = {{ACM}},
year = {2023},
url = {https://doi.org/10.1145/3571306.3571395},
doi = {10.1145/3571306.3571395},
timestamp = {Sun, 15 Jan 2023 18:32:09 +0100},
biburl = {https://dblp.org/rec/conf/icdcn/MisraK23.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{MosbergerMemory1993,
title = {Memory Consistency Models},
author = {Mosberger, David},
year = {1993},
month = jan,
journal = {ACM SIGOPS Operating Systems Review},
volume = {27},
number = {1},
pages = {18--26},
issn = {0163-5980},
doi = {10.1145/160551.160553},
urldate = {2023-06-06},
abstract = {This paper discusses memory consistency models and their influence on software in the context of parallel machines. In the first part we review previous work on memory consistency models. The second part discusses the issues that arise due to weakening memory consistency. We are especially interested in the influence that weakened consistency models have on language, compiler, and runtime system design. We conclude that tighter interaction between those parts and the memory system might improve performance considerably.},
langid = {english},
file = {/home/amaury/Zotero/storage/VF2ZNK6A/Mosberger - 1993 - Memory consistency models.pdf}
}
@book{MPBook,
title = {{Concurrence et coh{\'e}rence dans les syst{\`e}mes r{\'e}partis}},
author = {Perrin, Matthieu},
year = {2017},
month = sep,
publisher = {{ISTE Group}},
abstract = {La soci{\'e}t{\'e} moderne est de plus en plus domin{\'e}e par la soci{\'e}t{\'e} virtuelle, le nombre d'internautes dans le monde ayant d{\'e}pass{\'e} les trois milliards en 2015. A la diff{\'e}rence de leurs homologues s{\'e}quentiels, les syst{\`e}mes r{\'e}partis sont beaucoup plus difficiles {\`a} concevoir, et sont donc sujets {\`a} de nombreux probl{\`e}mes.La coh{\'e}rence s{\'e}quentielle fournit la m{\^e}me vue globale {\`a} tous les utilisateurs, mais le confort d\&\#39;utilisation qu\&\#39;elle apporte est trop co{\^u}teux, voire impossible, {\`a} mettre en oeuvre {\`a} grande {\'e}chelle.~Concurrence et coh{\'e}rence dans les syst{\`e}mes r{\'e}partis~examine les meilleures fa{\c c}ons de sp{\'e}cifier les objets que l'on peut tout de m{\^e}me impl{\'e}menter dans ces syst{\`e}mes.Cet ouvrage explore la zone grise des syst{\`e}mes r{\'e}partis et dresse une carte des crit{\`e}res de coh{\'e}rence faible, identifiant plusieurs familles et d{\'e}montrant comment elles peuvent s'int{\'e}grer dans un langage de programmation.},
googlebooks = {6DRlDwAAQBAJ},
isbn = {978-1-78405-295-9},
langid = {french},
file = {/home/amaury/Téléchargements/Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf}
}
@incollection{MullerDistributed2009,
title = {Distributed {{Attribute-Based Encryption}}},
booktitle = {Information {{Security}} and {{Cryptology}} {\textendash} {{ICISC}} 2008},
author = {M{\"u}ller, Sascha and Katzenbeisser, Stefan and Eckert, Claudia},
editor = {Lee, Pil Joong and Cheon, Jung Hee},
year = {2009},
volume = {5461},
pages = {20--36},
publisher = {{Springer Berlin Heidelberg}},
address = {{Berlin, Heidelberg}},
doi = {10.1007/978-3-642-00730-9_2},
urldate = {2023-12-08},
abstract = {Ciphertext-Policy Attribute-Based Encryption (CP-ABE) allows to encrypt data under an access policy, specified as a logical combination of attributes. Such ciphertexts can be decrypted by anyone with a set of attributes that fits the policy. In this paper, we introduce the concept of Distributed Attribute-Based Encryption (DABE), where an arbitrary number of parties can be present to maintain attributes and their corresponding secret keys. This is in stark contrast to the classic CP-ABE schemes, where all secret keys are distributed by one central trusted party. We provide the first construction of a DABE scheme; the construction is very efficient, as it requires only a constant number of pairing operations during encryption and decryption.},
isbn = {978-3-642-00729-3 978-3-642-00730-9},
langid = {english},
file = {/home/amaury/Zotero/storage/CWKWPE9S/Müller et al. - 2009 - Distributed Attribute-Based Encryption.pdf}
}
@inproceedings{NicolaescuRealTime2016,
title = {Near {{Real-Time Peer-to-Peer Shared Editing}} on {{Extensible Data Types}}},
booktitle = {Proceedings of the 19th {{International Conference}} on {{Supporting Group Work}}},
author = {Nicolaescu, Petru and Jahns, Kevin and Derntl, Michael and Klamma, Ralf},
year = {2016},
month = nov,
pages = {39--49},
publisher = {{ACM}},
doi = {10.1145/2957276.2957310},
urldate = {2023-12-01},
isbn = {978-1-4503-4276-6},
langid = {english},
file = {/home/amaury/Zotero/storage/SV3MSLKD/Nicolaescu et al. - 2016 - Near Real-Time Peer-to-Peer Shared Editing on Exte.pdf}
}
@book{Raynal18,
title = {Fault-{{Tolerant Message-Passing Distributed Systems}}: {{An Algorithmic Approach}}},
shorttitle = {Fault-{{Tolerant Message-Passing Distributed Systems}}},
author = {Raynal, Michel},
year = {2018},
month = sep,
publisher = {{Springer}},
abstract = {This book presents the most important fault-tolerant distributed programming abstractions and their associated distributed algorithms, in particular in terms of reliable communication and agreement, which lie at the heart of nearly all distributed applications. These programming abstractions, distributed objects or services, allow software designers and programmers to cope with asynchrony and the most important types of failures such as process crashes, message losses, and malicious behaviors of computing entities, widely known under the term "Byzantine fault-tolerance". The author introduces these notions in an incremental manner, starting from a clear specification, followed by algorithms which are first described intuitively and then proved correct. The book also presents impossibility results in classic distributed computing models, along with strategies, mainly failure detectors and randomization, that allow us to enrich these models. In this sense, the book constitutes an introduction to the science of distributed computing, with applications in all domains of distributed systems, such as cloud computing and blockchains. Each chapter comes with exercises and bibliographic notes to help the reader approach, understand, and master the fascinating field of fault-tolerant distributed computing.},
googlebooks = {J6BtDwAAQBAJ},
isbn = {978-3-319-94141-7},
langid = {english},
keywords = {Computers / Computer Science,Computers / Information Technology,Computers / Networking / General,Technology \& Engineering / Telecommunications}
}
@incollection{RaynalCausal1995,
title = {From Causal Consistency to Sequential Consistency in Shared Memory Systems},
booktitle = {Foundations of {{Software Technology}} and {{Theoretical Computer Science}}},
author = {Raynal, Michel and Schiper, Andr{\'e}},
editor = {Goos, Gerhard and Hartmanis, Juris and Leeuwen, Jan and Thiagarajan, P. S.},
year = {1995},
volume = {1026},
pages = {180--194},
publisher = {{Springer Berlin Heidelberg}},
address = {{Berlin, Heidelberg}},
doi = {10.1007/3-540-60692-0_48},
urldate = {2023-06-06},
isbn = {978-3-540-60692-5 978-3-540-49263-4},
langid = {english},
file = {/home/amaury/Zotero/storage/B8UNWUSA/Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf}
}
@techreport{RoseZero2020,
title = {Zero {{Trust Architecture}}},
author = {Rose, Scott and Borchert, Oliver and Mitchell, Stu and Connelly, Sean},
year = {2020},
month = aug,
institution = {{National Institute of Standards and Technology}},
doi = {10.6028/NIST.SP.800-207},
urldate = {2023-12-08},
abstract = {Zero trust (ZT) is the term for an evolving set of cybersecurity paradigms that move defenses from static, network-based perimeters to focus on users, assets, and resources. A zero trust architecture (ZTA) uses zero trust principles to plan industrial and enterprise infrastructure and workflows. Zero trust assumes there is no implicit trust granted to assets or user accounts based solely on their physical or network location (i.e., local area networks versus the internet) or based on asset ownership (enterprise or personally owned). Authentication and authorization (both subject and device) are discrete functions performed before a session to an enterprise resource is established. Zero trust is a response to enterprise network trends that include remote users, bring your own device (BYOD), and cloud-based assets that are not located within an enterpriseowned network boundary. Zero trust focuses on protecting resources (assets, services, workflows, network accounts, etc.), not network segments, as the network location is no longer seen as the prime component to the security posture of the resource. This document contains an abstract definition of zero trust architecture (ZTA) and gives general deployment models and use cases where zero trust could improve an enterprise's overall information technology security posture.},
langid = {english},
file = {/home/amaury/Zotero/storage/6PRUAJZ3/Rose et al. - 2020 - Zero Trust Architecture.pdf}
}
@article{SaitoOptimistic2005,
title = {Optimistic {{Replication}}},
author = {Saito, Yasushi and Shapiro, Marc},
year = {2005},
journal = {ACM Computing Surveys},
volume = {37},
number = {1},
pages = {42},
doi = {10.1145/1057977.1057980},
urldate = {2023-06-09},
abstract = {Data replication is a key technology in distributed systems that enables higher availability and performance. This article surveys optimistic replication algorithms. They allow replica contents to diverge in the short term to support concurrent work practices and tolerate failures in low-quality communication links. The importance of such techniques is increasing as collaboration through wide-area and mobile networks becomes popular.Optimistic replication deploys algorithms not seen in traditional ``pessimistic'' systems. Instead of synchronous replica coordination, an optimistic algorithm propagates changes in the background, discovers conflicts after they happen, and reaches agreement on the final contents incrementally.We explore the solution space for optimistic replication algorithms. This article identifies key challenges facing optimistic replication systems---ordering operations, detecting and resolving conflicts, propagating changes efficiently, and bounding replica divergence---and provides a comprehensive survey of techniques developed for addressing these challenges.},
langid = {english},
file = {/home/amaury/Zotero/storage/4WJX5IAN/Saito et Shapiro - 2005 - Optimistic Replication.pdf}
}
@inproceedings{ShakaramiRefresh2019,
title = {Refresh {{Instead}} of {{Revoke Enhances Safety}} and {{Availability}}: {{A Formal Analysis}}},
shorttitle = {Refresh {{Instead}} of {{Revoke Enhances Safety}} and {{Availability}}},
booktitle = {33th {{IFIP Annual Conference}} on {{Data}} and {{Applications Security}} and {{Privacy}} ({{DBSec}})},
author = {Shakarami, Mehrnoosh and Sandhu, Ravi},
year = {2019},
month = jul,
volume = {LNCS-11559},
pages = {301},
publisher = {{Springer International Publishing}},
doi = {10.1007/978-3-030-22479-0_16},
urldate = {2023-06-09},
abstract = {Due to inherent delays and performance costs, the decision point in a distributed multi-authority Attribute-Based Access Control (ABAC) system is exposed to the risk of relying on outdated attribute values and policy; which is the safety and consistency problem. This paper formally characterizes three increasingly strong levels of consistency to restrict this exposure. Notably, we recognize the concept of refreshing attribute values rather than simply checking the revocation status, as in traditional approaches. Refresh replaces an older value with a newer one, while revoke simply invalidates the old value. Our lowest consistency level starts from the highest level in prior revocation-based work by Lee and Winslett (LW). Our two higher levels utilize the concept of request time which is absent in LW. For each of our levels we formally show that using refresh instead of revocation provides added safety and availability.},
langid = {english},
file = {/home/amaury/Zotero/storage/XQNWKF7H/Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf}
}
@incollection{ShapiroConflictFree2011,
title = {Conflict-{{Free Replicated Data Types}}},
booktitle = {Stabilization, {{Safety}}, and {{Security}} of {{Distributed Systems}}},
author = {Shapiro, Marc and Pregui{\c c}a, Nuno and Baquero, Carlos and Zawirski, Marek},
year = {2011},
volume = {6976},
pages = {386--400},
publisher = {{Springer Berlin Heidelberg}},
address = {{Berlin, Heidelberg}},
doi = {10.1007/978-3-642-24550-3_29},
urldate = {2023-12-08},
abstract = {Replicating data under Eventual Consistency (EC) allows any replica to accept updates without remote synchronisation. This ensures performance and scalability in large-scale distributed systems (e.g., clouds). However, published EC approaches are ad-hoc and error-prone. Under a formal Strong Eventual Consistency (SEC) model, we study sufficient conditions for convergence. A data type that satisfies these conditions is called a Conflict-free Replicated Data Type (CRDT). Replicas of any CRDT are guaranteed to converge in a self-stabilising manner, despite any number of failures. This paper formalises two popular approaches (state- and operation-based) and their relevant sufficient conditions. We study a number of useful CRDTs, such as sets with clean semantics, supporting both add and remove operations, and consider in depth the more complex Graph data type. CRDT types can be composed to develop large-scale distributed applications, and have interesting theoretical properties.},
isbn = {978-3-642-24549-7 978-3-642-24550-3},
langid = {english},
file = {/home/amaury/Zotero/storage/QK99TF5K/Shapiro et al. - 2011 - Conflict-Free Replicated Data Types.pdf}
}
@inproceedings{SinghZeno2009,
author = {Atul Singh and
Pedro Fonseca and
Petr Kuznetsov and
Rodrigo Rodrigues and
Petros Maniatis},
editor = {Jennifer Rexford and
Emin G{\"{u}}n Sirer},
title = {Zeno: Eventually Consistent Byzantine-Fault Tolerance},
booktitle = {Proceedings of the 6th {USENIX} Symposium on Networked Systems Design
and Implementation ({NSDI})},
pages = {169--184},
publisher = {{USENIX} Association},
year = {2009},
url = {http://www.usenix.org/events/nsdi09/tech/full\_papers/singh/singh.pdf},
timestamp = {Thu, 12 Nov 2020 16:34:18 +0100},
biburl = {https://dblp.org/rec/conf/nsdi/SinghFKRM09.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{SomasekaramHighAvailability2022,
title = {High-{{Availability Clusters}}: {{A Taxonomy}}, {{Survey}}, and {{Future Directions}}},
shorttitle = {High-{{Availability Clusters}}},
author = {Somasekaram, Premathas and Calinescu, Radu and Buyya, Rajkumar},
year = {2022},
month = may,
journal = {Journal of Systems and Software},
volume = {187},
eprint = {2109.15139},
primaryclass = {cs, eess},
pages = {111208},
issn = {01641212},
doi = {10.1016/j.jss.2021.111208},
urldate = {2023-06-06},
abstract = {The delivery of key services in domains ranging from finance and manufacturing to healthcare and transportation is underpinned by a rapidly growing number of mission-critical enterprise applications. Ensuring the continuity of these complex applications requires the use of software-managed infrastructures called high-availability clusters (HACs). HACs employ sophisticated techniques to monitor the health of key enterprise application layers and of the resources they use, and to seamlessly restart or relocate application components after failures. In this paper, we first describe the manifold uses of HACs to protect essential layers of a critical application and present the architecture of high availability clusters. We then propose a taxonomy that covers all key aspects of HACs -- deployment patterns, application areas, types of cluster, topology, cluster management, failure detection and recovery, consistency and integrity, and data synchronisation; and we use this taxonomy to provide a comprehensive survey of the end-to-end software solutions available for the HAC deployment of enterprise applications. Finally, we discuss the limitations and challenges of existing HAC solutions, and we identify opportunities for future research in the area.},
archiveprefix = {arxiv},
keywords = {{Computer Science - Distributed, Parallel, and Cluster Computing},Computer Science - Networking and Internet Architecture,Electrical Engineering and Systems Science - Systems and Control},
file = {/home/amaury/Zotero/storage/K3LQZLC8/Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf;/home/amaury/Zotero/storage/B4KCP9BG/2109.html}
}
@inproceedings{TsengDistributed2019,
title = {Distributed {{Causal Memory}} in the {{Presence}} of {{Byzantine Servers}}},
booktitle = {{{IEEE}} 18th {{International Symposium}} on {{Network Computing}} and {{Applications}} ({{NCA}})},
author = {Tseng, Lewis and Wang, Zezhi and Zhao, Yajie and Pan, Haochen},
year = {2019},
month = sep,
pages = {1--8},
issn = {2643-7929},
doi = {10.1109/NCA.2019.8935059},
abstract = {We study distributed causal shared memory (or distributed read/write objects) in the client-server model over asynchronous message-passing networks in which some servers may suffer Byzantine failures. Since Ahamad et al. proposed causal memory in 1994, there have been abundant research on causal storage. Lately, there is a renewed interest in enforcing causal consistency in large-scale distributed storage systems (e.g., COPS, Eiger, Bolt-on). However, to the best of our knowledge, the fault-tolerance aspect of causal memory is not well studied, especially on the tight resilience bound. In our prior work, we showed that 2 f+1 servers is the tight bound to emulate crash-tolerant causal shared memory when up to f servers may crash. In this paper, we adopt a typical model considered in many prior works on Byzantine-tolerant storage algorithms and quorum systems. In the system, up to f servers may suffer Byzantine failures and any number of clients may crash. We constructively present an emulation algorithm for Byzantine causal memory using 3 f+1 servers. We also prove that 3 f+1 is necessary for tolerating up to f Byzantine servers. In other words, we show that 3 f+1 is a tight bound. For evaluation, we implement our algorithm in Golang and compare their performance with two state-of-the-art fault-tolerant algorithms that ensure atomicity in the Google Cloud Platform.},
keywords = {asynchrony,Byzantine faults,causal memory,Computer crashes,Consensus protocol,distributed storage system,Emulation,evaluation,Fault tolerance,Fault tolerant systems,History,Servers,tight condition},
file = {/home/amaury/Zotero/storage/DDV34ULW/8935059.html}
}
@article{VanDerLindePractical2020,
title = {Practical Client-Side Replication: Weak Consistency Semantics for Insecure Settings},
shorttitle = {Practical Client-Side Replication},
author = {Van Der Linde, Albert and Leit{\~a}o, Jo{\~a}o and Pregui{\c c}a, Nuno},
year = {2020},
month = aug,
journal = {Proceedings of the VLDB Endowment},
volume = {13},
number = {12},
pages = {2590--2605},
issn = {2150-8097},
doi = {10.14778/3407790.3407847},
urldate = {2023-06-06},
abstract = {Client-side replication and direct client-to-client synchronization can be used to create highly available, low-latency interactive applications. Causal consistency, the strongest available consistency model under network partitions, is an attractive consistency model for these applications.},
langid = {english},
file = {/home/amaury/Zotero/storage/5TJ3SA56/Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf}
}
@article{YanFlexible2017,
title = {Flexible {{Data Access Control Based}} on {{Trust}} and {{Reputation}} in {{Cloud Computing}}},
author = {Yan, Zheng and Li, Xueyun and Wang, Mingjun and Vasilakos, Athanasios V.},
year = {2017},
month = jul,
journal = {IEEE Transactions on Cloud Computing},
volume = {5},
number = {3},
pages = {485--498},
issn = {2168-7161},
doi = {10.1109/TCC.2015.2469662},
urldate = {2023-12-08},
abstract = {Cloud computing offers a new way of services and has become a popular service platform. Storing user data at a cloud data center greatly releases storage burden of user devices and brings access convenience. Due to distrust in cloud service providers, users generally store their crucial data in an encrypted form. But in many cases, the data need to be accessed by other entities for fulfilling an expected service, e.g., an eHealth service. How to control personal data access at cloud is a critical issue. Various application scenarios request flexible control on cloud data access based on data owner policies and application demands. Either data owners or some trusted third parties or both should flexibly participate in this control. However, existing work hasn't yet investigated an effective and flexible solution to satisfy this demand. On the other hand, trust plays an important role in data sharing. It helps overcoming uncertainty and avoiding potential risks. But literature still lacks a practical solution to control cloud data access based on trust and reputation. In this paper, we propose a scheme to control data access in cloud computing based on trust evaluated by the data owner and/or reputations generated by a number of reputation centers in a flexible manner by applying Attribue-Based Encryption and Proxy Re-Encryption. We integrate the concept of context-aware trust and reputation evaluation into a cryptographic system in order to support various control scenarios and strategies. The security and performance of our scheme are evaluated and justified through extensive analysis, security proof, comparison and implementation. The results show the efficiency, flexibility and effectiveness of our scheme for data access control in cloud computing.},
langid = {english},
file = {/home/amaury/Zotero/storage/EGDZNP8U/Yan et al. - 2017 - Flexible Data Access Control Based on Trust and Re.pdf}
}
@misc{Yjs2023,
title = {Yjs/yjs: Shared data types for building collaborative software},
year = {2023},
month = dec,
urldate = {2023-12-10},
abstract = {Shared data types for building collaborative software},
howpublished= {https://github.com/yjs/yjs},
keywords = {collaboration,collaborative-editing,crdt,decentralized,offline-first,p2p,peer-to-peer,realtime,shared-editing,yjs}
}

View File

@ -0,0 +1,18 @@
\documentclass{article}
\usepackage{graphicx}
\usepackage{paralist} % needed for compact lists
\usepackage[normalem]{ulem} % needed by strike
\usepackage[urlcolor=blue,colorlinks=true]{hyperref}
\begin{document}
\nocite{*}
\bibliography{\%\%OUTFILE(\%F)}
\bibliographystyle{alpha}
% LaTeX2e code generated by txt2tags 3.4 (http://txt2tags.org)
% cmdline: txt2tags -t tex -o sujet-cifre.bib.tex getbib.t2t
\end{document}

View File

@ -0,0 +1,138 @@
# Fdb version 4
["bibtex sujet-cifre"] 1703349640 "sujet-cifre.aux" "sujet-cifre.bbl" "sujet-cifre" 1703349643 0
"./sujet-cifre.bib" 1703349561 35633 eb9c295338e2f11b2795051cccfdc15d ""
"/usr/share/texlive/texmf-dist/bibtex/bst/base/alpha.bst" 1292289607 23907 a5f93555796fb564b924339521f10a7c ""
"sujet-cifre.aux" 1703349642 2410 7d821f63649e6fb10b152fb0ebebfc83 "pdflatex"
(generated)
"sujet-cifre.bbl"
"sujet-cifre.blg"
(rewritten before read)
["pdflatex"] 1703349641 "/home/amaury/Nextcloud/Thèse/Administration/cifre/sujet-cifre.tex" "sujet-cifre.pdf" "sujet-cifre" 1703349643 0
"/etc/texmf/web2c/texmf.cnf" 1702042508 475 c0e671620eb5563b2130f56340a5fde8 ""
"/home/amaury/Nextcloud/Thèse/Administration/cifre/sujet-cifre.tex" 1703349638 22635 18540184f97b7f69bc632bd622f241f9 ""
"/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab ""
"/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm" 1136768653 1292 bd42be2f344128bff6d35d98474adfe3 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm" 1136768653 1384 4632f5e54900a7dadbb83f555bc61e56 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplb8r.tfm" 1136768653 2532 9ad73cf4dd2173a847f2a5f5608e0b9a ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplb8t.tfm" 1136768653 3456 16dd534f88eb2bd21ebc7203786b436e ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr7t.tfm" 1136768653 1804 7b5f73028f6509167f47ace9d69509ed ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8r.tfm" 1136768653 2796 d37c29814a6717720ee1a7c9a0b2c3b8 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8t.tfm" 1136768653 3820 ee5b9d58608ae328e43c6e2bfd4ff851 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplri8r.tfm" 1136768653 2720 70000d5e623e601132eab3cded5b819b ""
"/usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplri8t.tfm" 1136768653 3684 929c666381f7272e81481908b735ccba ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr10.tfm" 1136768653 1296 45809c5a464d5f32c8f98ba97c1bb47f ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/latex-fonts/lasy6.tfm" 1136768653 520 4889cce2180234b97cad636b6039c722 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/fplmr.tfm" 1136768653 1032 7fa31d93ecd4cbdfac02c7a1ebc6facc ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7m.tfm" 1136768653 2080 40a71f65088bdd047622ce295520749e ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7t.tfm" 1136768653 1828 bb8add3bd19426549f9267c88b0cb8bd ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7v.tfm" 1136768653 1012 955c4ca523d7827d33db91a33412b048 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7y.tfm" 1136768653 1316 b4037e9c09961a72f8476628774e1ec1 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 ""
"/usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb" 1136849748 45758 19968a0990191524e34e1994d4a31cb6 ""
"/usr/share/texlive/texmf-dist/fonts/type1/urw/palatino/uplb8a.pfb" 1136849748 52406 dad2f72863a03727d5f536c64a69c452 ""
"/usr/share/texlive/texmf-dist/fonts/type1/urw/palatino/uplr8a.pfb" 1136849748 52665 661b1e6b26edb5f50dd491f8a701cb57 ""
"/usr/share/texlive/texmf-dist/fonts/type1/urw/palatino/uplri8a.pfb" 1136849748 50022 90249cba7e3e4e9845f80328d6f9bd13 ""
"/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf" 1136768653 2184 8475af1b9cfa983db5f46f5ed4b8f9f7 ""
"/usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplb8t.vf" 1136768653 2316 c3899bd8afb459a9a5a9a546bf3029a2 ""
"/usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplr8t.vf" 1136768653 2324 a163806de13ddf37313d2ee968aa0a98 ""
"/usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplri8t.vf" 1136768653 2308 5bc0a90b83a3fd7d37d34ef3b64d7e8a ""
"/usr/share/texlive/texmf-dist/fonts/vf/public/mathpazo/zplmr7t.vf" 1136768653 1532 73e2c76c81e4f977ab65540630baf4f0 ""
"/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
"/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel-french/francais.ldf" 1672694451 1294 f58ed8751f8f234095d2eea6b6804cc8 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel-french/french.ldf" 1672694451 66230 1d451d08deedf2659df2fe99052bfb3a ""
"/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty" 1672087451 151218 8947adcfe23774a8b34494ca536618c3 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini" 1661803479 4250 a2f817bda0df06df543d55698ea94f77 ""
"/usr/share/texlive/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex" 1498512262 336 f27942ba034bde85aef544115290ec5d ""
"/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def" 1672087451 6927 c99434e82ec03074d3c501f7fb71e190 ""
"/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
"/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
"/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b ""
"/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
"/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1644112042 7237 bdd120a32c8fdb4b433cf9ca2e7cd98a ""
"/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb ""
"/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
"/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
"/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
"/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1600895880 17859 4409f8f50cd365c68e684407e5350b1b ""
"/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
"/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty" 1578692523 15682 94f55b803e160cf7fb6e4d77d07cfe1d ""
"/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
"/usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty" 1294273053 1635 717cb53b4323c7ff0cf7f675b11dfe05 ""
"/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d ""
"/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/article.cls" 1667332637 20144 d5ecf0a5140c8d8d8b72cbe86e320eff ""
"/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1667332637 3052 30236f0cc243a8651b82240dfd2e8b9d ""
"/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1667332637 2462 8ce5f9a9c63002f2c1af03c262cf29af ""
"/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1654720880 5119 4ce42f43368f652f9c9522d943cce8e4 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1654720880 5048 84b05796b49b69e2d4257d537721c960 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu" 1654720880 1990 846f138013b8f9b1eb25530aca1cb8a2 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu" 1654720880 3534 9e491fb32e35bfff6b9ba316480f2ffc ""
"/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo" 1667332637 8464 63bf71cc1214ffdd38288da73a7ca182 ""
"/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu" 1654720880 12786 1d31c639b01407e8ed545252503231bc ""
"/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu" 1654720880 5133 2b6b3086fbdf70953c13e087cbcffa1a ""
"/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def" 1654720880 11506 48e87c4d4c8b8f9871b6f60996d0a635 ""
"/usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty" 1137109962 1360 df2086bf924b14b72d6121fe9502fcdb ""
"/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty" 1472166125 10197 204f75d5d8d88aa345a8c402e879e63b ""
"/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
"/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1668028059 18450 88279bf67c81e69f8e3f1c1bad1a26c5 ""
"/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty" 1338588508 22449 7ec15c16d0d66790f28e90343c5434a3 ""
"/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1663965824 19448 1e988b341dda20961a6b931bcde55519 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty" 1654720880 7233 e46ce9241d2b2ca2a78155475fdd557a ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1654720880 18387 8f900a490197ebaf93c02ae9476d4b09 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1654720880 8010 a8d949cbdbc5c983593827c9eec252e1 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty" 1654720880 2671 7e67d78d9b88c845599a85b2d41f2e39 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx" 1667332637 2885 9c645d672ae17285bba324998918efd8 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1654720880 4023 293ea1c16429fc0c4cf605f4da1791a9 ""
"/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1668456740 48272 52af74196dd55e6c486243beada2adcd ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1668456740 222727 cfc4e76008392378678e691ec73ef8f0 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1668456740 12947 2cb391007415dfa63f4c5ba1610afddb ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1668456740 14249 c27c0c7065e940126403e065c08683b6 ""
"/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def" 1668456740 117125 a8ce97e3b03f76decc5ad7e8d4da3088 ""
"/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e ""
"/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 ""
"/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1673989714 30429 213676d4c7327a21d91ddaed900e7b81 ""
"/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
"/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 ""
"/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg" 1585170648 1830 e31effa752c61538383451ae21332364 ""
"/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty" 1585170648 80964 64e57373f36316e4a09b517cbf1aba2e ""
"/usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty" 1585170648 204271 bae5b2d457283e99567249c1990510be ""
"/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty" 1585170648 77022 ee25ce086f4a79d8cf73bac6f94c02a5 ""
"/usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty" 1673469821 3590 84b3e4e53745df51ce7e737e4475abe0 ""
"/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty" 1485124581 14857 82c76ebe8f06becf69ab309565b2a0cb ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty" 1586716065 803 1508145d595475dad3d7fb46782a0f94 ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty" 1586716065 1499 de0ad166b701b820e03588a29bb30798 ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty" 1586716065 8976 3f18c815295e2a2949e87fa743bcb489 ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/omlzplm.fd" 1137110629 638 2349dd185efcefd0c3380a2601df0cee ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/omszplm.fd" 1137110629 455 c09241d92b40b1b84eb2bb5776606aea ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/omxzplm.fd" 1137110629 322 fb88cb3e5f25cf1596ba8826c4210e0e ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ppl.fd" 1137110629 961 06b773644d960aac68add40fcb596208 ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1zplm.fd" 1137110629 436 5e7baa1a259bab50a2bdffad6426f38c ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd" 1137110629 798 d5895e9edc628f2be019beb2c0ec66df ""
"/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ppl.fd" 1137110629 774 5747d3f33ec2f7c4881c94e931a130b1 ""
"/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
"/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1657483315 9714 ba3194bd52c8499b3f1e3eb91d409670 ""
"/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty" 1654720880 4545 4c279ac9292a1be8afa9ab2f1d3299c2 ""
"/usr/share/texlive/texmf-dist/tex/latex/ucs/utf8x.def" 1660425649 8944 1cf5de165d8b3a9de8975b4e3f40e814 ""
"/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1655066402 56148 51a9a8571c07b9921892ae11063ae853 ""
"/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1681034085 39561 34c98e380bf7c7201ee6a7909aff625a ""
"/usr/share/texmf/web2c/texmf.cnf" 1681034085 39561 34c98e380bf7c7201ee6a7909aff625a ""
"/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1702459634 4623455 fa0568a71dd9a288d6c226ee477506c6 ""
"/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1702459746 7881417 4ad1cca5899ad0336eafc70d53f9d6c2 ""
"sujet-cifre.aux" 1703349642 2410 7d821f63649e6fb10b152fb0ebebfc83 "pdflatex"
"sujet-cifre.bbl" 1703349641 8056 728100759c72bde6cb870d71fda7d269 "bibtex sujet-cifre"
"sujet-cifre.out" 1703349642 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex"
"sujet-cifre.tex" 1703349638 22635 18540184f97b7f69bc632bd622f241f9 ""
(generated)
"sujet-cifre.aux"
"sujet-cifre.log"
"sujet-cifre.out"
"sujet-cifre.pdf"
(rewritten before read)

View File

@ -0,0 +1,818 @@
PWD /home/amaury/Nextcloud/Thèse/Administration/cifre
INPUT /etc/texmf/web2c/texmf.cnf
INPUT /usr/share/texmf/web2c/texmf.cnf
INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf
INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt
INPUT /home/amaury/Nextcloud/Thèse/Administration/cifre/sujet-cifre.tex
OUTPUT sujet-cifre.log
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size11.clo
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size11.clo
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size11.clo
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size11.clo
INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr10.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/latex-fonts/lasy6.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ucs/utf8x.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/ucs/utf8x.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/ucs/utf8x.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/ucs/utf8x.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/utf8.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/utf8.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/utf8.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/utf8.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/a4wide/a4wide.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/ntgclass/a4.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ppl.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ppl.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ppl.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ppl.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr7t.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ppl.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ppl.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ppl.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ppl.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8t.tfm
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-french/francais.ldf
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-french/francais.ldf
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-french/francais.ldf
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-french/francais.ldf
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-french/french.ldf
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT ./sujet-cifre.aux
INPUT sujet-cifre.aux
INPUT sujet-cifre.aux
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini
OUTPUT sujet-cifre.aux
INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
INPUT ./sujet-cifre.out
INPUT sujet-cifre.out
INPUT ./sujet-cifre.out
INPUT sujet-cifre.out
INPUT ./sujet-cifre.out
INPUT sujet-cifre.out
INPUT ./sujet-cifre.out
INPUT sujet-cifre.out
INPUT ./sujet-cifre.out
INPUT ./sujet-cifre.out
OUTPUT sujet-cifre.out
OUTPUT sujet-cifre.pdf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr7t.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omlzplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omlzplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omlzplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omlzplm.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7m.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7m.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7m.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omszplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omszplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omszplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omszplm.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7y.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7y.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7y.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omxzplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omxzplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omxzplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/omxzplm.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7v.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7v.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7v.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1zplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1zplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1zplm.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1zplm.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplb8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplb8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplr8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8r.tfm
INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplr8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplb8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplb8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplr8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplb8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplb8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplri8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplri8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplri8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplb8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7m.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7m.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7m.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7y.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7y.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7y.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7v.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7v.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7v.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplb8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplb8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/mathpazo/zplmr7t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/fplmr.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr10.tfm
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd
INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8t.tfm
INPUT ./sujet-cifre.bbl
INPUT sujet-cifre.bbl
INPUT ./sujet-cifre.bbl
INPUT sujet-cifre.bbl
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplri8t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7m.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7y.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7v.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/zplmr7t.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplr8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/palatino/pplri8t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplri8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/mathpazo/zplmr7t.vf
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/mathpazo/fplmr.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/palatino/pplr8r.tfm
INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr10.tfm
INPUT sujet-cifre.aux
INPUT ./sujet-cifre.out
INPUT ./sujet-cifre.out
INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/palatino/uplb8a.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/palatino/uplr8a.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/palatino/uplri8a.pfb

View File

@ -0,0 +1,409 @@
Cohérences faibles pour le cloud zero-trust
SUJET DE RECHERCHE
Emmanuel Godard (LIS) -- Corentin Travers (LIS)\\emmanuel.godard@lis-lab.fr et corentin.travers@lis-lab.fr
%!postproc: "\\clearpage" ""
%!preproc(tex): \[([^]]*)\] ''\\cite{\1}''
%!postproc: SUJETCOURT ""
**Mots-clefs:** Cloud, Sécurité par conception, Structures et algorithmes distribués, Cohérences faibles, Systèmes byzantins
% Plan:
% - létat de lart,
% - les objectifs,
% - la méthodologie de recherche,
% - un planning prévisionnel du déroulement de la thèse (diagramme de Gantt suggéré),
% - les modalités de suivi et déchanges entre les partenaires,
% - les moyens et matériels mis à disposition par chaque partenaire,
% - les retombées attendues pour chaque partenaire,
% - les encadrants et contributions techniques de chaque partenaire,
% - les modalités et motivations du choix du candidat,
% - des références bibliographiques récentes citées à bon escient.
= Résumé =
Les applications collaboratives en temps réel sont de plus en plus utilisées
dans le cadre de la mise en place de systèmes de travail à distance. Ces
applications sont souvent basées sur des architectures client-serveur
centralisées, ce qui pose des problèmes de sécurité et de confidentialité. Les
données sont stockées sur un serveur centralisé, ce qui implique que les
utilisateurs doivent faire confiance à un tiers pour la gestion de leurs
données. De plus, ces architectures sont souvent vulnérables aux attaques par
déni de service, et ne permettent pas de garantir la confidentialité des
données.
Pour répondre à ces problématiques, nous proposons d'explorer des
solutions d'échange de l'information basées sur des architectures sans
tiers de confiances à travers des approches dites zero-trust et/ou
pair à pair. Ces solutions nous permettraient de proposer de solutions
à haut niveau de sécurité tout en garantissant une certaine résilience
du système. Pour conserver des performances fortes notamment en haute
disponibilité, les cohérences faibles sont fréquemment utilisées.
Dans ce contexte, nous proposons d'étudier les propriétés de cohérences faibles
appliquée aux problématiques liées au cloud. Dans un premier temps sera réalisé
un état de l'art sur les solutions byzantines sans primitives cryptographiques,
ainsi que sur les différentes implémentations existantes (WP1). Une deuxième
étape consistera à proposer des solutions plus efficaces mais utilisant des
primitives cryptographiques (WP2). Enfin, une dernière étape consistera en la
production d'une preuve de concept de solution de stockage clef/valeurs
utilisant les algorithmes retenus aux étapes précédentes (WP3).
''' \pagebreak
= Problématique =
Depuis les travaux pionniers des années 80, par Lamport
[LamportInterprocess1986] et Misra [MisraAxioms1986] notamment, la
gestion de la réplication est au cœur des développements du numérique
en terme de haute disponibilité. L'une des problématiques
fondamentales est d'offrir aux développeurs d'applications une
abstraction de la mémoire répliquée qui soit à la fois simple à
utiliser et permette de mobiliser de manière souple et résistante
aux défaillances l'intégralité des ressources distribuées.
Cette voie de recherche a produit la notion de //cohérence des données//
dont les nombreuses déclinaisons permette de s'adapter aux meilleurs
compromis d'usage et spécificités de chaque application.
La tendance actuelle autour de la mise en Cloud des applications
informatiques implique des modifications importantes dans les usages
et les modes de développement des nouvelles applications. Dans le cadre de nouvelles facilités d'usage, où la maintenance de l'infrastructure est déléguée à un prestataire, cela a conduit à une centralisation des
ressources. Cela ré-introduit des problématiques classiques en termes de
sécurité : nécessité de confiance/souveraineté ou bien
//point central de défaillance// (SPOF).
De nouvelles approches dites //sans-confiance// (zero-trust) ont donc
été proposées pour continuer à utiliser ces ressources cloud sans dépendre d'un prestataire particulier. Elles nécessitent à la fois des architectures multi-fournisseurs et des approches cryptographiques avancées.
''' \medskip
Du point de vue des programmeurs, il est souvent avantageux de
considérer de telles applications sur le nuage comme un seul système
centralisé. Cela nécessite que les structures de données utilisées
aient une propriété dite de //cohérence forte//.
En conditions réelles, les serveurs peuvent avoir à supporter des
conditions de fonctionnement très difficiles. Il est bien connu, à la
fois des théoriciens et des praticiens, par le théorème CAP (Consistency, Availability, Partition tolerance) que des
compromis de fonctionnement sont souvent nécessaires. En particulier,
si c'est la cohérence forte qui est recherchée, le temps de calcul
est proportionnel à la latence de **tout** le réseau. Ce qui diminue en
pratique la disponibilité.
Si l'on se réfère au théorème CAP, en appliquant la cohérence forte il
est impossible de mettre en place un système hautement résilient, tout
en fournissant une application hautement disponible. Ces deux points
pouvant néanmoins se retrouver être essentiels dans la réalisation
dune application collaborative.
Lapproche pair-à-pair implique en effet une grande résistance du système
face à la panne. Les répliques sont emmenées à se déconnecter les uns des
autres et à avoir des différences de latences importantes et inégales.
La non-maitrise du poste et de lenvironnement dexécution de lapplication
nous pousse à imaginer des systèmes pouvant résister aux pires situations
possibles.
Dans le même temps, la nature de lapplication recherchée, qui est la
collaboration en temps réel, est liée à la question de la
haute disponibilité. Le but étant de permettre à des répliques différentes
daccéder à la même donnée partagée pour un travail en temps réel. Il ne
serait donc pas acceptable de proposer des temps de latences trop
conséquents entre deux modifications.
Etant donnée limpossibilité de satisfaire ces deux aspects nous nous
tournons vers létude des cohérences faibles, et notamment de la convergence.
On peut ainsi définir comme convergent les systèmes respectant la propriété suivante :
Si les répliques arrêtent de proposer des modifications, alors ces mêmes répliques doivent éventuellement atteindre un état cohérent.
La convergence (ou Eventual Consistency) est particulièrement étudiée. Ainsi
un certains nombres de structures de données distribuées proposant de respecter la convergence ont
vu le jour. Néanmoins à elles seules, celles-ci ne permettent pas de résoudre notre
problématique. En effet cette propriété n'offre pas de garantie sur les comportements durant
lexécution, là exactement où lincohérence au sein du système est permise
par la convergence. Or il ne suffit pas quun document converge à terme pour
en faire une application dédition collaborative satisfaisante. Mais il faut aussi
proposer des mécanismes pour résoudre les conflits, qui sont inévitables
dans l'approche collaborative. Cette résolution doit être réalisée de la manière la
plus optimale pour maximiser la préservation du sens donné à chaque modification
par la réplique qui la émise.
Ces questions ont bien entendu été très étudiées et les différentes solutions
proposées particulièrement adaptées dans notre contexte sont les
//types des données répliqués// (ou Replicated Data Type).
Il en existe deux classes, les types de
données répliquées commutatives (CmRDT), dont les opérations donnent le
même résultat, peu importe leurs ordres dexécutions locales.
Et les structures de données convergentes (CvRDT), par exemple un système où
la donnée viserait à croitre continuellement convergeant ainsi vers une
structure maximale. Ces deux classes sont regroupées sous la dénomination
de type de données sans conflit (CRDT) et sont en réalité équivalentes lune
à lautre [ShapiroConflictFree2011].
''' \medskip
En outre, pour proposer des solutions véritablement sécurisées dans un
contexte zéro-trust, les conditions de fonctionnement les plus
difficiles à considérer sont lorsque des serveurs ou des clients
participants ont été compromis et ne respectent pas strictement le
protocole. Dans la littérature, cela s'appelle un fonctionnement
byzantin.
Etant données ces contraintes difficiles de disponibilité et de sécurité,
assurer une propriété
de cohérence forte peut être très coûteux en calcul et en temps. Les
exigences applicatives ne sont parfois pas compatibles avec de telles
conditions de fonctionnement. On peut alors considérer des données
avec des propriétés dites de //cohérences faibles//.
= État de l'art =
Le paysage des propriétés de //cohérences faibles// est relativement
complexe. On peut distinguer trois grandes familles de cohérences
faibles [Raynal18], [MPBook]:
- la sérialisabilité
- la cohérence causale
- la cohérence éventuellement forte
Si la cohérence éventuellement forte est en général recherchée pour
les applications collaboratives, elle est particulièrement
coûteuse. La sérialisabilité est plus simple à implémenter mais
produit parfois des transactions qui ne terminent pas. Ces situations
d'erreur doivent alors être gérées par l'application.
La cohérence
causale maintient l'ordre causal perçu par chaque processus et permet
en général d'implémenter des structures de données de plus haut niveau
de manière efficace.
Le lecteur pourra se référer à la cartographie assez exhaustive de
M. Perrin [MPBook].
== Résultats Algorithmiques ==
Les premiers travaux sur des outils collaboratifs sécurisés dans un
contexte de haute disponibilité
datent de 2009, cependant les recherches plus
systématiques concernant la sécurité des cohérences dites faibles sont
en fait très récentes.
En 2009, Sing //et al.// propose le système Zeno qui est le premier
à proposer un algorithme byzantin qui privilégie la disponibilité sur
la cohérence (forte). Il offre une robustesse byzantine à la
cohérence éventuellement forte [SinghZeno2009]. L'algorithme montre
de manière expérimentale de meilleures performances de disponibilité
que les algorithmes byzantins classiques.
Il existe actuellement essentiellement des études et solutions
partielles pour la cohérence causale [TsengDistributed2019] et
[VanDerLindePractical2020]. Tseng //et al.// présentent des bornes
exactes de calculabilité dans un cadre byzantin d'un côté et donnent
un algorithme dont les performances sont comparées avec ceux de la
plateforme Google Compute. Van Der Linde //et al.// présentent un
système pair-à-pair résistant aux attaques byzantines qui offre des
garanties de cohérence causale. Leur évaluation considère que malgré
une architecture pair-à-pair, les performances, notamment en termes de
latence sont très bonnes en comparaison avec une architecture
client-serveur classique.
En complément de ces algorithmes, Misra et Kshemkalyani ont montré
dans [MisraByzantine2021] que dans un contexte asynchrone, il n'est
pas possible de proposer de la consistance causale même avec un seul
participant byzantin.
L'une des particularités de [VanDerLindePractical2020] est de proposer
également une réflexion sur les défaillances byzantines dans un
contexte de cohérences faibles. Un système pair-à-pair tel que celui
de [MisraByzantine2021] justifie de proposer de nouvelles attaques où
un participant exploite les informations des couches basses de
réplication pour créer des attaques au niveau applicatif.
L'application de critères de cohérences faibles ne suffit pas à
satisfaire le cadre de notre problématique. Le contexte du cloud pose
notamment de grande questions en termes de centralisation et de
gouvernance des données, avec un marché dominé par quelques acteurs
majeurs auxquels les utilisateurs doivent faire confiance de manière
aveugle. Posant ainsi de grande question sur la confidentialité et la
souveraineté de leurs informations.
C'est dans ce contexte qu'intégrer la notion d'un cloud zero-trust est
essentiel en ancrant nos réflexions dans une approche
pertinente d'un point de vue industriel et réglementaire. Le zero-trust comme défini
par le NIST dans la SP 800-207 [RoseZero2020] est un modèle de sécurité qui ne fait
confiance à aucun tiers, et qui ne fait aucune hypothèse sur la
sécurité du réseau. Il permet ainsi de se préserver des comportements
malveillants émis par les intermédiaires diminuant la surface
d'attaque et limitant les comportements byzantins aux seuls clients
qui eux ont accès aux données.
Evidement ce dernier point est aussi à considérer. C'est pourquoi une
approche de sécurité centrée sur la donnée en plus des communications
peut aussi être envisagé en adoptant des approches dites "Data Centric".
C'est-à-dire de considérer la donnée elle-même comme un acteur vivant du
système en lui attribuant des processus de contrôle d'accès et de suivie
[BayukDatacentric2009]. Ces questions représentent des enjeux grandissants et
sont considérés par les acteurs étatique et inter-étatique à l'image de l'OTAN
qui statut sur ces problématiques à travers les STANAG 4774 et 4778. Ces
questions sont largement étudiées depuis les années 2010 avec des travaux comme
[GoyalAttributebased2006, MullerDistributed2009] qui définisse des solutions
pour mettre en place du chiffrement par attribut. Consistant à émettre des clés
de chiffrements dépendantes de droits, et donc de permettre de définir des
politiques de sécurité. Des travaux comme [YanFlexible2017] propose des
solutions plus adaptées au cloud en se basant sur des architectures plus
flexibles et avec une plus grande granularité dans la définition des droits.
Néanmoins sur les aspects du zero-trust et de la sécurité centrée sur
la donnée, il n'existe pas encore de travaux académiques concernant
une formalisation consensuelle de ces notions. Et ces termes sont
soumis à de nombreuses interprétations. Il reste donc à spécifier
formellement ces différents termes pour comprendre quelles propriétés
sont à satisfaire pour réaliser de la cohérence faible dans un
contexte zero-trust.
== Implémentations Existantes ==
Des projets actuels tentent d'implémenter des protocoles de cohérences faibles pour la mise en place d'applications collaboratives en temps réel. Parmi ces projets on peut citer yjs [Yjs2023] qui implémente le protocole YATA [NicolaescuRealTime2016] et qui permet d'assurer une convergence forte (ou SEC d'après le référentiel de Perrin) à travers un système de type CRDT.
D'autres projets plus anciens tel qu'Etherpad utilise des solutions plus simples à base de résolution de conflit continue, assurant aussi une convergence forte mais réalisant des opérations algorithmiques plus complexes en termes de mémoire et de temps de calcul vis-à-vis des CRDTs [AppJetEtherpad2011].
= Objectifs =
Les objectifs de cette thèse sont à la fois d'étudier les trois types
de cohérence faible en situation byzantine et de définir des
algorithmes byzantins efficaces pour pouvoir les implémenter. Puisque
la cohérence causale est déjà bien étudiée, ce sont les deux autres
cohérences qui seront les principaux axes de recherche de cette thèse.
La première étape (WP1) consistera à étudier des solutions byzantines
sans primitives cryptographiques, ou avec des primitives
raisonnablement coûteuses, c'est-à-dire notamment sans calcul
homomorphe. Une étude des implémentations existantes sera réalisée
pour notamment déterminer les garanties offertes par ces solutions
dans le vocabulaire des cohérences faibles.
La deuxième étape (WP2) consistera à produire des solutions plus efficaces
mais qui utilisent des primitives cryptographiques nécessitant des
primitives de partage de secret avancées et/ou de calcul homomorphe.
Une dernière étape (WP3) consistera en la production d'une preuve de concept
de solution de stockage //clef/valeurs// utilisant les algorithmes
retenus aux étapes précédentes.
= Méthodologie et Planning =
Une revue précise des modèles de calcul distribué pour lesquels des
solutions (principalement de consistance causale) ont été proposées
sera établie dans le but de déterminer l'ensemble des hypothèses,
théoriques et pratiques, de validité de ces solutions. En parallèle de
cetté étude, en relation avec l'entreprise Scille, une liste
d'attaques sur les architectures pair-à-pairs à cohérence faible sera
établie. L'accent sera mis sur la production de connaissances
nouvelles (nouvelles solutions par rapport à l'état de l'art mais
également nouvelles attaques).
Les algorithmes seront tout d'abord validé de manière formelle
avant de voir une preuve de concept développée.
Le WP1 se déroulera en 2024, le WP2 en 2025, et le WP3 en ZO26.
= Modalités de Suivi et d'Échange =
Le doctorant participe aux réunions hebdomadaires de suivi de
l'entreprise Scille. Les partenaires se rencontreront tous les trois
mois pour un point d'avancée sur les travaux.
Il participera également aux réunions physiques de
l'entreprise tous les 6 mois.
= Moyens Matériels =
Le doctorant sera hébergé au Laboratoire d'Informatique et des
Systèmes. Il bénéficiera de l'environnement scientifique et technique
d'un laboratoire UMR CNRS de 800 personnes, dont environ 400 personnels permanents .
Du côté de l'entreprise Scille, qui fonctionne en //full remote//, le
doctorant aura accès à un banc d'essai cloud hébergé par
l'entreprise.
= Retombées Attendues =
Du côté du laboratoire LIS, les retombées attendues sont les publications scientifiques suivantes :
- état de l'art et synthèse concernant les consistances faibles byzantines
- propositions et preuves de nouveaux algorithmes dans le contexte zéro-trust
Du côté de l'entreprise Scille, il est attendu une mini-maquette de
synchronisation et collaboration cloud, une preuve de concept des
algorithmes sus-cités ainsi que du conseil et de l'expertise dans le
domaine du "développement scientifique" des produits développés par Scille, notamment ``parsec``.
= Équipe =
== Équipe Algorithmique Distribuée (DALGO) ==
L'équipe Algorithmique Distribuée (responsable Arnaud Labourel) fait
partie du Laboratoire d'Informatique et Systèmes (LIS CNRS UMR 7020).
du Laboratoire d'Informatique et Systèmes (LIS CNRS UMR 7020). C'est
une équipe de recherche reconnue au plus haut niveau international,
avec 8 membres permanents dont les centres d'intérêt vont des
algorithmes distribués fiables, de la confidentialité dans les
systèmes distribués aux réseaux de communication, ainsi qu'aux
algorithmes de graphes, aux agents mobiles et à l'IoT,
== Encadrants ==
**Emmanuel Godard** est professeur à l'Université Aix-Marseille. Ses
intérêts de recherche portent principalement sur la compréhension et
la maximisation de la décentralisation (en un sens large) dans les
systèmes distribués. Il est expert en algorithmique et calculabilité distribuées.
**Corentin Travers** est Maître de Conférences à l'Université
Aix-Marseille. Ses intérêts de recherche portent sur les
algorithmes distributés robustes et efficaces pour les systèmes à
mémoire partagée ou les réseaux distribués. Il est expert en algorithmique et complexité distribuées.
**Marcos Medrano** est ingénieur R&D chez Scille. Diplômé d'un master de recherche en sciences
de l'informatique et mathématique appliqué. Il est en charge de la stratégie de développement
du produit Parsec et réalise le lien entre les ingénieurs et les intervenants académiques.
== Choix du Candidat ==
L'équipe DALGO est partie prenante du Master "Fiabilité et Sécurité
Informatique" de l'Université Aix-Marseille. Ce parcours de master est
labellisé //SecNumEdu// par l'ANSSI. À l'automne 2022, le sujet
proposé avec l'entreprise Scille a été présenté à l'ensemble des
étudiants de master. Suite à cet appel à candidature, M. Amaury Joly a
été retenu pour un stage de recherche préliminaire de 6 mois sur le
thème des consistances faibles au laboratoire LIS.
Les notes de M. Amaury Joly sont très bonnes, il obtient une mention
bien au master. Il présente en outre un très bon double profil à la
fois théorique et technique, sa motivation pour les activités de
recherche en lien avec la sécurité du Cloud est très forte, il est le
candidat parfait pour un tel sujet de recherche.
% Références depuis %%INFILE.bib
''' {\footnotesize
''\input{sujet-cifre.bbl}''
''' }

View File

@ -0,0 +1,436 @@
\documentclass[11pt]{article}
\usepackage{graphicx}
\usepackage{paralist} %% needed for compact lists
\usepackage[normalem]{ulem} %% needed by strike
\usepackage[urlcolor=blue,colorlinks=true,breaklinks]{hyperref}
\usepackage[utf8x]{inputenc} %% char encoding
\usepackage{framed} %% frame multipages
% \usepackage{fullpage}
\usepackage{a4wide}
\usepackage{mathpazo} %% math & rm
\linespread{1.05} %% Palatino needs more leading (space between lines)
\usepackage[scaled]{helvet} %% ss
\usepackage{courier} %% tt
\normalfont
\usepackage[T1]{fontenc}
\usepackage[francais]{babel} %% en francais
\usepackage{xspace} %% gestion des espaces après une macro
\usepackage{listings}
\lstset{breaklines}
\lstset{language=java}
\lstset{escapechar=§}
\usepackage{xcolor}
\usepackage{comment} %%%% comment env
%%%%%%%%%%%%%%
%% fancy et brouillon
%% Date en haut de page
%% A commenter pour la version finale
\usepackage[margin=2.5cm]{geometry}
\usepackage{fancyhdr}
%% Header and footer
\fancyhf{} %%clear head and footer
\fancyhead[C]{\thepage} %%draft
\renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{2pt}
\fancyfoot[C]{\textsc{SUJETCOURT}}
\fancypagestyle{premiere}{%% première page
\fancyhf{} %%clear head and footer
\fancyfoot[L]{\textbf{LIF}}
\renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{2pt}
\fancyfoot[C]{\textsc{SUJETCOURT}}
\fancyhead[C]{}%%\includegraphics[scale=0.25]{logo-lif.png}} %%UFR
}
\fancypagestyle{notete}{%% première page
\fancyhf{} %%clear head and footer
\renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{2pt}
\fancyfoot[C]{\textsc{Sujet}}
}
\newcommand{\myversion}{\textit{version du \today{}}}
\pagestyle{plain}
\title{Cohérences faibles pour le cloud zero-trust}
\author{SUJET DE RECHERCHE}
\begin{document}
\date{Emmanuel Godard (LIS) -- Corentin Travers (LIS)\\emmanuel.godard@lis-lab.fr et corentin.travers@lis-lab.fr}
\maketitle
\textbf{Mots-clefs:} Cloud, Sécurité par conception, Structures et algorithmes distribués, Cohérences faibles, Systèmes byzantins
\section*{Résumé}
Les applications collaboratives en temps réel sont de plus en plus utilisées
dans le cadre de la mise en place de systèmes de travail à distance. Ces
applications sont souvent basées sur des architectures client-serveur
centralisées, ce qui pose des problèmes de sécurité et de confidentialité. Les
données sont stockées sur un serveur centralisé, ce qui implique que les
utilisateurs doivent faire confiance à un tiers pour la gestion de leurs
données. De plus, ces architectures sont souvent vulnérables aux attaques par
déni de service, et ne permettent pas de garantir la confidentialité des
données.
Pour répondre à ces problématiques, nous proposons d'explorer des
solutions d'échange de l'information basées sur des architectures sans
tiers de confiances à travers des approches dites zero-trust et/ou
pair à pair. Ces solutions nous permettraient de proposer de solutions
à haut niveau de sécurité tout en garantissant une certaine résilience
du système. Pour conserver des performances fortes notamment en haute
disponibilité, les cohérences faibles sont fréquemment utilisées.
Dans ce contexte, nous proposons d'étudier les propriétés de cohérences faibles
appliquée aux problématiques liées au cloud. Dans un premier temps sera réalisé
un état de l'art sur les solutions byzantines sans primitives cryptographiques,
ainsi que sur les différentes implémentations existantes (WP1). Une deuxième
étape consistera à proposer des solutions plus efficaces mais utilisant des
primitives cryptographiques (WP2). Enfin, une dernière étape consistera en la
production d'une preuve de concept de solution de stockage clef/valeurs
utilisant les algorithmes retenus aux étapes précédentes (WP3).
\pagebreak
\section*{Problématique}
Depuis les travaux pionniers des années 80, par Lamport
\cite{LamportInterprocess1986} et Misra \cite{MisraAxioms1986} notamment, la
gestion de la réplication est au cœur des développements du numérique
en terme de haute disponibilité. L'une des problématiques
fondamentales est d'offrir aux développeurs d'applications une
abstraction de la mémoire répliquée qui soit à la fois simple à
utiliser et permette de mobiliser de manière souple et résistante
aux défaillances l'intégralité des ressources distribuées.
Cette voie de recherche a produit la notion de \textit{cohérence des données}
dont les nombreuses déclinaisons permette de s'adapter aux meilleurs
compromis d'usage et spécificités de chaque application.
La tendance actuelle autour de la mise en Cloud des applications
informatiques implique des modifications importantes dans les usages
et les modes de développement des nouvelles applications. Dans le cadre de nouvelles facilités d'usage, où la maintenance de l'infrastructure est déléguée à un prestataire, cela a conduit à une centralisation des
ressources. Cela ré-introduit des problématiques classiques en termes de
sécurité : nécessité de confiance/souveraineté ou bien
\textit{point central de défaillance} (SPOF).
De nouvelles approches dites \textit{sans-confiance} (zero-trust) ont donc
été proposées pour continuer à utiliser ces ressources cloud sans dépendre d'un prestataire particulier. Elles nécessitent à la fois des architectures multi-fournisseurs et des approches cryptographiques avancées.
\medskip
Du point de vue des programmeurs, il est souvent avantageux de
considérer de telles applications sur le nuage comme un seul système
centralisé. Cela nécessite que les structures de données utilisées
aient une propriété dite de \textit{cohérence forte}.
En conditions réelles, les serveurs peuvent avoir à supporter des
conditions de fonctionnement très difficiles. Il est bien connu, à la
fois des théoriciens et des praticiens, par le théorème CAP (Consistency, Availability, Partition tolerance) que des
compromis de fonctionnement sont souvent nécessaires. En particulier,
si c'est la cohérence forte qui est recherchée, le temps de calcul
est proportionnel à la latence de \textbf{tout} le réseau. Ce qui diminue en
pratique la disponibilité.
Si l'on se réfère au théorème CAP, en appliquant la cohérence forte il
est impossible de mettre en place un système hautement résilient, tout
en fournissant une application hautement disponible. Ces deux points
pouvant néanmoins se retrouver être essentiels dans la réalisation
dune application collaborative.
Lapproche pair-à-pair implique en effet une grande résistance du système
face à la panne. Les répliques sont emmenées à se déconnecter les uns des
autres et à avoir des différences de latences importantes et inégales.
La non-maitrise du poste et de lenvironnement dexécution de lapplication
nous pousse à imaginer des systèmes pouvant résister aux pires situations
possibles.
Dans le même temps, la nature de lapplication recherchée, qui est la
collaboration en temps réel, est liée à la question de la
haute disponibilité. Le but étant de permettre à des répliques différentes
daccéder à la même donnée partagée pour un travail en temps réel. Il ne
serait donc pas acceptable de proposer des temps de latences trop
conséquents entre deux modifications.
Etant donnée limpossibilité de satisfaire ces deux aspects nous nous
tournons vers létude des cohérences faibles, et notamment de la convergence.
On peut ainsi définir comme convergent les systèmes respectant la propriété suivante :
Si les répliques arrêtent de proposer des modifications, alors ces mêmes répliques doivent éventuellement atteindre un état cohérent.
La convergence (ou Eventual Consistency) est particulièrement étudiée. Ainsi
un certains nombres de structures de données distribuées proposant de respecter la convergence ont
vu le jour. Néanmoins à elles seules, celles-ci ne permettent pas de résoudre notre
problématique. En effet cette propriété n'offre pas de garantie sur les comportements durant
lexécution, là exactement où lincohérence au sein du système est permise
par la convergence. Or il ne suffit pas quun document converge à terme pour
en faire une application dédition collaborative satisfaisante. Mais il faut aussi
proposer des mécanismes pour résoudre les conflits, qui sont inévitables
dans l'approche collaborative. Cette résolution doit être réalisée de la manière la
plus optimale pour maximiser la préservation du sens donné à chaque modification
par la réplique qui la émise.
Ces questions ont bien entendu été très étudiées et les différentes solutions
proposées particulièrement adaptées dans notre contexte sont les
\textit{types des données répliqués} (ou Replicated Data Type).
Il en existe deux classes, les types de
données répliquées commutatives (CmRDT), dont les opérations donnent le
même résultat, peu importe leurs ordres dexécutions locales.
Et les structures de données convergentes (CvRDT), par exemple un système où
la donnée viserait à croitre continuellement convergeant ainsi vers une
structure maximale. Ces deux classes sont regroupées sous la dénomination
de type de données sans conflit (CRDT) et sont en réalité équivalentes lune
à lautre \cite{ShapiroConflictFree2011}.
\medskip
En outre, pour proposer des solutions véritablement sécurisées dans un
contexte zéro-trust, les conditions de fonctionnement les plus
difficiles à considérer sont lorsque des serveurs ou des clients
participants ont été compromis et ne respectent pas strictement le
protocole. Dans la littérature, cela s'appelle un fonctionnement
byzantin.
Etant données ces contraintes difficiles de disponibilité et de sécurité,
assurer une propriété
de cohérence forte peut être très coûteux en calcul et en temps. Les
exigences applicatives ne sont parfois pas compatibles avec de telles
conditions de fonctionnement. On peut alors considérer des données
avec des propriétés dites de \textit{cohérences faibles}.
\section*{État de l'art}
Le paysage des propriétés de \textit{cohérences faibles} est relativement
complexe. On peut distinguer trois grandes familles de cohérences
faibles \cite{Raynal18}, \cite{MPBook}:
\begin{compactitem}
\item la sérialisabilité
\item la cohérence causale
\item la cohérence éventuellement forte
\end{compactitem}
Si la cohérence éventuellement forte est en général recherchée pour
les applications collaboratives, elle est particulièrement
coûteuse. La sérialisabilité est plus simple à implémenter mais
produit parfois des transactions qui ne terminent pas. Ces situations
d'erreur doivent alors être gérées par l'application.
La cohérence
causale maintient l'ordre causal perçu par chaque processus et permet
en général d'implémenter des structures de données de plus haut niveau
de manière efficace.
Le lecteur pourra se référer à la cartographie assez exhaustive de
M. Perrin \cite{MPBook}.
\subsection*{Résultats Algorithmiques}
Les premiers travaux sur des outils collaboratifs sécurisés dans un
contexte de haute disponibilité
datent de 2009, cependant les recherches plus
systématiques concernant la sécurité des cohérences dites faibles sont
en fait très récentes.
En 2009, Sing \textit{et al.} propose le système Zeno qui est le premier
à proposer un algorithme byzantin qui privilégie la disponibilité sur
la cohérence (forte). Il offre une robustesse byzantine à la
cohérence éventuellement forte \cite{SinghZeno2009}. L'algorithme montre
de manière expérimentale de meilleures performances de disponibilité
que les algorithmes byzantins classiques.
Il existe actuellement essentiellement des études et solutions
partielles pour la cohérence causale \cite{TsengDistributed2019} et
\cite{VanDerLindePractical2020}. Tseng \textit{et al.} présentent des bornes
exactes de calculabilité dans un cadre byzantin d'un côté et donnent
un algorithme dont les performances sont comparées avec ceux de la
plateforme Google Compute. Van Der Linde \textit{et al.} présentent un
système pair-à-pair résistant aux attaques byzantines qui offre des
garanties de cohérence causale. Leur évaluation considère que malgré
une architecture pair-à-pair, les performances, notamment en termes de
latence sont très bonnes en comparaison avec une architecture
client-serveur classique.
En complément de ces algorithmes, Misra et Kshemkalyani ont montré
dans \cite{MisraByzantine2021} que dans un contexte asynchrone, il n'est
pas possible de proposer de la consistance causale même avec un seul
participant byzantin.
L'une des particularités de \cite{VanDerLindePractical2020} est de proposer
également une réflexion sur les défaillances byzantines dans un
contexte de cohérences faibles. Un système pair-à-pair tel que celui
de \cite{MisraByzantine2021} justifie de proposer de nouvelles attaques où
un participant exploite les informations des couches basses de
réplication pour créer des attaques au niveau applicatif.
L'application de critères de cohérences faibles ne suffit pas à
satisfaire le cadre de notre problématique. Le contexte du cloud pose
notamment de grande questions en termes de centralisation et de
gouvernance des données, avec un marché dominé par quelques acteurs
majeurs auxquels les utilisateurs doivent faire confiance de manière
aveugle. Posant ainsi de grande question sur la confidentialité et la
souveraineté de leurs informations.
C'est dans ce contexte qu'intégrer la notion d'un cloud zero-trust est
essentiel en ancrant nos réflexions dans une approche
pertinente d'un point de vue industriel et réglementaire. Le zero-trust comme défini
par le NIST dans la SP 800-207 \cite{RoseZero2020} est un modèle de sécurité qui ne fait
confiance à aucun tiers, et qui ne fait aucune hypothèse sur la
sécurité du réseau. Il permet ainsi de se préserver des comportements
malveillants émis par les intermédiaires diminuant la surface
d'attaque et limitant les comportements byzantins aux seuls clients
qui eux ont accès aux données.
Evidement ce dernier point est aussi à considérer. C'est pourquoi une
approche de sécurité centrée sur la donnée en plus des communications
peut aussi être envisagé en adoptant des approches dites "Data Centric".
C'est-à-dire de considérer la donnée elle-même comme un acteur vivant du
système en lui attribuant des processus de contrôle d'accès et de suivie
\cite{BayukDatacentric2009}. Ces questions représentent des enjeux grandissants et
sont considérés par les acteurs étatique et inter-étatique à l'image de l'OTAN
qui statut sur ces problématiques à travers les STANAG 4774 et 4778. Ces
questions sont largement étudiées depuis les années 2010 avec des travaux comme
\cite{GoyalAttributebased2006, MullerDistributed2009} qui définisse des solutions
pour mettre en place du chiffrement par attribut. Consistant à émettre des clés
de chiffrements dépendantes de droits, et donc de permettre de définir des
politiques de sécurité. Des travaux comme \cite{YanFlexible2017} propose des
solutions plus adaptées au cloud en se basant sur des architectures plus
flexibles et avec une plus grande granularité dans la définition des droits.
Néanmoins sur les aspects du zero-trust et de la sécurité centrée sur
la donnée, il n'existe pas encore de travaux académiques concernant
une formalisation consensuelle de ces notions. Et ces termes sont
soumis à de nombreuses interprétations. Il reste donc à spécifier
formellement ces différents termes pour comprendre quelles propriétés
sont à satisfaire pour réaliser de la cohérence faible dans un
contexte zero-trust.
\subsection*{Implémentations Existantes}
Des projets actuels tentent d'implémenter des protocoles de cohérences faibles pour la mise en place d'applications collaboratives en temps réel. Parmi ces projets on peut citer yjs \cite{Yjs2023} qui implémente le protocole YATA \cite{NicolaescuRealTime2016} et qui permet d'assurer une convergence forte (ou SEC d'après le référentiel de Perrin) à travers un système de type CRDT.
D'autres projets plus anciens tel qu'Etherpad utilise des solutions plus simples à base de résolution de conflit continue, assurant aussi une convergence forte mais réalisant des opérations algorithmiques plus complexes en termes de mémoire et de temps de calcul vis-à-vis des CRDTs \cite{AppJetEtherpad2011}.
\section*{Objectifs}
Les objectifs de cette thèse sont à la fois d'étudier les trois types
de cohérence faible en situation byzantine et de définir des
algorithmes byzantins efficaces pour pouvoir les implémenter. Puisque
la cohérence causale est déjà bien étudiée, ce sont les deux autres
cohérences qui seront les principaux axes de recherche de cette thèse.
La première étape (WP1) consistera à étudier des solutions byzantines
sans primitives cryptographiques, ou avec des primitives
raisonnablement coûteuses, c'est-à-dire notamment sans calcul
homomorphe. Une étude des implémentations existantes sera réalisée
pour notamment déterminer les garanties offertes par ces solutions
dans le vocabulaire des cohérences faibles.
La deuxième étape (WP2) consistera à produire des solutions plus efficaces
mais qui utilisent des primitives cryptographiques nécessitant des
primitives de partage de secret avancées et/ou de calcul homomorphe.
Une dernière étape (WP3) consistera en la production d'une preuve de concept
de solution de stockage \textit{clef/valeurs} utilisant les algorithmes
retenus aux étapes précédentes.
\section*{Méthodologie et Planning}
Une revue précise des modèles de calcul distribué pour lesquels des
solutions (principalement de consistance causale) ont été proposées
sera établie dans le but de déterminer l'ensemble des hypothèses,
théoriques et pratiques, de validité de ces solutions. En parallèle de
cetté étude, en relation avec l'entreprise Scille, une liste
d'attaques sur les architectures pair-à-pairs à cohérence faible sera
établie. L'accent sera mis sur la production de connaissances
nouvelles (nouvelles solutions par rapport à l'état de l'art mais
également nouvelles attaques).
Les algorithmes seront tout d'abord validé de manière formelle
avant de voir une preuve de concept développée.
Le WP1 se déroulera en 2024, le WP2 en 2025, et le WP3 en ZO26.
\section*{Modalités de Suivi et d'Échange}
Le doctorant participe aux réunions hebdomadaires de suivi de
l'entreprise Scille. Les partenaires se rencontreront tous les trois
mois pour un point d'avancée sur les travaux.
Il participera également aux réunions physiques de
l'entreprise tous les 6 mois.
\section*{Moyens Matériels}
Le doctorant sera hébergé au Laboratoire d'Informatique et des
Systèmes. Il bénéficiera de l'environnement scientifique et technique
d'un laboratoire UMR CNRS de 800 personnes, dont environ 400 personnels permanents .
Du côté de l'entreprise Scille, qui fonctionne en \textit{full remote}, le
doctorant aura accès à un banc d'essai cloud hébergé par
l'entreprise.
\section*{Retombées Attendues}
Du côté du laboratoire LIS, les retombées attendues sont les publications scientifiques suivantes :
\begin{compactitem}
\item état de l'art et synthèse concernant les consistances faibles byzantines
\item propositions et preuves de nouveaux algorithmes dans le contexte zéro-trust
\end{compactitem}
Du côté de l'entreprise Scille, il est attendu une mini-maquette de
synchronisation et collaboration cloud, une preuve de concept des
algorithmes sus-cités ainsi que du conseil et de l'expertise dans le
domaine du "développement scientifique" des produits développés par Scille, notamment \texttt{parsec}.
\section*{Équipe}
\subsection*{Équipe Algorithmique Distribuée (DALGO)}
L'équipe Algorithmique Distribuée (responsable Arnaud Labourel) fait
partie du Laboratoire d'Informatique et Systèmes (LIS CNRS UMR 7020).
du Laboratoire d'Informatique et Systèmes (LIS CNRS UMR 7020). C'est
une équipe de recherche reconnue au plus haut niveau international,
avec 8 membres permanents dont les centres d'intérêt vont des
algorithmes distribués fiables, de la confidentialité dans les
systèmes distribués aux réseaux de communication, ainsi qu'aux
algorithmes de graphes, aux agents mobiles et à l'IoT,
\subsection*{Encadrants}
\textbf{Emmanuel Godard} est professeur à l'Université Aix-Marseille. Ses
intérêts de recherche portent principalement sur la compréhension et
la maximisation de la décentralisation (en un sens large) dans les
systèmes distribués. Il est expert en algorithmique et calculabilité distribuées.
\textbf{Corentin Travers} est Maître de Conférences à l'Université
Aix-Marseille. Ses intérêts de recherche portent sur les
algorithmes distributés robustes et efficaces pour les systèmes à
mémoire partagée ou les réseaux distribués. Il est expert en algorithmique et complexité distribuées.
\textbf{Marcos Medrano} est ingénieur R\&D chez Scille. Diplômé d'un master de recherche en sciences
de l'informatique et mathématique appliqué. Il est en charge de la stratégie de développement
du produit Parsec et réalise le lien entre les ingénieurs et les intervenants académiques.
\subsection*{Choix du Candidat}
L'équipe DALGO est partie prenante du Master "Fiabilité et Sécurité
Informatique" de l'Université Aix-Marseille. Ce parcours de master est
labellisé \textit{SecNumEdu} par l'ANSSI. À l'automne 2022, le sujet
proposé avec l'entreprise Scille a été présenté à l'ensemble des
étudiants de master. Suite à cet appel à candidature, M. Amaury Joly a
été retenu pour un stage de recherche préliminaire de 6 mois sur le
thème des consistances faibles au laboratoire LIS.
Les notes de M. Amaury Joly sont très bonnes, il obtient une mention
bien au master. Il présente en outre un très bon double profil à la
fois théorique et technique, sa motivation pour les activités de
recherche en lien avec la sécurité du Cloud est très forte, il est le
candidat parfait pour un tel sujet de recherche.
{\footnotesize
\nocite{*}
\bibliography{sujet-cifre.bib}
\bibliographystyle{alpha}
}
% LaTeX2e code generated by txt2tags 3.4 (http://txt2tags.org)
% cmdline: txt2tags -t tex sujet-cifre.t2t
\end{document}

View File

@ -0,0 +1,110 @@
\documentclass[11pt]{article}
\usepackage{graphicx}
\usepackage{paralist} %% needed for compact lists
\usepackage[normalem]{ulem} %% needed by strike
\usepackage[urlcolor=blue,colorlinks=true,breaklinks]{hyperref}
%%
\usepackage[utf8x]{inputenc} %% char encoding
\usepackage{framed} %% frame multipages
%% Autres Packages
%%\usepackage{fullpage}
\usepackage{a4wide}
%% Palatino for rm and math | Helvetica for ss | Courier for tt
\usepackage{mathpazo} %% math & rm
\linespread{1.05} %% Palatino needs more leading (space between lines)
\usepackage[scaled]{helvet} %% ss
\usepackage{courier} %% tt
\normalfont
\usepackage[T1]{fontenc}
\usepackage[francais]{babel} %% en francais
\usepackage{xspace} %% gestion des espaces après une macro
%% code Java
\usepackage{listings}
\lstset{breaklines}
\lstset{language=java}
%% latex code in the listings
\lstset{escapechar=§}
%%\lstset{numbers=left}
%%\lstset{frame=single}
\usepackage{xcolor}
%%
%% \usepackage{etoolbox} %%%% toggle
\usepackage{comment} %%%% comment env
%% \newtoggle{corr}
%% \toggleT2TMODE{corr}
%% \iftoggle{corr}{%%%%
%% \newenvironment{corrige}{\comment}{\endcomment}
%% }{%%%%
%% \newenvironment{corrige}{\begin{oframed}}{\end{oframed}}
%% }
%%%%%%%%%%%%%%
%% fancy et brouillon
%% Date en haut de page
%% A commenter pour la version finale
%%\usepackage[head=12pt,foot=36pt,voffset=-12pt]{geometry}
\usepackage[margin=2.5cm]{geometry}
\usepackage{fancyhdr}
%% Header and footer
\fancypagestyle{plain}{%%
\fancyhf{} %%clear head and footer
\fancyhead[C]{\thepage} %%draft
%%\fancyfoot[L]{\textbf{LIF}}
\fancyfoot[R]{\textbf{%(HEADER3)s}} %%except the page number
\renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{2pt}
\fancyfoot[C]{\textsc{SUJETCOURT}}
}
\fancypagestyle{premiere}{%% première page
\fancyhf{} %%clear head and footer
\fancyfoot[L]{\textbf{LIF}}
\fancyfoot[R]{\textbf{%(HEADER3)s}} %%except the page number
\renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{2pt}
\fancyfoot[C]{\textsc{SUJETCOURT}}
\fancyhead[C]{}%%\includegraphics[scale=0.25]{logo-lif.png}} %%UFR
}
\fancypagestyle{notete}{%% première page
\fancyhf{} %%clear head and footer
%%\fancyfoot[L]{\textbf{LIF}}
\fancyfoot[R]{\textbf{%(HEADER3)s}} %%except the page number
\renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{2pt}
\fancyfoot[C]{\textsc{Sujet}}
}
\usepackage{%(STYLE)s} %% user defined
%%
\newcommand{\myversion}{\textit{version du \today{}}}
\title{%%\includegraphics[scale=0.25]{logo-lif.png}\\\vspace{1cm}
%(HEADER1)s}
\author{%(HEADER2)s}
%%\date{%(HEADER3)s}
\pagestyle{plain}
\begin{document}
%%\maketitle
\begin{center}
{\LARGE %(HEADER1)s}
\vspace{0.3cm}
{\large \begin{minipage}{0.75\textwidth}
\begin{center}
%(HEADER2)s\\
%(HEADER3)s
\end{center}
\end{minipage}
}
\vspace{0.35cm}
\end{center}
%%\thispagestyle{premiere}
\thispagestyle{empty}
%%
%(BODY)s
\end{document}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

19
Readme.md Normal file
View File

@ -0,0 +1,19 @@
# Readme
## Liens utiles
### Git
Dépot git: <https://amauryjoly.fr/gitea/amaury_joly/bwconsistency>
Miror: <https://gitlab.lis-lab.fr/amaury.joly/bwconsistency>
# Readme
## Liens utiles
### Git
Dépot git: <https://amauryjoly.fr/gitea/amaury_joly/bwconsistency>
Miror: <https://gitlab.lis-lab.fr/amaury.joly/bwconsistency>

View File

@ -0,0 +1,212 @@
## Allow List over PC
### Modele
**Base de Mathieu**
Soit $\\Pi$ l'ensemble des processus $p_1, ... p_N$
$\\Pi_M \\subseteq \\Pi$ les processus autorisés à $APPEND(x)$
$\\Pi_V \\subseteq \\Pi$ les processus autorisés à $PROVE(x)$
Chaque processus est séquentiel mais le système est asynchrone (le $\\Delta$ de vitesse d'horloge relative est inconnue par les processus) Le système est crash prône
Tous les processus ont un identifiant et les IDs sont connues de tous les processus.
**Spécificité Message-Passing**
2 opérations possibles:
- $send(O, p_i)$
- $recv(O, p_i)$
$H$ l'ensemble des séquences d'opérations $H|p_i$ les opérations relatives à $p_i$ $H|x$ l'ensemble des séquences d'opérations relatives à l'objet $x$ Les processus peuvent être byzantin en ne suivant pas le protocole définit. On admet que la transmission des message respecte les propriétés de reliable broadcast. C'est a dire que tous les messages envoyés sont reçu par tous. Et que pour deux message envoyé dans un ordre précis par un même processus ils seront reçu dans ce même ordre par tous les autres processus.
### Problematique
$O$ ensemble des types d'opérations :
- $APPEND(x)$
- $PROVE(x)$
- $READ()$
On veut remplir les propriétés suivantes :
- Termination: toutes les opérations terminent par un "return"
- APPEND validity: Un APPEND(x) est valide ssi $\\forall p_i$ t.q. $send(APPEND(x)) \\in H| p_i$. $p_i \\in \\Pi_M \\subseteq \\Pi$
- PROVE validity: Un PROVE(x) est valide ssi $\\forall p_i$ t.q. $send(PROVE(x)) \\in H| p_i$. $p_i \\in \\Pi_V \\subseteq \\Pi$ ET un $APPEND(x)$ apparait dans $\\Pi_V$
- Progress: si un $APPPEND(x)$ est valide alors il exist $\\forall p_i$ un point dans $H|p_i$ tel que tous les $PROVE(x)$ sont valident.
- READ validity: $\\forall p_i$ l'opération $READ()$ doit retourner toutes les opérations $PROVE(...) \\in H|p_i$
### Algo
```
appends a set of objetcs
proves a set of tuples of (objetc, process id)
recv(APPEND(x), p_j)
if p_j \in \Pi_M
appends += x
return
recv(PROVE(x), p_j)
if p_j \in \Pi_V
if x \in appends
proves += (x, p_j)
return
APPEND()
if p_i \in \Pi_V
appends += x
send(APPEND(x), p_i)
return
PROVE(x)
if p_i \in \Pi_M
if x \in appends
proves += (x, p_i)
send(PROVE(x), p_i)
return
READ()
return proves
```
### Preuve
**Termination**
Toutes les fonctions sont séquentiels et synchrones. Il n'y a aucune boucle, les fonctions terminent forcements.
**APPEND Validity**
La condition `if p_j \in \Pi_M` dans la fonction APPEND(x) garantit qu'aucun processus légitime ne peut ajouter délément dans la whitelist si il n'est pas manageur. Cette même condition dans recv(APPEND(x)) garantit qu'aucun processus légitime n'acceptera d'ajout d'élément soumis par un processus non manageur. Cette garantit repose sur le fait que les identifiants sont infalsifiables.
**PROVE Validity**
La condition `if p_j \in \Pi_V` dans la fonction PROVE(x) garantit qu'aucun processus légitime ne peut ajouter délément dans la whitelist si il n'est pas validateur. Cette même condition dans recv(PROVE(x)) garantit qu'aucun processus légitime n'acceptera d'ajout d'élément soumis par un processus non validateur. Cette garantit repose sur le fait que les identifiants sont infalsifiables.
De même la condition `if x \in appends` dans PROVE(x) assure que le processus courant a déjà reçu ou émis lui même un APPEND(x), puisque la seule manière d'ajouter un élément a lensemble `appends` est via les fonctions recv(APPEND(x)) et APPEND(x) une fois que les conditions de APPEND Validity sont respectés. De la même manière cette condition dans recv(PROVE(x)) assure qu'une requête PROVE(x) envoyé par un validateur malveillant ne faisant pas suite à un APPEND(x) ne soit pas considéré par les processus légitimes.
**PROGRESS**
Étant donné que tout message est eventually reçu. Tout APPEND(x) valide sera envoyé via la fonction `send` et sera reçu dans un temps $\\delta t$ par tous les processus. Avec $\\delta t$ étant le temps de transmission le plus long entre deux processus. Cette borne supérieur $\\delta t$ peut etre définit dans un système synchrone en admettant une borne maximal pour la transmission la plus lente entre deux `p`. Assurant ainsi que chaque APPEND(x) valide sera considéré par l'ensemble du système à $t + \\delta t$.
Cependant dans un système asynchrone ce $\\delta t$ est par définition non définit, rendent la propriété de PROGRESS insatisfaisable.
**READ Validity**
Pour ce point il convient de démontrer que tout tuple dans proves se trouve bien dans $\\forall PROVE(..) \\in H|p_i$ tel que $p_i$ le processus invoquant le READ. L'ajout a l'ensemble proves dépend des fonctions PROVE() et recv(PROVE()).
Dans ces deux fonctions on assure déjà la validité des PROVE pour $p_i$. Tout PROVE valide reçu ou émis par p_i est donc ajouté dans proves, ce qui correspond bien aux opérations proves de $H|p_i$.
## Deny List over PC
### Modele
__Base de Mathieu__
Soit $\\Pi$ l'ensemble des processus $p_1, ... p_N$
$\\Pi_M \\subseteq \\Pi$ les processus autorisés à $APPEND(x)$
$\\Pi_V \\subseteq \\Pi$ les processus autorisés à $PROVE(x)$
Chaque processus est séquentiel mais le système est asynchrone (le $\\Delta$ de vitesse d'horloge relative est inconnue par les processus) Le système est crash prône
Tous les processus ont un identifiant et les ids sont connues de tous les processus.
**Spécificité Message-Passing**
2 opérations possibles:
- $send(O, p_i)$
- $recv(O, p_i)$
$H$ l'ensemble des séquences d'opérations $H|p_i$ les opérations relatives à $p_i$ $H|x$ l'ensemble des séquences d'opérations relatives à l'objet $x$ Les processus peuvent être byzantin en ne suivant pas le protocole définit. On admet que la transmission des message respecte les propriétés de reliable broadcast. C'est a dire que tous les messages envoyés sont reçu par tous. Et que pour deux message envoyé dans un ordre précis par un même processus ils seront reçu dans ce même ordre par tous les autres processus.
### Problématique
$O$ ensemble des types d'opérations :
- $APPEND(x)$
- $PROVE(x)$
- $READ()$
On veut remplir les propriétés suivantes :
- Termination: toutes les opérations terminent par un "return"
- APPEND validity: Un APPEND(x) est valide ssi $\\forall p_i$ t.q. $send(APPEND(x)) \\in H| p_i$. $p_i \\in \\Pi_M \\subseteq \\Pi$
- PROVE validity: Un PROVE(x) est __invalid__ ssi $\\forall p_i$ t.q. $send(PROVE(x)) \\in H| p_i$. $p_i \\in \\Pi_V \\subseteq \\Pi$ ET un $APPEND(x)$ apparait dans $\\Pi_V$
- PROVE Anti-Flickering: Si une opération PROVE(x) invalide est soumise ou recu par un processus alors toutes les opérations PROVE(x) futur seront invalides
- READ validity: $\\forall p_i$ l'opération $READ()$ doit retourner toutes les opérations $PROVE(...) \\in H|p_i$
### Algo
```
appends a set of objetcs
proves a set of tuples of (objetc, process id)
recv(APPEND(x), p_j)
if p_j \in \Pi_M
appends += x
return
recv(PROVE(x), p_j)
if p_j \in \Pi_V
if x \neg\in appends
proves += (x, p_j)
return
APPEND()
if p_i \in \Pi_V
appends += x
send(APPEND(x), p_i)
return
PROVE(x)
if p_i \in \Pi_M
if x \neg\in appends
proves += (x, p_i)
send(PROVE(x), p_i)
return
READ()
return proves
```
### Preuve
**Termination**
Toutes les fonctions sont séquentiels et synchrones. Il n'y a aucune boucle, les fonctions terminent forcements.
**APPEND Validity**
La condition `if p_j \in \Pi_M` dans la fonction APPEND(x) garantit qu'aucun processus légitime ne peut ajouter délément dans la whitelist si il n'est pas manageur. Cette même condition dans recv(APPEND(x)) garantit qu'aucun processus légitime n'acceptera d'ajout d'élément soumis par un processus non manageur. Cette garantit repose sur le fait que les identifiants sont infalsifiables.
**PROVE Validity**
La condition `if p_j \in \Pi_V` dans la fonction PROVE(x) garantit qu'aucun processus légitime ne peut ajouter délément dans la whitelist si il n'est pas validateur. Cette même condition dans recv(PROVE(x)) garantit qu'aucun processus légitime n'acceptera d'ajout d'élément soumis par un processus non validateur. Cette garantit repose sur le fait que les identifiants sont infalsifiables.
De même la condition `if x \neg\in appends` dans PROVE(x) assure que le processus courant n'a pas déjà reçu ou émis lui même un APPEND(x), puisque la seule manière d'ajouter un élément a lensemble `appends` est via les fonctions recv(APPEND(x)) et APPEND(x) une fois que les conditions de APPEND Validity sont respectés.
De la même manière cette condition dans recv(PROVE(x)) assure qu'une requête PROVE(x) envoyé par un validateur malveillant faisant suite à un APPEND(x) ne soit pas considéré par les processus legéitimes.
**ANTI-FLICKERING**
Étant donné que tout message est eventually reçu. Tout APPEND(x) valide sera envoyé via la fonction `send` et sera reçu dans un temps $\\delta t$ par tous les processus. Avec $\\delta t$ étant le temps de transmission le plus long entre deux processus. Cette borne supérieur $\\delta t$ peut etre définit dans un système synchrone en admettant une borne maximal pour la transmission la plus lente entre deux `p`. Assurant ainsi que chaque APPEND(x) valide sera considéré par l'ensemble du système à $t + \\delta t$.
Cependant dans un système asynchrone ce $\\delta t$ est par définition non définit, rendent la propriété d'anti-flickring insatisfaisable.
__READ Validity__
Pour ce point il convient de démontrer que tout tuple dans proves se trouve bien dans l'ensemble $E$, tel que $\\forall e \\in E$, $e = PROVE(x)$ et tel que $H'|p_i$ l'ensemble des opérations reçu et émise avant l'opération $e$, alors $\\nexists e' \\in H'|p_i$ t.q. $e' = APPEND(x)$ avec $p_i$ le processus invoquant le READ.
L'ajout a l'ensemble proves dépend des fonctions PROVE() et recv(PROVE()). Dans ces deux fonctions on assure déjà la validité des PROVE pour $p_i$. Tout PROVE valide reçu ou émis par p_i est donc ajouté dans proves, ce qui correspond bien aux opérations proves de $H|p_i$.
## Discussion
Il est impossible dimplémenter une AllowList ou DenyList dans un système asynchrone, ce qui conditionne déjà notre model sur ce point. Les propriétés de PROGRESS et d'ANTIFLICKERING étant directement lié à ce point.
Les points facilitant la résolution de notre problème sont d'une part la présence du ReliableBroadcast et d'autre part d'un identifiant infalsifiable. Les deux points étant lié puisque nous pouvons admettre que le reliable broadcast peut aussi s'occuper de l'authentification des messages, et de leur non répudiabilité.
Un axe d'amélioration est donc d'affaiblir le reliable broadcast pour ça il faut définir les propriétés essentiels a lexécution de notre algorithme.
### RB
- Non répudiabilité (une fois que le message ets envoyé il est impossible pour un processus de le nier)
- Tout message envoyé est recu par tout le monde(eventual delivery)
- Immutabilité du message une fois qu'il est émis

View File

@ -0,0 +1,60 @@
We consider a set of processes communicating asynchronously over reliable point-to-point channels. Each process maintains the following shared variables:
\begin{itemize}
\item \textbf{received}: the set of messages received (but not yet delivered).
\item \textbf{delivered}: the set of messages that have been received, ordered, and delivered.
\item \textbf{prop[$r$][$j$]}: the proposal set of process $j$ at round $r$. It contains the set of messages that process $j$ claims to have received but not yet delivered at round $r$, concatenated with its newly broadcast message.
\item \textbf{proves}: the current content of the \texttt{DenyList} registry, accessible via the operation \texttt{READ()}. It returns a list of tuples $(j, \texttt{PROVE}(r))$, each indicating that process $j$ has issued a valid \texttt{PROVE} for round $r$.
\item \textbf{winner$^r$}: the set of processes that have issued a valid \texttt{PROVE} operation for round $r$.
\item \textbf{RB-cast}: a reliable broadcast primitive that satisfies the properties defined in Section~1.1.2.
\item \textbf{APPEND$(r)$}, \textbf{PROVE$(r)$}: operations that respectively insert (APPEND) and attest (PROVE) the participation of a process in round $r$ in the DenyList registry.
\item \textbf{READ()}: retrieves the current local view of valid operations (APPENDs and PROVEs) from the DenyList.
\item \textbf{ordered$(S)$}: returns a deterministic total order over a set $S$ of messages (e.g., via hash or lexicographic order).
\end{itemize}
\resetalgline
\begin{algorithm}
\vspace{1em}
\textbf{RB-received$(m, S, r_0, j_0)$}
\begin{algorithmic}[1]
\State \nextalgline $\textit{received} \gets \textit{received} \cup \{m\}$
\State \nextalgline $\textit{prop}[r_0][j_0] \gets S$
\end{algorithmic}
\vspace{1em}
\textbf{AB-broadcast$(m, j_0)$}
\begin{algorithmic}[1]
\State \nextalgline $\textit{proves} \gets \texttt{READ}()$
\State \nextalgline $r_0 \gets \max\{r : \exists j,\ (j, \texttt{PROVE}(r)) \in \textit{proves}\} + 1$
\State \nextalgline $\texttt{RB-cast}(m, (\textit{received} \setminus \textit{delivered}) \cup \{m\}, r_0, j_0)$
\State \nextalgline \texttt{PROVE}$(r_0)$
\State \nextalgline \texttt{APPEND}$(r_0)$
\Repeat
\State \nextalgline $\textit{proves} \gets \texttt{READ}()$
\State \nextalgline $r_1 \gets \max\{r : \exists j,\ (j, \texttt{PROVE}(r)) \in \textit{proves}\} - 1$
\State \nextalgline $\textit{winner}^{r_1} \gets \{j : (j, \texttt{PROVE}(r_1)) \in \textit{proves}\}$
\State \nextalgline \textbf{wait} $\forall j \in \textit{winner}^{r_1},\ \textit{prop}[r_1][j] \neq \bot$
\Until{\nextalgline $\exists r_2,\ \exists j_2 \in \textit{winner}^{r_2},\ m \in \textit{prop}[r_2][j_2]$} \nextalgline
\end{algorithmic}
\vspace{1em}
\textbf{AB-listen}
\begin{algorithmic}[1]
\While{true}
\State \nextalgline $\textit{proves} \gets \texttt{READ}()$
\State \nextalgline $r_1 \gets \max\{r : \exists j,\ (j, \texttt{PROVE}(r)) \in \textit{proves}\} - 1$
\For{$r_2 \in [r_0, \dots, r_1]$} \nextalgline
\State \nextalgline \texttt{APPEND}$(r_2)$
\State \nextalgline $\textit{proves} \gets \texttt{READ}()$
\State \nextalgline $\textit{winner}^{r_2} \gets \{j : (i, \texttt{PROVE}(r_2)) \in \textit{proves}\}$
\State \nextalgline \textbf{wait} $\forall j \in \textit{winner}^{r_2},\ \textit{prop}[r_2][j] \neq \bot$
\State \nextalgline $M^{r_2} \gets \bigcup_{j \in \textit{winner}^{r_2}} \textit{prop}[r_2][j]$
\ForAll{$m \in \texttt{ordered}(M^{r_2})$} \nextalgline
\State \nextalgline $\textit{delivered} \gets \textit{delivered} \cup \{m\}$
\State \nextalgline \texttt{AB-deliver}$(m)$
\EndFor
\EndFor
\EndWhile
\end{algorithmic}
\end{algorithm}

View File

@ -0,0 +1,77 @@
\subsubsection{Model Properties}
The system consists of \textit{n} asynchronous processes communicating via reliable point-to-point message passing. \\
Each process has a unique, unforgeable identifier and knows the identifiers of all other processes. \\
Up to $f<n$ processes may crash (fail-stop). \\
The network is reliable: if a correct process sends a message to another correct process, it is eventually delivered. \\
Messages are uniquely identifiable: two messages sent by distinct processes or at different rounds are distinguishable \\
2 messages sent by the same processus in two differents rounds are differents \\
\begin{property}[Message Uniqueness]
If two messages are sent by different processes, or by the same process in different rounds, then the messages are distinct. \\
Formally : \\
\[
\forall p_1, p_2,\ \forall r_1, r_2,\ \forall m_1, m_2,\
\left(
\begin{array}{l}
\text{send}(p_1, r_1, m_1) \land \text{send}(p_2, r_2, m_2) \\
\land\ (p_1 \ne p_2 \lor r_1 \ne r_2)
\end{array}
\right)
\Rightarrow m_1 \ne m_2
\]
\end{property}
\subsubsection{Reliable Broadcast Properties}
\begin{property}{Integrity}
Every message received was previously sent. \\
Formally : \\
$\forall p_i : \text{bc-recv}_i(m) \Rightarrow \exists p_j : \text{bc-send}_j(m)$
\end{property}
\begin{property}{No Duplicates}
No message is received more than once at any single processor. \\
Formally : \\
$\forall m, \forall p_i: \text{bc-recv}_i(m) \text{ occurs at most once}$ \\
\end{property}
\begin{property}{Validity}
All messages broadcast by a correct process are eventually received by all non faulty processors. \\
Formally : \\
$\forall m, \forall p_i: \text{correct}(p_i) \wedge \text{bc-send}_i(m) => \forall p_j : \text{correct}(p_j) \Rightarrow \text{bc-recv}_j(m)$
\end{property}
\subsubsection{AtomicBroadcast Properties}
\begin{property}{AB Totally ordered}
$\forall m_1, m_2, \forall p_i, p_j : \text{ab-recv}_{p_i}(m_1) < \text{ab-recv}_{p_i}(m_2) \Rightarrow \text{ab-recv}_{p_j}(m_1) < \text{ab-recv}_{p_j}(m_2)$
\end{property}
\subsubsection{DenyList Properties}
Let $\Pi_M$ be the set of processes authorized to issue \texttt{APPEND} operations,
and $\Pi_V$ the set of processes authorized to issue \texttt{PROVE} operations. \\
Let $S$ be the set of valid values that may be appended. Let $\texttt{Seq}$ be
the linearization of operations recorded in the DenyList.
\begin{property}{APPEND Validity}
An operation $\texttt{APPEND}(x)$ is valid iff :
the issuing process $p \in \Pi_M$, and the value $x \in S$
\end{property}
\begin{property}{PROVE Validity}
An operation $\texttt{PROVE}(x)$ is valid iff:
the issuing process $p \in \Pi_V$, and there exists no $\texttt{APPEND}(x)$ that appears earlier in $\texttt{Seq}$.
\end{property}
\begin{property}{PROGRESS}
If an APPEND(x) is invoked by a correct process, then all correct processes will eventually be unable to PROVE(x).
\end{property}
\begin{property}{READ Validity}
READ() return a list of tuples who is a random permutation of all valids PROVE() associated to the identity of the emiter process.
\end{property}

View File

@ -0,0 +1,20 @@
\relax
\providecommand \babel@aux [2]{\global \let \babel@toc \@gobbletwo }
\@nameuse{bbl@beforestart}
\catcode `:\active
\catcode `;\active
\catcode `!\active
\catcode `?\active
\abx@aux@refcontext{nty/global//global/global/global}
\providecommand \oddpage@label [2]{}
\babel@aux{french}{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Model}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.1}Model Properties}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}AtomicBroadcast Properties}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.3}DenyList Properties}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Algo}{1}{}\protected@file@percent }
\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces AB\_Broadcast}}{2}{}\protected@file@percent }
\@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces AB\_Listen}}{2}{}\protected@file@percent }
\abx@aux@read@bbl@mdfivesum{76D65A242EC496C9B4361AF646FF12CB}
\gdef \@abspage@last{3}

View File

@ -0,0 +1,20 @@
% $ biblatex auxiliary file $
% $ biblatex bbl format version 3.3 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{ver@biblatex.sty}
{\@latex@error
{Missing 'biblatex' package}
{The bibliography requires the 'biblatex' package.}
\aftergroup\endinput}
{}
\endgroup
\endinput

View File

@ -0,0 +1,9 @@
[0] Config.pm:308> INFO - This is Biber 2.20
[1] Config.pm:311> INFO - Logfile is 'main.blg'
[69] biber:340> INFO - === Thu Apr 24, 2025, 18:19:12
[87] Biber.pm:420> INFO - Reading 'main.bcf'
[141] Biber.pm:994> INFO - Found 0 citekeys in bib section 0
[155] bbl.pm:676> INFO - Writing 'main.bbl' with encoding 'UTF-8'
[156] bbl.pm:779> INFO - Output to main.bbl
[157] Biber.pm:131> WARN - The file 'main.bcf' does not contain any citations!
[158] Biber.pm:133> INFO - WARNINGS: 1

View File

@ -0,0 +1,95 @@
# Fdb version 4
["biber main"] 1745518751.69811 "main.bcf" "main.bbl" "main" 1745518755.47995 0
"main.bcf" 1745518755.26652 108486 d8549f9e7d9f09af6a94b466d27b9f55 "pdflatex"
(generated)
"main.bbl"
"main.blg"
(rewritten before read)
["pdflatex"] 1745518754.18166 "/workspaces/containers/recherches/AllowListDenyList/main.tex" "main.pdf" "main" 1745518755.48238 0
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1136849721 2971 def0b6c1f0b107b3b936def894055589 ""
"/usr/local/texlive/2025/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx0700.tfm" 1136768653 3584 ca0c423beaacd28d53ddce5a826cd558 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1000.tfm" 1136768653 3584 2d666ecf6d466d8b007246bc2f94d9da ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1136768653 3584 402da0b29eafbad07963b1224b222f18 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm" 1136768653 3584 13049b61b922a28b158a38aeff75ee9b ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm" 1136768653 3584 f80ddd985bd00e29e9a6047ebd9d4781 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1440.tfm" 1136768653 3584 3169d30142b88a27d4ab0e3468e963a2 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1728.tfm" 1136768653 3584 3c76ccb63eda935a68ba65ba9da29f1a ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1000.tfm" 1136768653 3072 3bce340d4c075dffe6d4ec732b4c32fe ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1200.tfm" 1136768653 3072 8b5a64dc91775463bc95e2d818524028 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1248133631 36299 5f9df58c2139e7edcf37c8fca4bd384d ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb" 1248133631 36281 c355509802a035cadc5f15869451dcee ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1248133631 32569 5e5ddc8df908dea60932f3c484a54c0d ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx0700.pfb" 1215737283 144215 c89c56d5c5b828c5c1657b4326c29df7 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb" 1215737283 145408 43d44302ca7d82d487f511f83e309505 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb" 1215737283 140176 d4962f948b4cc0adf4d3dde77a128c95 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb" 1215737283 135942 859a90cad7494a1e79c94baf546d7de5 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb" 1215737283 138258 6525c253f16cededa14c7fd0da7f67b2 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb" 1215737283 136101 f533469f523533d38317ab5729d00c8a ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb" 1215737283 131438 3aa300b3e40e5c8ba7b4e5c6cebc5dd6 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb" 1215737283 186554 e8f0fa8ca05e038f257a06405232745f ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1200.pfb" 1215737283 198221 ca5aa71411090ef358a6cc78b7458365 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf" 1722030099 66864 5ea28be04c8922f57dc437cc5c1c2c31 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty" 1743197512 144118 8a0145ee10f36c9987d52d114dccd1b1 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini" 1733001190 6315 3c384dcbb287e14a2e736eeb5010b67f ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex" 1711748144 2142 2e5ecc022cd62b6d520b9630cf893dfe ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel/txtbabel.def" 1741723514 6833 ef397c732d8c72f527b197aa1623476d ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty" 1734129479 7984 7dbb9280f03c0a315425f1b4f35d43ee ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1701727651 17865 1a9bd36b4f98178fa551aca822290953 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty" 1500498588 167160 d91cee26d3ef5727644d2110445741dd ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/article.cls" 1738182759 20144 63d8bacaf52e5abf4db3bc322373e1d4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty" 1738182759 5275 0d62fb62162c7ab056e941ef18c5076d ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty" 1738182759 5525 9dced5929f36b19fa837947f5175b331 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/inputenc.sty" 1738182759 5048 0270515b828149155424600fd2d58ac5 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo" 1738182759 8448 5cf247d4bd0c7d5d711bbbdf111fae2e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx" 1609451401 1818 9ed166ac0a9204a8ebe450ca09db5dde ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx" 1609451401 25680 409c3f3d570418bc545e8065bebd0688 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg" 1342308459 69 249fa6df04d948e51b6d5c67bea30c42 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def" 1711143581 96838 228f189cb4020ea9f6d467af8aa859c2 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.sty" 1711143581 533961 a8d65602d822bf3d3c823e6dc4922bbc ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty" 1711143581 9961 107fdb78f652fccae7bce0d23bdc19cd ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def" 1643926307 13919 5426dbe90e723f089052b4e908b56ef9 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def" 1711143581 32761 18d14e3b502c120f79b2184de4e21d14 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx" 1678141846 4629 cda468e8a0b1cfa0f61872e171037a4b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx" 1711143581 35297 433adeecf04fccba5dc7668ba5058972 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/carlisle/scalefnt.sty" 1137109962 1360 df2086bf924b14b72d6121fe9502fcdb ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg" 1429144587 7068 06f8d141725d114847527a66439066b6 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def" 1712263026 22135 0975a49eeaed232aa861e9425ffb2e7c ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.sty" 1712263026 62767 e79d6d7a989e7da62dcf3d0a65c1faee ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1739306980 46850 d87daedc2abdc653769a6f1067849fe0 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty" 1717359999 2671 70891d50dac933918b827d326687c6e8 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty" 1666126449 2142 eae42205b97b7a3ad0e58db5fe99e3e6 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1716410060 29785 9f93ab201fe5dd053afcc6c1bcf7d266 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty" 1738271527 6565 f51d809db6193fae7b06c1bc26ca8f75 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1724879202 9783 ab4bee47700c04aadedb8da27591b0ab ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def" 1284153563 1620 fb1c32b818f2058eca187e5c41dfae77 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.sty" 1284153563 6187 b27afc771af565d3a9ff1ca7d16d0d46 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/authblk.sty" 1368488610 7016 985a983ce041cc8959cd31133cba0244 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/fullpage.sty" 1137110595 2789 05b418f78b224ec872f5b11081138605 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/relsize/relsize.sty" 1369619135 15542 c4cc3164fe24f2f2fbb06eb71b1da4c4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/tools/xspace.sty" 1717359999 4545 e3f4de576c914e2000f07f69a891c071 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/local/texlive/2025/texmf-dist/web2c/texmf.cnf" 1739380943 42148 61becc7c670cd061bb319c643c27fdd4 ""
"/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1743313660 5501089 f2ffe622267f7d8bfaba0244ab87ba6f ""
"/usr/local/texlive/2025/texmf-var/web2c/pdftex/pdflatex.fmt" 1743313810 3345755 ba2ca5aadbc395a8eb3e969a7d392ec2 ""
"/usr/local/texlive/2025/texmf.cnf" 1743313649 455 5b996dcaa0eb4ef14a83b026bc0a008c ""
"/workspaces/containers/recherches/AllowListDenyList/main.tex" 1745515390.16057 722 34633c768624cc239eef0942b140dea1 ""
"algo/index.tex" 1745516699.00079 1166 3401d17da50a7f871b536483996a0462 ""
"intro/index.tex" 1745518750.07112 2222 96d5bf33e15e2d99900cb9bb0955e210 ""
"main.aux" 1745518755.25965 1261 7295b00608a538129f1f3d8e1e94b611 "pdflatex"
"main.bbl" 1745518752.8063 466 76d65a242ec496c9b4361af646ff12cb "biber main"
"main.run.xml" 1745518755.27359 2301 7adc9b5a22e7927ebfdd8580ad5d647d "pdflatex"
"main.tex" 1745515390.16057 722 34633c768624cc239eef0942b140dea1 ""
(generated)
"main.aux"
"main.bcf"
"main.log"
"main.pdf"
"main.run.xml"
(rewritten before read)

View File

@ -0,0 +1,152 @@
PWD /workspaces/containers/recherches/AllowListDenyList
INPUT /usr/local/texlive/2025/texmf.cnf
INPUT /usr/local/texlive/2025/texmf-dist/web2c/texmf.cnf
INPUT /usr/local/texlive/2025/texmf-var/web2c/pdftex/pdflatex.fmt
INPUT /workspaces/containers/recherches/AllowListDenyList/main.tex
OUTPUT main.log
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/article.cls
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/article.cls
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/local/texlive/2025/texmf-dist/fonts/map/fontname/texfonts.map
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/txtbabel.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/authblk.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/authblk.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/fullpage.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/fullpage.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/relsize/relsize.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/relsize/relsize.sty
INPUT ./main.aux
INPUT ./main.aux
INPUT main.aux
OUTPUT main.aux
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx
OUTPUT main.bcf
INPUT main.bbl
INPUT ./main.bbl
INPUT ./main.bbl
INPUT ./main.bbl
INPUT main.bbl
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1728.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1200.tfm
OUTPUT main.pdf
INPUT /usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map
INPUT /usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1440.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm
INPUT ./intro/index.tex
INPUT ./intro/index.tex
INPUT intro/index.tex
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1000.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1000.tfm
INPUT ./algo/index.tex
INPUT ./algo/index.tex
INPUT algo/index.tex
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx0700.tfm
INPUT main.aux
INPUT main.run.xml
OUTPUT main.run.xml
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx0700.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1200.pfb

View File

@ -0,0 +1,491 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.3.30) 24 APR 2025 18:19
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**/workspaces/containers/recherches/AllowListDenyList/main.tex
(/workspaces/containers/recherches/AllowListDenyList/main.tex
LaTeX2e <2024-11-01> patch level 2
L3 programming layer <2025-01-18>
(/usr/local/texlive/2025/texmf-dist/tex/latex/base/article.cls
Document Class: article 2024/06/29 v1.4n Standard LaTeX document class
(/usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2024/06/29 v1.4n Standard LaTeX file (size option)
)
\c@part=\count196
\c@section=\count197
\c@subsection=\count198
\c@subsubsection=\count199
\c@paragraph=\count266
\c@subparagraph=\count267
\c@figure=\count268
\c@table=\count269
\abovecaptionskip=\skip49
\belowcaptionskip=\skip50
\bibindent=\dimen141
) (/usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
) (/usr/local/texlive/2025/texmf-dist/tex/latex/base/inputenc.sty
Package: inputenc 2024/02/08 v1.3d Input encoding file
\inpenc@prehook=\toks17
\inpenc@posthook=\toks18
) (/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.sty
Package: csquotes 2024-04-04 v5.2o context-sensitive quotations (JAW)
(/usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty
Package: etoolbox 2025/02/11 v2.5l e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count270
) (/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
\KV@toks@=\toks19
)
\csq@reset=\count271
\csq@gtype=\count272
\csq@glevel=\count273
\csq@qlevel=\count274
\csq@maxlvl=\count275
\csq@tshold=\count276
\csq@ltx@everypar=\toks20
(/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def
File: csquotes.def 2024-04-04 v5.2o csquotes generic definitions (JAW)
)
Package csquotes Info: Trying to load configuration file 'csquotes.cfg'...
Package csquotes Info: ... configuration file loaded successfully.
(/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg
File: csquotes.cfg
)) (/usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty
Package: babel 2025/03/27 v25.6 The multilingual framework for pdfLaTeX, LuaLaTeX and XeLaTeX
\babel@savecnt=\count277
\U@D=\dimen142
\l@unhyphenated=\language90
(/usr/local/texlive/2025/texmf-dist/tex/generic/babel/txtbabel.def)
\bbl@readstream=\read2
\bbl@dirlevel=\count278
(/usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf
Language: french 2024-07-25 v3.6c French support from the babel system
Package babel Info: Hyphen rules for 'acadian' set to \l@french
(babel) (\language30). Reported on input line 91.
Package babel Info: Hyphen rules for 'canadien' set to \l@french
(babel) (\language30). Reported on input line 92.
\FB@stdchar=\count279
Package babel Info: Making : an active character on input line 421.
Package babel Info: Making ; an active character on input line 422.
Package babel Info: Making ! an active character on input line 423.
Package babel Info: Making ? an active character on input line 424.
\FBguill@level=\count280
\FBold@everypar=\toks21
\FB@Mht=\dimen143
\mc@charclass=\count281
\mc@charfam=\count282
\mc@charslot=\count283
\std@mcc=\count284
\dec@mcc=\count285
\FB@parskip=\dimen144
\listindentFB=\dimen145
\descindentFB=\dimen146
\labelindentFB=\dimen147
\labelwidthFB=\dimen148
\leftmarginFB=\dimen149
\parindentFFN=\dimen150
\FBfnindent=\dimen151
)) (/usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
Package babel Info: Importing font and identification data for french
(babel) from babel-fr.ini. Reported on input line 11.
) (/usr/local/texlive/2025/texmf-dist/tex/latex/carlisle/scalefnt.sty) (/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/authblk.sty
Package: authblk 2001/02/27 1.3 (PWD)
\affilsep=\skip51
\@affilsep=\skip52
\c@Maxaffil=\count286
\c@authors=\count287
\c@affil=\count288
) (/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/fullpage.sty
Package: fullpage 1999/02/23 1.1 (PWD)
\FP@margin=\skip53
) (/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.sty
Package: biblatex 2024/03/21 v3.20 programmable bibliographies (PK/MW)
(/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO)
(/usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
) (/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2024/12/12 v1.0g TeX engine tests
) (/usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO)
)
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode found.
) (/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO)
(/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO)
)) (/usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.sty
Package: logreq 2010/08/04 v1.0 xml request logger
\lrq@indent=\count289
(/usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def
File: logreq.def 2010/08/04 v1.0 logreq spec v1.0
)) (/usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2024/03/16 v1.1e Standard LaTeX ifthen package (DPC)
) (/usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip17
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
\c@tabx@nest=\count290
\c@listtotal=\count291
\c@listcount=\count292
\c@liststart=\count293
\c@liststop=\count294
\c@citecount=\count295
\c@citetotal=\count296
\c@multicitecount=\count297
\c@multicitetotal=\count298
\c@instcount=\count299
\c@maxnames=\count300
\c@minnames=\count301
\c@maxitems=\count302
\c@minitems=\count303
\c@citecounter=\count304
\c@maxcitecounter=\count305
\c@savedcitecounter=\count306
\c@uniquelist=\count307
\c@uniquename=\count308
\c@refsection=\count309
\c@refsegment=\count310
\c@maxextratitle=\count311
\c@maxextratitleyear=\count312
\c@maxextraname=\count313
\c@maxextradate=\count314
\c@maxextraalpha=\count315
\c@abbrvpenalty=\count316
\c@highnamepenalty=\count317
\c@lownamepenalty=\count318
\c@maxparens=\count319
\c@parenlevel=\count320
\blx@tempcnta=\count321
\blx@tempcntb=\count322
\blx@tempcntc=\count323
\c@blx@maxsection=\count324
\blx@maxsegment@0=\count325
\blx@notetype=\count326
\blx@parenlevel@text=\count327
\blx@parenlevel@foot=\count328
\blx@sectionciteorder@0=\count329
\blx@sectionciteorderinternal@0=\count330
\blx@entrysetcounter=\count331
\blx@biblioinstance=\count332
\labelnumberwidth=\skip54
\labelalphawidth=\skip55
\biblabelsep=\skip56
\bibitemsep=\skip57
\bibnamesep=\skip58
\bibinitsep=\skip59
\bibparsep=\skip60
\bibhang=\skip61
\blx@bcfin=\read3
\blx@bcfout=\write3
\blx@langwohyphens=\language91
\c@mincomprange=\count333
\c@maxcomprange=\count334
\c@mincompwidth=\count335
Package biblatex Info: Trying to load biblatex default data model...
Package biblatex Info: ... file 'blx-dm.def' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def
File: blx-dm.def 2024/03/21 v3.20 biblatex datamodel (PK/MW)
)
Package biblatex Info: Trying to load biblatex custom data model...
Package biblatex Info: ... file 'biblatex-dm.cfg' not found.
\c@afterword=\count336
\c@savedafterword=\count337
\c@annotator=\count338
\c@savedannotator=\count339
\c@author=\count340
\c@savedauthor=\count341
\c@bookauthor=\count342
\c@savedbookauthor=\count343
\c@commentator=\count344
\c@savedcommentator=\count345
\c@editor=\count346
\c@savededitor=\count347
\c@editora=\count348
\c@savededitora=\count349
\c@editorb=\count350
\c@savededitorb=\count351
\c@editorc=\count352
\c@savededitorc=\count353
\c@foreword=\count354
\c@savedforeword=\count355
\c@holder=\count356
\c@savedholder=\count357
\c@introduction=\count358
\c@savedintroduction=\count359
\c@namea=\count360
\c@savednamea=\count361
\c@nameb=\count362
\c@savednameb=\count363
\c@namec=\count364
\c@savednamec=\count365
\c@translator=\count366
\c@savedtranslator=\count367
\c@shortauthor=\count368
\c@savedshortauthor=\count369
\c@shorteditor=\count370
\c@savedshorteditor=\count371
\c@labelname=\count372
\c@savedlabelname=\count373
\c@institution=\count374
\c@savedinstitution=\count375
\c@lista=\count376
\c@savedlista=\count377
\c@listb=\count378
\c@savedlistb=\count379
\c@listc=\count380
\c@savedlistc=\count381
\c@listd=\count382
\c@savedlistd=\count383
\c@liste=\count384
\c@savedliste=\count385
\c@listf=\count386
\c@savedlistf=\count387
\c@location=\count388
\c@savedlocation=\count389
\c@organization=\count390
\c@savedorganization=\count391
\c@origlocation=\count392
\c@savedoriglocation=\count393
\c@origpublisher=\count394
\c@savedorigpublisher=\count395
\c@publisher=\count396
\c@savedpublisher=\count397
\c@language=\count398
\c@savedlanguage=\count399
\c@origlanguage=\count400
\c@savedoriglanguage=\count401
\c@pageref=\count402
\c@savedpageref=\count403
\shorthandwidth=\skip62
\shortjournalwidth=\skip63
\shortserieswidth=\skip64
\shorttitlewidth=\skip65
\shortauthorwidth=\skip66
\shorteditorwidth=\skip67
\locallabelnumberwidth=\skip68
\locallabelalphawidth=\skip69
\localshorthandwidth=\skip70
\localshortjournalwidth=\skip71
\localshortserieswidth=\skip72
\localshorttitlewidth=\skip73
\localshortauthorwidth=\skip74
\localshorteditorwidth=\skip75
Package biblatex Info: Trying to load compatibility code...
Package biblatex Info: ... file 'blx-compat.def' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def
File: blx-compat.def 2024/03/21 v3.20 biblatex compatibility (PK/MW)
)
Package biblatex Info: Trying to load generic definitions...
Package biblatex Info: ... file 'biblatex.def' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def
File: biblatex.def 2024/03/21 v3.20 biblatex compatibility (PK/MW)
\c@textcitecount=\count404
\c@textcitetotal=\count405
\c@textcitemaxnames=\count406
\c@biburlbigbreakpenalty=\count407
\c@biburlbreakpenalty=\count408
\c@biburlnumpenalty=\count409
\c@biburlucpenalty=\count410
\c@biburllcpenalty=\count411
\biburlbigskip=\muskip18
\biburlnumskip=\muskip19
\biburlucskip=\muskip20
\biburllcskip=\muskip21
\c@smartand=\count412
)
Package biblatex Info: Trying to load bibliography style 'numeric'...
Package biblatex Info: ... file 'numeric.bbx' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
File: numeric.bbx 2024/03/21 v3.20 biblatex bibliography style (PK/MW)
Package biblatex Info: Trying to load bibliography style 'standard'...
Package biblatex Info: ... file 'standard.bbx' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
File: standard.bbx 2024/03/21 v3.20 biblatex bibliography style (PK/MW)
\c@bbx:relatedcount=\count413
\c@bbx:relatedtotal=\count414
))
Package biblatex Info: Trying to load citation style 'numeric'...
Package biblatex Info: ... file 'numeric.cbx' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
File: numeric.cbx 2024/03/21 v3.20 biblatex citation style (PK/MW)
Package biblatex Info: Redefining '\cite'.
Package biblatex Info: Redefining '\parencite'.
Package biblatex Info: Redefining '\footcite'.
Package biblatex Info: Redefining '\footcitetext'.
Package biblatex Info: Redefining '\smartcite'.
Package biblatex Info: Redefining '\supercite'.
Package biblatex Info: Redefining '\textcite'.
Package biblatex Info: Redefining '\textcites'.
Package biblatex Info: Redefining '\cites'.
Package biblatex Info: Redefining '\parencites'.
Package biblatex Info: Redefining '\smartcites'.
)
Package biblatex Info: Trying to load configuration file...
Package biblatex Info: ... file 'biblatex.cfg' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg
File: biblatex.cfg
)
Package biblatex Info: Input encoding 'utf8' detected.
Package biblatex Info: Document encoding is UTF8 ....
(/usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty
Package: expl3 2025-01-18 L3 programming layer (loader)
(/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2024-05-08 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count415
\l__pdf_internal_box=\box52
))
Package biblatex Info: ... and expl3
(biblatex) 2025-01-18 L3 programming layer (loader)
(biblatex) is new enough (at least 2020/04/06),
(biblatex) setting 'casechanger=expl3'.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty (/usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
Package: xparse 2024-08-16 L3 Experimental document command parser
)
Package: blx-case-expl3 2024/03/21 v3.20 expl3 case changing code for biblatex
)) (/usr/local/texlive/2025/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
Package: algorithm2e 2017/07/18 v5.2 algorithms environments
\c@AlgoLine=\count416
\algocf@hangindent=\skip76
(/usr/local/texlive/2025/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
Package: ifoddpage 2022/10/18 v1.2 Conditionals for odd/even page detection
\c@checkoddpage=\count417
) (/usr/local/texlive/2025/texmf-dist/tex/latex/tools/xspace.sty
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
) (/usr/local/texlive/2025/texmf-dist/tex/latex/relsize/relsize.sty
Package: relsize 2013/03/29 ver 4.1
)
\skiptotal=\skip77
\skiplinenumber=\skip78
\skiprule=\skip79
\skiphlne=\skip80
\skiptext=\skip81
\skiplength=\skip82
\algomargin=\skip83
\skipalgocfslide=\skip84
\algowidth=\dimen152
\inoutsize=\dimen153
\inoutindent=\dimen154
\interspacetitleruled=\dimen155
\interspacealgoruled=\dimen156
\interspacetitleboxruled=\dimen157
\algocf@ruledwidth=\skip85
\algocf@inoutbox=\box53
\algocf@inputbox=\box54
\AlCapSkip=\skip86
\AlCapHSkip=\skip87
\algoskipindent=\skip88
\algocf@nlbox=\box55
\algocf@hangingbox=\box56
\algocf@untilbox=\box57
\algocf@skipuntil=\skip89
\algocf@capbox=\box58
\algocf@lcaptionbox=\skip90
\algoheightruledefault=\skip91
\algoheightrule=\skip92
\algotitleheightruledefault=\skip93
\algotitleheightrule=\skip94
\c@algocfline=\count418
\c@algocfproc=\count419
\c@algocf=\count420
\algocf@algoframe=\box59
\algocf@algobox=\box60
)
\c@theorem=\count421
Package csquotes Info: Checking for multilingual support...
Package csquotes Info: ... found 'babel' package.
Package csquotes Info: Adjusting default style.
Package csquotes Info: Redefining alias 'default' -> 'french'.
(./main.aux
Package babel Info: 'french' activates 'french' shorthands.
(babel) Reported on input line 10.
)
\openout1 = `main.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Info: Redefining \degres on input line 18.
LaTeX Info: Redefining \up on input line 18.
Package biblatex Info: Trying to load language 'french'...
Package biblatex Info: ... file 'french.lbx' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx
File: french.lbx 2024/03/21 v3.20 biblatex localization (PK/MW)
)
Package biblatex Info: Input encoding 'utf8' detected.
Package biblatex Info: Automatic encoding selection.
(biblatex) Assuming data encoding 'utf8'.
\openout3 = `main.bcf'.
Package biblatex Info: Trying to load bibliographic data...
Package biblatex Info: ... file 'main.bbl' found.
(./main.bbl)
Package biblatex Info: Reference section=0 on input line 18.
Package biblatex Info: Reference segment=0 on input line 18.
[1
{/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc}] (./intro/index.tex
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 5.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 5.
Underfull \hbox (badness 10000) in paragraph at lines 12--14
[]
) (./algo/index.tex
[1]
Underfull \hbox (badness 10000) in paragraph at lines 21--26
[]
)
LaTeX Warning: Empty bibliography on input line 38.
[2] (./main.aux)
***********
LaTeX2e <2024-11-01> patch level 2
L3 programming layer <2025-01-18>
***********
Package logreq Info: Writing requests to 'main.run.xml'.
\openout1 = `main.run.xml'.
)
Here is how much of TeX's memory you used:
12402 strings out of 473190
235027 string characters out of 5715806
1085239 words of memory out of 5000000
35573 multiletter control sequences out of 15000+600000
566378 words of font info for 46 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
66i,18n,81p,745b,1731s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx0700.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1200.pfb>
Output written on main.pdf (3 pages, 194797 bytes).
PDF statistics:
80 PDF objects out of 1000 (max. 8388607)
48 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000)

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,63 @@
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[french]{babel}
\usepackage[affil-it]{authblk}
\usepackage{fullpage}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{biblatex}
% \usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage[noend]{algpseudocode}
\algrenewcommand\alglinenumber[1]{\tiny #1}
\usepackage{etoolbox}
% --- Partage du compteur de lignes entre plusieurs algorithmes
\makeatletter
\newcounter{algoLine}
\renewcommand{\alglinenumber}[1]{\arabic{algoLine}}
\newcommand{\nextalgline}{\stepcounter{algoLine}}
\newcommand{\resetalgline}{\setcounter{algoLine}{1}}
\makeatother
\newtheorem{property}{Property}
\newtheorem{theorem}{Theorem}
\newtheorem{proof}{Proof}
\addbibresource{sources.bib}
\begin{document}
\title{???}
\author{JOLY Amaury \\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin}
\affil{Aix-Marseille Université, Scille}
\date{\today}
\begin{titlepage}
\maketitle
\end{titlepage}
\section{Introduction}
\subsection{Model}
\input{intro/index.tex}
\subsection{Algorithms}
\input{algo/index.tex}
\subsection{proof}
\input{proof/index.tex}
\printbibliography
\end{document}

View File

@ -0,0 +1,121 @@
\begin{theorem}[Integrity]
If a message $m$ is delivered by any process, then it was previously broadcast by some process via the \texttt{AB-broadcast} primitive.
\end{theorem}
\begin{proof}
Let $j$ be a process such that $\text{AB-deliver}_j(m)$ occurs.
\begin{align*}
&\text{AB-deliver}_j(m) & \text{(line 24)} \\
\Rightarrow\; &\exists r_0 : m \in \texttt{ordered}(M^{r_0}) & \text{(line 22)} \\
\Rightarrow\; &\exists j_0 : j_0 \in \textit{winner}^{r_0} \land m \in \textit{prop}[r_0][j_0] & \text{(line 21)} \\
\Rightarrow\; &\exists m_0, S_0 : \text{RB-received}_{j_0}(m_0, S_0, r_0, j_0) \land m \in S_0 & \text{(line 2)} \\
\Rightarrow\; &S_0 = (\textit{received}_{j_0} \setminus \textit{delivered}_{j_0}) \cup \{m_1\} & \text{(line 5)} \\
\Rightarrow\; &\textbf{if } m_1 = m: \exists\, \text{AB-broadcast}_{j_0}(m) \hspace{1em} \square \\
&\textbf{else if } m_1 \neq m: \\
&\quad m \in \textit{received}_{j_0} \setminus \textit{delivered}_{j_0} \Rightarrow m \in \textit{received}_{j_0} \land m \notin \textit{delivered}_{j_0} \\
&\quad \exists j_1, S_1, r_1 : \text{RB-received}_{j_1}(m, S_1, r_1, j_1) & \text{(line 1)} \\
&\quad \Rightarrow \exists\, \text{AB-broadcast}_{j_1}(m) \hspace{1em} \square & \text{(line 5)}
\end{align*}
\end{proof}
\begin{theorem}[No Duplication]
No message is delivered more than once by any process.
\end{theorem}
\begin{proof}
Let $j$ be a process such that both $\text{AB-deliver}_j(m_0)$ and $\text{AB-deliver}_j(m_1)$ occur, with $m_0 = m_1$.
\begin{align*}
&\text{AB-deliver}_j(m_0) \wedge \text{AB-deliver}_j(m_1) & \text{(line 24)} \\
\Rightarrow\; & m_0, m_1 \in \textit{delivered}_j & \text{(line 23)} \\
\Rightarrow\; &\exists r_0, r_1 : m_0 \in M^{r_0} \wedge m_1 \in M^{r_1} & \text{(line 22)} \\
\Rightarrow\; &\exists j_0, j_1 : m_0 \in \textit{prop}[r_0][j_0] \wedge m_1 \in \textit{prop}[r_1][j_1] \\
&\hspace{2.5em} \wedge\ j_0 \in \textit{winner}^{r_0},\ j_1 \in \textit{winner}^{r_1} & \text{(line 21)}
\end{align*}
We now distinguish two cases:
\vspace{0.5em}
\noindent\textbf{Case 1:} $r_0 = r_1$:
\begin{itemize}
\item If $j_0 \neq j_1$: this contradicts message uniqueness, since two different processes would include the same message in round $r_0$.
\item If $j_0 = j_1$:
\begin{align*}
\Rightarrow & |{(j_0, \texttt{PROVE}(r_0)) \in proves}| \geq 2 & \text{(line 19)}\\
\Rightarrow &\texttt{PROVE}_{j_0}(r_0) \text{ occurs 2 times} & \text{(line 6)}\\
\Rightarrow &\texttt{AB-Broadcast}_{j_0}(m_0) \text{ were invoked two times} \\
\Rightarrow &(max\{r: \exists j, (j, \texttt{PROVE}(r)) \in proves\} + 1) & \text{(line 4)}\\
&\text{ returned the same value in two differents invokations of \texttt{AB-Broadcast}} \\
&\textbf{But } \texttt{PROVE}(r_0) \Rightarrow \texttt{max}\{r: \exists j, (j, \texttt{PROVE}(r)) \in proves\} + 1 > r_0 \\
&\text{It's impossible for a single process to submit two messages in the same round} \hspace{1em} \\
\end{align*}
\end{itemize}
% \vspace{0.5em}
\noindent\textbf{Case 2:} $r_0 \ne r_1$:
\begin{itemize}
\item If $j_0 \neq j_1$: again, message uniqueness prohibits two different processes from broadcasting the same message in different rounds.
\item If $j_0 = j_1$: message uniqueness also prohibits the same process from broadcasting the same message in two different rounds.
\end{itemize}
In all cases, we reach a contradiction. Therefore, it is impossible for a process to deliver the same message more than once. $\square$
\end{proof}
% \subsubsection{No Duplication}
% $M = (\bigcup_{i \rightarrow |P|} AB\_receieved_{i}(m)), \not\exists m_0 m_1 \in M \text{s.t. } m_1 = m_2$
% \\
% Proof \\
% \begin{align*}
% &\text{Soit } i, m_0, m_1 \text{ tels que } m_0 = m_1 \\
% &\exists r_0,\ m_0 \in M^{r_0} \\
% &\exists r_1,\ m_1 \in M^{r_1} \\
% &\text{if } r_0 = r_1 \\
% &\quad \exists j_0, j_1,\ \text{prop tq } \text{prop}[r_0][j_0] = m_0,\ \text{prop}[r_0][j_1] = m_1 \quad j_0, j_1 \in \text{winnner}^{r_0} \\
% &\quad \text{if} j_0 \neq j_1 \\
% &\quad\quad \text{On admet qu'il est impossible pour un processus de soumettre le même msg qu'un autre} \\
% &\quad \text{if } j_0 = j_1 \\
% &\quad\quad j_0 \text{ a émis son } \text{PROVE}(r_0) \text{ valide 2 fois}\\
% &\quad\quad \text{Impossible si } j_0 \text{ correct} \\
% &\text{else} \\
% &\quad \exists j_0, j_1,\ \text{prop tq } \text{prop}[r_0][j_0] = m_0,\ \text{prop}[r_0][j_1] = m_1 \quad j_0, j_1 \in \text{winnner}^{r_0} \\
% &\quad \text{if } j_0 \neq j_1 \\
% &\quad\quad \text{On admet qu'il est impossible pour un processus de soumettre le même msg qu'un autre} \\
% &\quad \text{if } j_0 = j_1 \\
% &j_0 \text{ à emis et validé 2 fois le même messages a des rounds différents.}\\
% &\text{On admet que deux message identiques soumis a des rounds différents ne peuvent être identiques}
% \end{align*}
\subsubsection{Broadcast Validity}
$\exists j_0, m_0 \quad AB\_broadcast_{j_0}(m_0) \Rightarrow \forall j_1 \quad AB\_received_{j_1}(m_0)$ \\
Proof:
\begin{align*}
&\exists j_0, m_0 \quad AB\_broadcast_{j_0}(m_0) \\
&\forall j_1, \exists r_1 \quad RB\_deliver_{j_1}^{r_1}(m_0) \\
&\exists receieved : m_0 \in receieved_{j_1} \\
&\exists r_0 : RB\_deliver(PROP, r_0, m_0) & LOOP\\
&\exists prop: \text{prop}[r_0][j_0] = m_0 \\
&\text{if } \not\exists (j_0, PROVE(r_0)) \in \text{proves} \\
&\quad r_0 += 1 \\
&\quad \text{jump to LOOP} \\
&\text{else} \\
&\quad \exists \text{winner}, \text{winner}^{r_0} \ni j_0 \\
&\quad \exists M^{r_0} \ni (\text{prop}[r_0][j_0] = m_0) \\
&\quad \forall j_1, \quad AB\_deliver_{j_1}(m_0)
\end{align*}
\subsubsection*{AB receive width}
\[
\exists j_0, m_0 \quad AB\_deliver_{j_0}(m_0) \Rightarrow \forall j_1\ AB\_deliver_{j_1}
\]
Proof:
\begin{align*}
&\forall j_0, m_0\ AB\_deliver_{j_0}(m_0) \Rightarrow \exists j_1 \text{ correct }, AB\_broadcast(m_0) \\
&\exists j_0, m_0 \quad AB\_broadcast_{j_0}(m_0) \Rightarrow \forall j_1,\ AB\_deliver_{j_1}(m_0)
\end{align*}

View File

View File

@ -0,0 +1,258 @@
@article{saito_optimistic_2005,
title = {Optimistic {Replication}},
volume = {37},
url = {https://inria.hal.science/hal-01248208},
doi = {10.1145/1057977.1057980},
abstract = {Data replication is a key technology in distributed systems that enables higher availability and performance. This article surveys optimistic replication algorithms. They allow replica contents to diverge in the short term to support concurrent work practices and tolerate failures in low-quality communication links. The importance of such techniques is increasing as collaboration through wide-area and mobile networks becomes popular.Optimistic replication deploys algorithms not seen in traditional “pessimistic” systems. Instead of synchronous replica coordination, an optimistic algorithm propagates changes in the background, discovers conflicts after they happen, and reaches agreement on the final contents incrementally.We explore the solution space for optimistic replication algorithms. This article identifies key challenges facing optimistic replication systems---ordering operations, detecting and resolving conflicts, propagating changes efficiently, and bounding replica divergence---and provides a comprehensive survey of techniques developed for addressing these challenges.},
language = {en},
number = {1},
urldate = {2023-06-09},
journal = {ACM Computing Surveys},
author = {Saito, Yasushi and Shapiro, Marc},
year = {2005},
pages = {42},
file = {Saito et Shapiro - 2005 - Optimistic Replication.pdf:/home/amaury/Zotero/storage/4WJX5IAN/Saito et Shapiro - 2005 - Optimistic Replication.pdf:application/pdf},
}
@article{singh_zeno_2009,
title = {Zeno: {Eventually} {Consistent} {Byzantine}-{Fault} {Tolerance}},
abstract = {Many distributed services are hosted at large, shared, geographically diverse data centers, and they use replication to achieve high availability despite the unreachability of an entire data center. Recent events show that non-crash faults occur in these services and may lead to long outages. While Byzantine-Fault Tolerance (BFT) could be used to withstand these faults, current BFT protocols can become unavailable if a small fraction of their replicas are unreachable. This is because existing BFT protocols favor strong safety guarantees (consistency) over liveness (availability).},
language = {en},
author = {Singh, Atul and Fonseca, Pedro and Kuznetsov, Petr and Rodrigues, Rodrigo and Maniatis, Petros},
year = {2009},
file = {Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:/home/amaury/Zotero/storage/K6J2UEBK/Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:application/pdf},
}
@inproceedings{shakarami_refresh_2019,
title = {Refresh {Instead} of {Revoke} {Enhances} {Safety} and {Availability}: {A} {Formal} {Analysis}},
volume = {LNCS-11559},
shorttitle = {Refresh {Instead} of {Revoke} {Enhances} {Safety} and {Availability}},
url = {https://inria.hal.science/hal-02384596},
doi = {10.1007/978-3-030-22479-0_16},
abstract = {Due to inherent delays and performance costs, the decision point in a distributed multi-authority Attribute-Based Access Control (ABAC) system is exposed to the risk of relying on outdated attribute values and policy; which is the safety and consistency problem. This paper formally characterizes three increasingly strong levels of consistency to restrict this exposure. Notably, we recognize the concept of refreshing attribute values rather than simply checking the revocation status, as in traditional approaches. Refresh replaces an older value with a newer one, while revoke simply invalidates the old value. Our lowest consistency level starts from the highest level in prior revocation-based work by Lee and Winslett (LW). Our two higher levels utilize the concept of request time which is absent in LW. For each of our levels we formally show that using refresh instead of revocation provides added safety and availability.},
language = {en},
urldate = {2023-06-09},
publisher = {Springer International Publishing},
author = {Shakarami, Mehrnoosh and Sandhu, Ravi},
month = jul,
year = {2019},
pages = {301},
file = {Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:/home/amaury/Zotero/storage/XQNWKF7H/Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:application/pdf},
}
@article{misra_axioms_1986,
title = {Axioms for memory access in asynchronous hardware systems},
volume = {8},
issn = {0164-0925, 1558-4593},
url = {https://dl.acm.org/doi/10.1145/5001.5007},
doi = {10.1145/5001.5007},
abstract = {The problem of concurrent accesses to registers by asynchronous components is considered. A set of axioms about the values in a register during concurrent accesses is proposed. It is shown that if these axioms are met by a register, then concurrent accesses to it may be viewed as nonconcurrent, thus making it possible to analyze asynchronous algorithms without elaborate timing analysis of operations. These axioms are shown, in a certain sense, to be the weakest. Motivation for this work came from analyzing low-level hardware components in a VLSI chip which concurrently accesses a flip-flop.},
language = {en},
number = {1},
urldate = {2023-06-08},
journal = {ACM Transactions on Programming Languages and Systems},
author = {Misra, J.},
month = jan,
year = {1986},
pages = {142--153},
file = {Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:/home/amaury/Zotero/storage/KZP2774N/Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:application/pdf},
}
@article{lamport_interprocess_1986,
title = {On interprocess communication},
volume = {1},
issn = {1432-0452},
url = {https://doi.org/10.1007/BF01786228},
doi = {10.1007/BF01786228},
abstract = {Interprocess communication is studied without assuming any lower-level communication primitives. Three classes of communication registers are considered, and several constructions are given for implementing one class of register with a weaker class. The formalism developed in Part I is used in proving the correctness of these constructions.},
language = {en},
number = {2},
urldate = {2023-06-08},
journal = {Distributed Computing},
author = {Lamport, Leslie},
month = jun,
year = {1986},
keywords = {Communication Network, Computer Hardware, Computer System, Operating System, System Organization},
pages = {86--101},
file = {Lamport - 1986 - On interprocess communication.pdf:/home/amaury/Zotero/storage/XV7AEARN/Lamport - 1986 - On interprocess communication.pdf:application/pdf},
}
@book{lipton_pram_1988,
title = {{PRAM}: {A} {Scalable} {Shared} {Memory}},
shorttitle = {{PRAM}},
language = {en},
publisher = {Princeton University, Department of Computer Science},
author = {Lipton, Richard J. and Sandberg, Jonathan S.},
year = {1988},
note = {Google-Books-ID: 962epwAACAAJ},
file = {Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:/home/amaury/Zotero/storage/3ZYT3WT4/Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:application/pdf},
}
@inproceedings{hutto_slow_1990,
title = {Slow memory: weakening consistency to enhance concurrency in distributed shared memories},
shorttitle = {Slow memory},
url = {https://www.computer.org/csdl/proceedings-article/icdcs/1990/00089297/12OmNvSKNPr},
doi = {10.1109/ICDCS.1990.89297},
abstract = {The use of weakly consistent memories in distributed shared memory systems to combat unacceptable network delay and to allow such systems to scale is proposed. Proposed memory correctness conditions are surveyed, and how they are related by a weakness hierarchy is demonstrated. Multiversion and messaging interpretations of memory are introduced as means of systematically exploring the space of possible memories. Slow memory is presented as a memory that allows the effects of writes to propagate slowly through the system, eliminating the need for costly consistency maintenance protocols that limit concurrency. Slow memory processes a valuable locality property and supports a reduction from traditional atomic memory. Thus slow memory is as expressive as atomic memory. This expressiveness is demonstrated by two exclusion algorithms and a solution to M.J. Fischer and A. Michael's (1982) dictionary problem on slow memory.},
language = {English},
urldate = {2023-06-06},
publisher = {IEEE Computer Society},
author = {Hutto, P. W. and Ahamad, M.},
month = jan,
year = {1990},
pages = {302,303,304,305,306,307,308,309--302,303,304,305,306,307,308,309},
file = {Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:/home/amaury/Téléchargements/Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:application/pdf},
}
@article{lamport_how_1979,
title = {How to {Make} a {Multiprocessor} {Computer} {That} {Correctly} {Executes} {Multiprocess} {Programs}},
volume = {C-28},
issn = {1557-9956},
doi = {10.1109/TC.1979.1675439},
abstract = {Many large sequential computers execute operations in a different order than is specified by the program. A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order. For a multiprocessor computer, such a correct execution by each processor does not guarantee the correct execution of the entire program. Additional conditions are given which do guarantee that a computer correctly executes multiprocess programs.},
number = {9},
journal = {IEEE Transactions on Computers},
author = {{Lamport}},
month = sep,
year = {1979},
note = {Conference Name: IEEE Transactions on Computers},
keywords = {Computer design, concurrent computing, hardware correctness, multiprocessing, parallel processing},
pages = {690--691},
file = {IEEE Xplore Abstract Record:/home/amaury/Zotero/storage/IVGSSPNE/1675439.html:text/html;Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:/home/amaury/Zotero/storage/GY8CWGUV/Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:application/pdf},
}
@article{mosberger_memory_1993,
title = {Memory consistency models},
volume = {27},
issn = {0163-5980},
url = {https://dl.acm.org/doi/10.1145/160551.160553},
doi = {10.1145/160551.160553},
abstract = {This paper discusses memory consistency models and their influence on software in the context of parallel machines. In the first part we review previous work on memory consistency models. The second part discusses the issues that arise due to weakening memory consistency. We are especially interested in the influence that weakened consistency models have on language, compiler, and runtime system design. We conclude that tighter interaction between those parts and the memory system might improve performance considerably.},
language = {en},
number = {1},
urldate = {2023-06-06},
journal = {ACM SIGOPS Operating Systems Review},
author = {Mosberger, David},
month = jan,
year = {1993},
pages = {18--26},
file = {Mosberger - 1993 - Memory consistency models.pdf:/home/amaury/Zotero/storage/VF2ZNK6A/Mosberger - 1993 - Memory consistency models.pdf:application/pdf},
}
@incollection{goos_causal_1995,
address = {Berlin, Heidelberg},
title = {From causal consistency to sequential consistency in shared memory systems},
volume = {1026},
isbn = {978-3-540-60692-5 978-3-540-49263-4},
url = {http://link.springer.com/10.1007/3-540-60692-0_48},
language = {en},
urldate = {2023-06-06},
booktitle = {Foundations of {Software} {Technology} and {Theoretical} {Computer} {Science}},
publisher = {Springer Berlin Heidelberg},
author = {Raynal, Michel and Schiper, André},
editor = {Goos, Gerhard and Hartmanis, Juris and Leeuwen, Jan and Thiagarajan, P. S.},
year = {1995},
doi = {10.1007/3-540-60692-0_48},
note = {Series Title: Lecture Notes in Computer Science},
pages = {180--194},
file = {Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:/home/amaury/Zotero/storage/B8UNWUSA/Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:application/pdf},
}
@phdthesis{kumar_fault-tolerant_2019,
type = {{PhD} {Thesis}},
title = {Fault-{Tolerant} {Distributed} {Services} in {Message}-{Passing} {Systems}},
school = {Texas A\&M University},
author = {Kumar, Saptaparni},
year = {2019},
file = {Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:/home/amaury/Zotero/storage/Q9XK77W9/Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:application/pdf;Snapshot:/home/amaury/Zotero/storage/7JB26RAJ/1.html:text/html},
}
@article{somasekaram_high-availability_2022,
title = {High-{Availability} {Clusters}: {A} {Taxonomy}, {Survey}, and {Future} {Directions}},
volume = {187},
issn = {01641212},
shorttitle = {High-{Availability} {Clusters}},
url = {http://arxiv.org/abs/2109.15139},
doi = {10.1016/j.jss.2021.111208},
abstract = {The delivery of key services in domains ranging from finance and manufacturing to healthcare and transportation is underpinned by a rapidly growing number of mission-critical enterprise applications. Ensuring the continuity of these complex applications requires the use of software-managed infrastructures called high-availability clusters (HACs). HACs employ sophisticated techniques to monitor the health of key enterprise application layers and of the resources they use, and to seamlessly restart or relocate application components after failures. In this paper, we first describe the manifold uses of HACs to protect essential layers of a critical application and present the architecture of high availability clusters. We then propose a taxonomy that covers all key aspects of HACs -- deployment patterns, application areas, types of cluster, topology, cluster management, failure detection and recovery, consistency and integrity, and data synchronisation; and we use this taxonomy to provide a comprehensive survey of the end-to-end software solutions available for the HAC deployment of enterprise applications. Finally, we discuss the limitations and challenges of existing HAC solutions, and we identify opportunities for future research in the area.},
urldate = {2023-06-06},
journal = {Journal of Systems and Software},
author = {Somasekaram, Premathas and Calinescu, Radu and Buyya, Rajkumar},
month = may,
year = {2022},
note = {arXiv:2109.15139 [cs, eess]},
keywords = {Computer Science - Distributed, Parallel, and Cluster Computing, Computer Science - Networking and Internet Architecture, Electrical Engineering and Systems Science - Systems and Control},
pages = {111208},
file = {arXiv.org Snapshot:/home/amaury/Zotero/storage/B4KCP9BG/2109.html:text/html;Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:/home/amaury/Zotero/storage/K3LQZLC8/Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:application/pdf},
}
@book{perrin_concurrence_2017,
title = {Concurrence et cohérence dans les systèmes répartis},
isbn = {978-1-78405-295-9},
abstract = {La société moderne est de plus en plus dominée par la société virtuelle, le nombre dinternautes dans le monde ayant dépassé les trois milliards en 2015. A la différence de leurs homologues séquentiels, les systèmes répartis sont beaucoup plus difficiles à concevoir, et sont donc sujets à de nombreux problèmes.La cohérence séquentielle fournit la même vue globale à tous les utilisateurs, mais le confort d\&\#39;utilisation qu\&\#39;elle apporte est trop coûteux, voire impossible, à mettre en oeuvre à grande échelle. Concurrence et cohérence dans les systèmes répartis examine les meilleures façons de spécifier les objets que lon peut tout de même implémenter dans ces systèmes.Cet ouvrage explore la zone grise des systèmes répartis et dresse une carte des critères de cohérence faible, identifiant plusieurs familles et démontrant comment elles peuvent sintégrer dans un langage de programmation.},
language = {fr},
publisher = {ISTE Group},
author = {Perrin, Matthieu},
month = sep,
year = {2017},
note = {Google-Books-ID: 6DRlDwAAQBAJ},
file = {Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:/home/amaury/Téléchargements/Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:application/pdf},
}
@article{van_der_linde_practical_2020,
title = {Practical client-side replication: weak consistency semantics for insecure settings},
volume = {13},
issn = {2150-8097},
shorttitle = {Practical client-side replication},
url = {https://dl.acm.org/doi/10.14778/3407790.3407847},
doi = {10.14778/3407790.3407847},
abstract = {Client-side replication and direct client-to-client synchronization can be used to create highly available, low-latency interactive applications. Causal consistency, the strongest available consistency model under network partitions, is an attractive consistency model for these applications.},
language = {en},
number = {12},
urldate = {2023-06-06},
journal = {Proceedings of the VLDB Endowment},
author = {Van Der Linde, Albert and Leitão, João and Preguiça, Nuno},
month = aug,
year = {2020},
pages = {2590--2605},
file = {Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:/home/amaury/Zotero/storage/5TJ3SA56/Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:application/pdf},
}
@article{decandia_dynamo_2007,
title = {Dynamo: {Amazon}s {Highly} {Available} {Key}-value {Store}},
abstract = {Reliability at massive scale is one of the biggest challenges we face at Amazon.com, one of the largest e-commerce operations in the world; even the slightest outage has significant financial consequences and impacts customer trust. The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world. At this scale, small and large components fail continuously and the way persistent state is managed in the face of these failures drives the reliability and scalability of the software systems.},
language = {en},
author = {DeCandia, Giuseppe and Hastorun, Deniz and Jampani, Madan and Kakulapati, Gunavardhan and Lakshman, Avinash and Pilchin, Alex and Sivasubramanian, Swaminathan and Vosshall, Peter and Vogels, Werner},
year = {2007},
file = {DeCandia et al. - Dynamo Amazons Highly Available Key-value Store.pdf:/home/amaury/Zotero/storage/KDHRPBGR/DeCandia et al. - Dynamo Amazons Highly Available Key-value Store.pdf:application/pdf},
}
@misc{misra_byzantine_2021,
title = {Byzantine {Fault} {Tolerant} {Causal} {Ordering}},
url = {http://arxiv.org/abs/2112.11337},
abstract = {Causal ordering in an asynchronous system has many applications in distributed computing, including in replicated databases and real-time collaborative software. Previous work in the area focused on ordering point-to-point messages in a fault-free setting, and on ordering broadcasts under various fault models. To the best of our knowledge, Byzantine faulttolerant causal ordering has not been attempted for point-topoint communication in an asynchronous setting. In this paper, we first show that existing algorithms for causal ordering of point-to-point communication fail under Byzantine faults. We then prove that it is impossible to causally order messages under point-to-point communication in an asynchronous system with one or more Byzantine failures. We then present two algorithms that can causally order messages under Byzantine failures, where the network provides an upper bound on the message transmission time. The proofs of correctness for these algorithms show that it is possible to achieve causal ordering for point-to-point communication under a stronger asynchrony model where the network provides an upper bound on message transmission time. We also give extensions of our two algorithms for Byzantine fault-tolerant causal ordering of multicasts.},
language = {en},
urldate = {2023-07-12},
publisher = {arXiv},
author = {Misra, Anshuman and Kshemkalyani, Ajay},
month = dec,
year = {2021},
note = {arXiv:2112.11337 [cs]},
keywords = {Computer Science - Distributed, Parallel, and Cluster Computing},
file = {Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:/home/amaury/Zotero/storage/P2R366US/Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:application/pdf},
}
@inproceedings{tseng_distributed_2019,
title = {Distributed {Causal} {Memory} in the {Presence} of {Byzantine} {Servers}},
doi = {10.1109/NCA.2019.8935059},
abstract = {We study distributed causal shared memory (or distributed read/write objects) in the client-server model over asynchronous message-passing networks in which some servers may suffer Byzantine failures. Since Ahamad et al. proposed causal memory in 1994, there have been abundant research on causal storage. Lately, there is a renewed interest in enforcing causal consistency in large-scale distributed storage systems (e.g., COPS, Eiger, Bolt-on). However, to the best of our knowledge, the fault-tolerance aspect of causal memory is not well studied, especially on the tight resilience bound. In our prior work, we showed that 2 f+1 servers is the tight bound to emulate crash-tolerant causal shared memory when up to f servers may crash. In this paper, we adopt a typical model considered in many prior works on Byzantine-tolerant storage algorithms and quorum systems. In the system, up to f servers may suffer Byzantine failures and any number of clients may crash. We constructively present an emulation algorithm for Byzantine causal memory using 3 f+1 servers. We also prove that 3 f+1 is necessary for tolerating up to f Byzantine servers. In other words, we show that 3 f+1 is a tight bound. For evaluation, we implement our algorithm in Golang and compare their performance with two state-of-the-art fault-tolerant algorithms that ensure atomicity in the Google Cloud Platform.},
booktitle = {2019 {IEEE} 18th {International} {Symposium} on {Network} {Computing} and {Applications} ({NCA})},
author = {Tseng, Lewis and Wang, Zezhi and Zhao, Yajie and Pan, Haochen},
month = sep,
year = {2019},
note = {ISSN: 2643-7929},
keywords = {asynchrony, Byzantine faults, causal memory, Computer crashes, Consensus protocol, distributed storage system, Emulation, evaluation, Fault tolerance, Fault tolerant systems, History, Servers, tight condition},
pages = {1--8},
file = {IEEE Xplore Abstract Record:/home/amaury/Zotero/storage/DDV34ULW/8935059.html:text/html},
}

View File

@ -0,0 +1,49 @@
# Enumération de la bibliographie étudié
## Cohérence
### Très pertinents
__perrin_concurrence_2017__, "Concurrence et cohérence dans les systèmes répartis":
Etat de l'art sur la cohérence dans les systèmes repartis. Présentation d'une approche de modélisation des histoires concurentes. Formaisations de différents critères de cohérences. Comparaison et "hierarchisation" des différents critères de cohérences.
### Intéressants mais redondants
__lamport_interprocess_1986__, "On interprocess communication":
Formalisation d'une cohérence séquentiel "single writer"
__misra_axioms_1986__, "Axioms for memory access in asynchronous hardware systems":
Exetnsion de lamport_interprocess_1986 dans une approche "multi-writer"
__lipton_pram_1988__, "{PRAM}: A Scalable Shared Memory":
Definition de la mémoire PRAM (cohérence pipeline).
## Cohérence en contextes byzantins
### Algorithmes
__van_der_linde_practical_2020__, "Practical client-side replication: weak consistency semantics for insecure settings":
Algorithme pour de la Cohérence causale BFT. (Reflexions sur des erreurs byzantines possible + algo et implé)
__kumar_fault-tolerant_2019__, "Fault-Tolerant Distributed Services in Message-Passing Systems":
Pas spécifiquement à propos des fautes byzantines dans la cohérence faible mais fait un panorama des differentes fautes non-byzantine possibles dans les systèmes distribués.
__singh_zeno_2009__, "Zeno: Eventually Consistent Byzantine-Fault Tolerance":
Algorithme pour de la convergence BFT. (Reflexions sur des erreurs byzanties possible + algo et implé)
__tseng_distributed_2019__, "Algo BFT pour cohérence causale (preuve + experiences)"
__misra_byzantine_2021__, "Preuve d'impossibilité de BFT dans un certain contexte pour de la cohérence causale + 2 algo pour de la cohérence causale BFT"4
## YJS
articles
- blog post: <https://blog.kevinjahns.de/are-crdts-suitable-for-shared-editing/>
- A string-wise CRDT algorithm for smart and large-scale collaborative editing systems <https://www.sciencedirect.com/science/article/abs/pii/S1474034616301811>
- Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types
## Complexity and specification of collaborative text editing
- Specification and space complexity of collaborative text editing Attiya et. all PODC/TCS
- Replicated data types: specification, verification, optimality Gosman et. al POPL (2014)

View File

@ -0,0 +1,26 @@
# Articles à traiter
- [x] Tame the Wild with Byzantine Linearizability (DISC 2021)
- [ ] Atomic Register Abstractions for Byzantine-Prone
Distributed Systems, Extended Version
<https://hal.science/hal-04213718/document>
- [ ] <https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf?TB_iframe=true&width=370.8&height=658.8>
- [ ] [https://www.sciencedirect.com/science/article/abs/pii/S0167404821002601](https://www.sciencedirect.com/science/article/abs/pii/S0167404821002601/)
- [ ] @ARTICLE{9585170,
  author={Shore, Malcolm and Zeadally, Sherali and Keshariya, Astha},
  journal={Computer},
  title={Zero Trust: The What, How, Why, and When},
  year={2021},
  volume={54},
  number={11},
  pages={26-35},
  doi={10.1109/MC.2021.3090018}}
- [ ] @ARTICLE{9773102,
  author={Syed, Naeem Firdous and Shah, Syed W. and Shaghaghi, Arash and Anwar, Adnan and Baig, Zubair and Doss, Robin},
  journal={IEEE Access},
  title={Zero Trust Architecture (ZTA): A Comprehensive Survey},
  year={2022},
  volume={10},
  number={},
  pages={57143-57179},
  doi={10.1109/ACCESS.2022.3174679}}