1Copyright (C) 2005, 2006, 2007, 2009, 2015, 2016, 2017, 2018, 2019
2 Heiko Stamer <HeikoStamer@gmx.net>
3 Permission is granted to copy, distribute and/or modify this document
4 under the terms of the GNU Free Documentation License, Version 1.3
5 or any later version published by the Free Software Foundation;
6 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
7 Texts. A copy of the license is included in the section entitled
8 "APPENDIX: GNU Free Documentation License".
9
10Introduction
11------------
12 LibTMCG is a free C++ library for creating secure and verifiable online
13 card games. The library contains a sort of useful classes, algorithms,
14 and high-level protocols to support an application programmer in writing
15 such software. The most remarkable feature is the absence of a trusted
16 third party (TTP), i.e., neither a central game server nor trusted
17 hardware components are necessary.
18 With the present library there is no need for an independent referee,
19 because the applied protocols provide a basic level of confidentiality
20 and verifiability by itself. Consequently, the library is well-suited
21 for peer-to-peer (P2P) environments where no TTP is available.
22 Of course, we cannot avoid that malicious players share information about
23 their private cards, but the protocols ensure that the shuffle of the deck
24 is performed randomly (presumed that at least one player is honest) and
25 thus the cards will be distributed uniformly among the players. Further,
26 no coalition can learn the private cards of a player against his will
27 (except for trivial conclusions). The corresponding cryptographic problem,
28 actually called ``Mental Poker'', has been studied since 1979 (Shamir,
29 Rivest, and Adleman) by many authors. LibTMCG provides the first practical
30 implementation of such protocols.
31
32 The implementation relies on advanced cryptographic techniques---the
33 so-called `zero-knowledge proofs'. Using these building blocks the
34 high-level protocols minimize the effect of coalitions and preserve the
35 confidentiality of the players' strategy, i.e., the participants are not
36 required to reveal their cards at the end of the game to show that they
37 did not cheat. For many operations of Schindelhauer's toolbox the library
38 provides optimized protocols based on standard cryptographic assumptions,
39 e.g. Decisional Diffie Hellman (DDH) in groups of prime-order over a
40 finite field. Therefore a reasonable level of performance is obtained.
41
42 LibTMCG is Free Software according to the definition of the Free Software
43 Foundation. The source code is released under the GNU General Public License.
44
45Security
46--------
47 ``Mental Poker'' solutions cannot prevent that malicious players exchange
48 private information, for example, by telephone or electronic devices.
49 Cryptographic protocols can only minimize the effect of such colluding
50 parties and try to protect the confidentiality or integrity of a card
51 operation for honest players. But even this protection often relies on
52 number-theoretical hardness assumptions which are believed to be true,
53 e.g. problems like factoring products of large prime numbers or computing
54 discrete logarithms in some mathematical structures. That means, strict
55 proofs for the hardness of these problems are not known, and it is not very
56 likely that such proofs will ever be found. However, almost all public key
57 cryptosystems rely on such assumptions and therefore you should not worry
58 about this issue as long as reasonable security parameters are chosen.
59
60 LibTMCG was originally designed to provide security in the so-called
61 ``honest-but-curious'' (aka ``semi-honest'' or passive) adversary model.
62 That means, all participants follow the protocol instructions properly
63 but they may gather information and share them within a coalition to
64 obtain an advantage in the game. Thus we are basically not concerned
65 with robustness and availability issues which are hard to solve in almost
66 asynchronous environments like the Internet. However, the most operations
67 are verifiable such that cheating can be detected. To obtain this
68 verifiability, the protocols deploy so-called zero-knowledge proofs
69 which yield no further knowledge but the validity of a statement. The
70 soundness error of these proofs is bounded by a fixed security parameter
71 $\kappa$. Depending on your application scenario this parameter should
72 be chosen such that there is a reasonable tradeoff between the cheating
73 probability (which is less or equal than $2^{-\kappa}$) and the produced
74 computational and communication complexity. Finally, some of the protocols
75 (e.g. the efficient shuffle argument by Groth) are only zero-knowledge with
76 respect to a so-called ``honest verifier'' who follows all protocol
77 instructions faithfully. Since version 1.2.0 of LibTMCG we use a two-party
78 version of a distributed coin flipping protocol by Jarecki and Lysyanskaya
79 to protect against malicious verifiers in that case. The non-interactive
80 zero-knowledge proofs of knowledge (NIZK) does not have this problem,
81 however, they require an additional cryptographic assumption: the security
82 of this protocols was proved in the so-called random oracle model (ROM).
83
84 Unfortunately, in practice there is another substantial problem with the
85 detection of cheaters: it requires that an authenticated broadcast channel
86 has been set up, where all players have read/write access in order to perform
87 a complaint resolution within the game session. There exist protocols
88 (so-called ``reliable broadcast'' or even better ``atomic broadcast'')
89 for creating such a broadcast primitive, however, only under the additional
90 condition that the number of parties $t$ who act faulty or even malicious is
91 reasonable small. In almost full asynchronous environments like the Internet
92 resilience (sometimes called robustness) is achievable for $t < n/3$ only,
93 where $n$ denotes the total number of parties engaged in the protocol.
94 LibTMCG provides a well-known protocol for reliable broadcast due to Bracha
95 in a slightly optimized variant by Cachin, Kursawe, Petzold, and Shoup. It
96 works for $n >= 2$ parties, however, t-resilience with $t > 0$ is achieved
97 for $n > 3$ only. This protocol ensures simple reliable broadcast but not
98 the more elaborated Byzantine fault tolerant agreement (or the equivalent
99 terminating reliable broadcast), i.e., the adversary can still influence the
100 underlying point-to-point network such that this broadcast protocol does not
101 terminate for some parties.
102 Please note that the application programmer must decide, where the use of
103 such a limited broadcast channel is neccesary and appropriate. However,
104 without reliable broadcast you should take into account that not necessarily
105 the player acting as prover is the source of evil, if a verification
106 procedure fails. This level of uncertainty is the main reason for our still
107 limited adversary model.
108
109 Note that it is not known, whether the used protocols retain their important
110 zero-knowledge property, when they are composed and executed in a concurrent
111 setting. Thus the application programmer should be careful and avoid parallel
112 protocol sessions. It is a challenging research project to create a protocol
113 suite whose security can be proven in the UC-framework of Canetti.
114 Furthermore, those protocols should employ so-called concurrent zero-knowledge
115 proofs to cover such issues and environments.
116
117 LibTMCG was carefully implemented with respect to simple timing attacks.
118 Therefore we loose some efficiency, e.g., during modular exponentiations.
119 However, it is strongly recommended to leave the timing attack protection
120 turned on unless you know exactly where it is not needed. Please note,
121 there are other side-channel attacks (e.g. cache access) that have not
122 been considered yet.
123
124 SECURITY ADVICE: We have implemented all cryptographic primitives according
125 to the cited research papers and to the best of our knowledge. However, we
126 can not eliminate any possibility of bugs or introduced insecurity, because
127 the implementation of such complex protocols is always an error-prone
128 process. Thus we encourage readers with advanced cryptographic background
129 to review the source code of LibTMCG.
130
131 Please report any complaint or correction proposal.
132
133Requirements
134------------
135 You need the following programs, libraries and appropriate header files to
136 build (GNU gcc/g++ >= 4.0.x or higher is recommended) LibTMCG successfully:
137
138 * GNU Multiple Precision Arithmetic Library (libgmp), version >= 4.2.0,
139 https://gmplib.org/
140 * GNU Crypto Library (libgcrypt), version >= 1.6.0,
141 https://gnupg.org/download/index.html
142 * GNU Privacy Guard Error Code Library (libgpg-error), version >= 1.12,
143 https://gnupg.org/download/index.html
144 * GNU info program and utilities (texinfo), version >= 6.0
145 https://www.gnu.org/software/texinfo/
146
147 The following libraries are optional (however, they are helpful in order to
148 prevent single point of failures e.g. in random number generation):
149
150 * Botan: Crypto and TLS for C++11, version >= 2.x
151 https://botan.randombit.net/
152
153 The library was tested (++ successful, -- erroneous) on the following
154 platforms with the given compilers, respectively:
155
156 ++ GNU/Linux (Gentoo Linux) x86_64 gcc 8.2.0 (details omitted)
157 ++ GNU/Linux (Gentoo Linux) x86_64 clang 8.0.0 (details omitted)
158 ++ GNU/Linux (Debian Linux) x86_64 gcc 6.3.0 (details omitted)
159 ++ GNU/Linux (Arch Linux) x86_64 gcc 7.2.0 (details omitted)
160 ++ GNU/Linux (Trisquel Linux) x86_64 gcc 4.8.4 (details omitted)
161 ++ OpenBSD 6.4 amd64 gcc 4.2.1 (details omitted)
162 ++ FreeBSD 12.0 amd64 gcc 8.2.0 (details omitted)
163
164Build & Install
165---------------
166 You should proceed by executing the following magic commands:
167
168 1. ./configure
169 2. make
170 3. make install
171
172Bugs, Contribution, Source code
173-------------------------------
174 Please send detailed bug reports to Heiko Stamer <HeikoStamer@gmx.net>.
175 You can get the latest sources from the source repository by using the
176 command
177
178 git clone https://git.savannah.gnu.org/git/libtmcg
179
180 The GNU C++ compiler from GCC and the GNU Make program is required.
181 Additionally you will need the following free software packages:
182
183 * GNU Autoconf, version >= 2.61, https://www.gnu.org/software/autoconf/
184 * GNU Automake, version >= 1.12, https://www.gnu.org/software/automake/
185 * GNU Libtool, version >= 2.4.2, https://www.gnu.org/software/libtool/
186 * GNU Texinfo, version >= 5.0, https://www.gnu.org/software/texinfo/
187
188Copyright and License of this software
189--------------------------------------
190 (C) 2005, 2006, 2007, 2009,
191 2015, 2016, 2017, 2018, 2019 Heiko Stamer <HeikoStamer@gmx.net>
192 GNU General Public License version 2
193
194 Please have a look at file 'COPYING' and https://www.fsf.org/.
195
196APPENDIX: GNU Free Documentation License
197----------------------------------------
198
199 GNU Free Documentation License
200 Version 1.3, 3 November 2008
201
202
203 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
204 <http://fsf.org/>
205 Everyone is permitted to copy and distribute verbatim copies
206 of this license document, but changing it is not allowed.
207
2080. PREAMBLE
209
210The purpose of this License is to make a manual, textbook, or other
211functional and useful document "free" in the sense of freedom: to
212assure everyone the effective freedom to copy and redistribute it,
213with or without modifying it, either commercially or noncommercially.
214Secondarily, this License preserves for the author and publisher a way
215to get credit for their work, while not being considered responsible
216for modifications made by others.
217
218This License is a kind of "copyleft", which means that derivative
219works of the document must themselves be free in the same sense. It
220complements the GNU General Public License, which is a copyleft
221license designed for free software.
222
223We have designed this License in order to use it for manuals for free
224software, because free software needs free documentation: a free
225program should come with manuals providing the same freedoms that the
226software does. But this License is not limited to software manuals;
227it can be used for any textual work, regardless of subject matter or
228whether it is published as a printed book. We recommend this License
229principally for works whose purpose is instruction or reference.
230
231
2321. APPLICABILITY AND DEFINITIONS
233
234This License applies to any manual or other work, in any medium, that
235contains a notice placed by the copyright holder saying it can be
236distributed under the terms of this License. Such a notice grants a
237world-wide, royalty-free license, unlimited in duration, to use that
238work under the conditions stated herein. The "Document", below,
239refers to any such manual or work. Any member of the public is a
240licensee, and is addressed as "you". You accept the license if you
241copy, modify or distribute the work in a way requiring permission
242under copyright law.
243
244A "Modified Version" of the Document means any work containing the
245Document or a portion of it, either copied verbatim, or with
246modifications and/or translated into another language.
247
248A "Secondary Section" is a named appendix or a front-matter section of
249the Document that deals exclusively with the relationship of the
250publishers or authors of the Document to the Document's overall
251subject (or to related matters) and contains nothing that could fall
252directly within that overall subject. (Thus, if the Document is in
253part a textbook of mathematics, a Secondary Section may not explain
254any mathematics.) The relationship could be a matter of historical
255connection with the subject or with related matters, or of legal,
256commercial, philosophical, ethical or political position regarding
257them.
258
259The "Invariant Sections" are certain Secondary Sections whose titles
260are designated, as being those of Invariant Sections, in the notice
261that says that the Document is released under this License. If a
262section does not fit the above definition of Secondary then it is not
263allowed to be designated as Invariant. The Document may contain zero
264Invariant Sections. If the Document does not identify any Invariant
265Sections then there are none.
266
267The "Cover Texts" are certain short passages of text that are listed,
268as Front-Cover Texts or Back-Cover Texts, in the notice that says that
269the Document is released under this License. A Front-Cover Text may
270be at most 5 words, and a Back-Cover Text may be at most 25 words.
271
272A "Transparent" copy of the Document means a machine-readable copy,
273represented in a format whose specification is available to the
274general public, that is suitable for revising the document
275straightforwardly with generic text editors or (for images composed of
276pixels) generic paint programs or (for drawings) some widely available
277drawing editor, and that is suitable for input to text formatters or
278for automatic translation to a variety of formats suitable for input
279to text formatters. A copy made in an otherwise Transparent file
280format whose markup, or absence of markup, has been arranged to thwart
281or discourage subsequent modification by readers is not Transparent.
282An image format is not Transparent if used for any substantial amount
283of text. A copy that is not "Transparent" is called "Opaque".
284
285Examples of suitable formats for Transparent copies include plain
286ASCII without markup, Texinfo input format, LaTeX input format, SGML
287or XML using a publicly available DTD, and standard-conforming simple
288HTML, PostScript or PDF designed for human modification. Examples of
289transparent image formats include PNG, XCF and JPG. Opaque formats
290include proprietary formats that can be read and edited only by
291proprietary word processors, SGML or XML for which the DTD and/or
292processing tools are not generally available, and the
293machine-generated HTML, PostScript or PDF produced by some word
294processors for output purposes only.
295
296The "Title Page" means, for a printed book, the title page itself,
297plus such following pages as are needed to hold, legibly, the material
298this License requires to appear in the title page. For works in
299formats which do not have any title page as such, "Title Page" means
300the text near the most prominent appearance of the work's title,
301preceding the beginning of the body of the text.
302
303The "publisher" means any person or entity that distributes copies of
304the Document to the public.
305
306A section "Entitled XYZ" means a named subunit of the Document whose
307title either is precisely XYZ or contains XYZ in parentheses following
308text that translates XYZ in another language. (Here XYZ stands for a
309specific section name mentioned below, such as "Acknowledgements",
310"Dedications", "Endorsements", or "History".) To "Preserve the Title"
311of such a section when you modify the Document means that it remains a
312section "Entitled XYZ" according to this definition.
313
314The Document may include Warranty Disclaimers next to the notice which
315states that this License applies to the Document. These Warranty
316Disclaimers are considered to be included by reference in this
317License, but only as regards disclaiming warranties: any other
318implication that these Warranty Disclaimers may have is void and has
319no effect on the meaning of this License.
320
3212. VERBATIM COPYING
322
323You may copy and distribute the Document in any medium, either
324commercially or noncommercially, provided that this License, the
325copyright notices, and the license notice saying this License applies
326to the Document are reproduced in all copies, and that you add no
327other conditions whatsoever to those of this License. You may not use
328technical measures to obstruct or control the reading or further
329copying of the copies you make or distribute. However, you may accept
330compensation in exchange for copies. If you distribute a large enough
331number of copies you must also follow the conditions in section 3.
332
333You may also lend copies, under the same conditions stated above, and
334you may publicly display copies.
335
336
3373. COPYING IN QUANTITY
338
339If you publish printed copies (or copies in media that commonly have
340printed covers) of the Document, numbering more than 100, and the
341Document's license notice requires Cover Texts, you must enclose the
342copies in covers that carry, clearly and legibly, all these Cover
343Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
344the back cover. Both covers must also clearly and legibly identify
345you as the publisher of these copies. The front cover must present
346the full title with all words of the title equally prominent and
347visible. You may add other material on the covers in addition.
348Copying with changes limited to the covers, as long as they preserve
349the title of the Document and satisfy these conditions, can be treated
350as verbatim copying in other respects.
351
352If the required texts for either cover are too voluminous to fit
353legibly, you should put the first ones listed (as many as fit
354reasonably) on the actual cover, and continue the rest onto adjacent
355pages.
356
357If you publish or distribute Opaque copies of the Document numbering
358more than 100, you must either include a machine-readable Transparent
359copy along with each Opaque copy, or state in or with each Opaque copy
360a computer-network location from which the general network-using
361public has access to download using public-standard network protocols
362a complete Transparent copy of the Document, free of added material.
363If you use the latter option, you must take reasonably prudent steps,
364when you begin distribution of Opaque copies in quantity, to ensure
365that this Transparent copy will remain thus accessible at the stated
366location until at least one year after the last time you distribute an
367Opaque copy (directly or through your agents or retailers) of that
368edition to the public.
369
370It is requested, but not required, that you contact the authors of the
371Document well before redistributing any large number of copies, to
372give them a chance to provide you with an updated version of the
373Document.
374
375
3764. MODIFICATIONS
377
378You may copy and distribute a Modified Version of the Document under
379the conditions of sections 2 and 3 above, provided that you release
380the Modified Version under precisely this License, with the Modified
381Version filling the role of the Document, thus licensing distribution
382and modification of the Modified Version to whoever possesses a copy
383of it. In addition, you must do these things in the Modified Version:
384
385A. Use in the Title Page (and on the covers, if any) a title distinct
386 from that of the Document, and from those of previous versions
387 (which should, if there were any, be listed in the History section
388 of the Document). You may use the same title as a previous version
389 if the original publisher of that version gives permission.
390B. List on the Title Page, as authors, one or more persons or entities
391 responsible for authorship of the modifications in the Modified
392 Version, together with at least five of the principal authors of the
393 Document (all of its principal authors, if it has fewer than five),
394 unless they release you from this requirement.
395C. State on the Title page the name of the publisher of the
396 Modified Version, as the publisher.
397D. Preserve all the copyright notices of the Document.
398E. Add an appropriate copyright notice for your modifications
399 adjacent to the other copyright notices.
400F. Include, immediately after the copyright notices, a license notice
401 giving the public permission to use the Modified Version under the
402 terms of this License, in the form shown in the Addendum below.
403G. Preserve in that license notice the full lists of Invariant Sections
404 and required Cover Texts given in the Document's license notice.
405H. Include an unaltered copy of this License.
406I. Preserve the section Entitled "History", Preserve its Title, and add
407 to it an item stating at least the title, year, new authors, and
408 publisher of the Modified Version as given on the Title Page. If
409 there is no section Entitled "History" in the Document, create one
410 stating the title, year, authors, and publisher of the Document as
411 given on its Title Page, then add an item describing the Modified
412 Version as stated in the previous sentence.
413J. Preserve the network location, if any, given in the Document for
414 public access to a Transparent copy of the Document, and likewise
415 the network locations given in the Document for previous versions
416 it was based on. These may be placed in the "History" section.
417 You may omit a network location for a work that was published at
418 least four years before the Document itself, or if the original
419 publisher of the version it refers to gives permission.
420K. For any section Entitled "Acknowledgements" or "Dedications",
421 Preserve the Title of the section, and preserve in the section all
422 the substance and tone of each of the contributor acknowledgements
423 and/or dedications given therein.
424L. Preserve all the Invariant Sections of the Document,
425 unaltered in their text and in their titles. Section numbers
426 or the equivalent are not considered part of the section titles.
427M. Delete any section Entitled "Endorsements". Such a section
428 may not be included in the Modified Version.
429N. Do not retitle any existing section to be Entitled "Endorsements"
430 or to conflict in title with any Invariant Section.
431O. Preserve any Warranty Disclaimers.
432
433If the Modified Version includes new front-matter sections or
434appendices that qualify as Secondary Sections and contain no material
435copied from the Document, you may at your option designate some or all
436of these sections as invariant. To do this, add their titles to the
437list of Invariant Sections in the Modified Version's license notice.
438These titles must be distinct from any other section titles.
439
440You may add a section Entitled "Endorsements", provided it contains
441nothing but endorsements of your Modified Version by various
442parties--for example, statements of peer review or that the text has
443been approved by an organization as the authoritative definition of a
444standard.
445
446You may add a passage of up to five words as a Front-Cover Text, and a
447passage of up to 25 words as a Back-Cover Text, to the end of the list
448of Cover Texts in the Modified Version. Only one passage of
449Front-Cover Text and one of Back-Cover Text may be added by (or
450through arrangements made by) any one entity. If the Document already
451includes a cover text for the same cover, previously added by you or
452by arrangement made by the same entity you are acting on behalf of,
453you may not add another; but you may replace the old one, on explicit
454permission from the previous publisher that added the old one.
455
456The author(s) and publisher(s) of the Document do not by this License
457give permission to use their names for publicity for or to assert or
458imply endorsement of any Modified Version.
459
460
4615. COMBINING DOCUMENTS
462
463You may combine the Document with other documents released under this
464License, under the terms defined in section 4 above for modified
465versions, provided that you include in the combination all of the
466Invariant Sections of all of the original documents, unmodified, and
467list them all as Invariant Sections of your combined work in its
468license notice, and that you preserve all their Warranty Disclaimers.
469
470The combined work need only contain one copy of this License, and
471multiple identical Invariant Sections may be replaced with a single
472copy. If there are multiple Invariant Sections with the same name but
473different contents, make the title of each such section unique by
474adding at the end of it, in parentheses, the name of the original
475author or publisher of that section if known, or else a unique number.
476Make the same adjustment to the section titles in the list of
477Invariant Sections in the license notice of the combined work.
478
479In the combination, you must combine any sections Entitled "History"
480in the various original documents, forming one section Entitled
481"History"; likewise combine any sections Entitled "Acknowledgements",
482and any sections Entitled "Dedications". You must delete all sections
483Entitled "Endorsements".
484
485
4866. COLLECTIONS OF DOCUMENTS
487
488You may make a collection consisting of the Document and other
489documents released under this License, and replace the individual
490copies of this License in the various documents with a single copy
491that is included in the collection, provided that you follow the rules
492of this License for verbatim copying of each of the documents in all
493other respects.
494
495You may extract a single document from such a collection, and
496distribute it individually under this License, provided you insert a
497copy of this License into the extracted document, and follow this
498License in all other respects regarding verbatim copying of that
499document.
500
501
5027. AGGREGATION WITH INDEPENDENT WORKS
503
504A compilation of the Document or its derivatives with other separate
505and independent documents or works, in or on a volume of a storage or
506distribution medium, is called an "aggregate" if the copyright
507resulting from the compilation is not used to limit the legal rights
508of the compilation's users beyond what the individual works permit.
509When the Document is included in an aggregate, this License does not
510apply to the other works in the aggregate which are not themselves
511derivative works of the Document.
512
513If the Cover Text requirement of section 3 is applicable to these
514copies of the Document, then if the Document is less than one half of
515the entire aggregate, the Document's Cover Texts may be placed on
516covers that bracket the Document within the aggregate, or the
517electronic equivalent of covers if the Document is in electronic form.
518Otherwise they must appear on printed covers that bracket the whole
519aggregate.
520
521
5228. TRANSLATION
523
524Translation is considered a kind of modification, so you may
525distribute translations of the Document under the terms of section 4.
526Replacing Invariant Sections with translations requires special
527permission from their copyright holders, but you may include
528translations of some or all Invariant Sections in addition to the
529original versions of these Invariant Sections. You may include a
530translation of this License, and all the license notices in the
531Document, and any Warranty Disclaimers, provided that you also include
532the original English version of this License and the original versions
533of those notices and disclaimers. In case of a disagreement between
534the translation and the original version of this License or a notice
535or disclaimer, the original version will prevail.
536
537If a section in the Document is Entitled "Acknowledgements",
538"Dedications", or "History", the requirement (section 4) to Preserve
539its Title (section 1) will typically require changing the actual
540title.
541
542
5439. TERMINATION
544
545You may not copy, modify, sublicense, or distribute the Document
546except as expressly provided under this License. Any attempt
547otherwise to copy, modify, sublicense, or distribute it is void, and
548will automatically terminate your rights under this License.
549
550However, if you cease all violation of this License, then your license
551from a particular copyright holder is reinstated (a) provisionally,
552unless and until the copyright holder explicitly and finally
553terminates your license, and (b) permanently, if the copyright holder
554fails to notify you of the violation by some reasonable means prior to
55560 days after the cessation.
556
557Moreover, your license from a particular copyright holder is
558reinstated permanently if the copyright holder notifies you of the
559violation by some reasonable means, this is the first time you have
560received notice of violation of this License (for any work) from that
561copyright holder, and you cure the violation prior to 30 days after
562your receipt of the notice.
563
564Termination of your rights under this section does not terminate the
565licenses of parties who have received copies or rights from you under
566this License. If your rights have been terminated and not permanently
567reinstated, receipt of a copy of some or all of the same material does
568not give you any rights to use it.
569
570
57110. FUTURE REVISIONS OF THIS LICENSE
572
573The Free Software Foundation may publish new, revised versions of the
574GNU Free Documentation License from time to time. Such new versions
575will be similar in spirit to the present version, but may differ in
576detail to address new problems or concerns. See
577http://www.gnu.org/copyleft/.
578
579Each version of the License is given a distinguishing version number.
580If the Document specifies that a particular numbered version of this
581License "or any later version" applies to it, you have the option of
582following the terms and conditions either of that specified version or
583of any later version that has been published (not as a draft) by the
584Free Software Foundation. If the Document does not specify a version
585number of this License, you may choose any version ever published (not
586as a draft) by the Free Software Foundation. If the Document
587specifies that a proxy can decide which future versions of this
588License can be used, that proxy's public statement of acceptance of a
589version permanently authorizes you to choose that version for the
590Document.
591
59211. RELICENSING
593
594"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
595World Wide Web server that publishes copyrightable works and also
596provides prominent facilities for anybody to edit those works. A
597public wiki that anybody can edit is an example of such a server. A
598"Massive Multiauthor Collaboration" (or "MMC") contained in the site
599means any set of copyrightable works thus published on the MMC site.
600
601"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
602license published by Creative Commons Corporation, a not-for-profit
603corporation with a principal place of business in San Francisco,
604California, as well as future copyleft versions of that license
605published by that same organization.
606
607"Incorporate" means to publish or republish a Document, in whole or in
608part, as part of another Document.
609
610An MMC is "eligible for relicensing" if it is licensed under this
611License, and if all works that were first published under this License
612somewhere other than this MMC, and subsequently incorporated in whole or
613in part into the MMC, (1) had no cover texts or invariant sections, and
614(2) were thus incorporated prior to November 1, 2008.
615
616The operator of an MMC Site may republish an MMC contained in the site
617under CC-BY-SA on the same site at any time before August 1, 2009,
618provided the MMC is eligible for relicensing.
619
620
621ADDENDUM: How to use this License for your documents
622
623To use this License in a document you have written, include a copy of
624the License in the document and put the following copyright and
625license notices just after the title page:
626
627 Copyright (c) YEAR YOUR NAME.
628 Permission is granted to copy, distribute and/or modify this document
629 under the terms of the GNU Free Documentation License, Version 1.3
630 or any later version published by the Free Software Foundation;
631 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
632 A copy of the license is included in the section entitled "GNU
633 Free Documentation License".
634
635If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
636replace the "with...Texts." line with this:
637
638 with the Invariant Sections being LIST THEIR TITLES, with the
639 Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
640
641If you have Invariant Sections without Cover Texts, or some other
642combination of the three, merge those two alternatives to suit the
643situation.
644
645If your document contains nontrivial examples of program code, we
646recommend releasing these examples in parallel under your choice of
647free software license, such as the GNU General Public License,
648to permit their use in free software.
649
650