🌙 Adapt the Github Dark Theme
|
|
@ -1,30 +1,3 @@
|
|||
[GF2-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%282%29
|
||||
[GF2p15-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%282%5E%7B15%7D%29
|
||||
[GF2p15p17-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29
|
||||
[A-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20A
|
||||
[B-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20B
|
||||
[D-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20D
|
||||
[G-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20G
|
||||
[M-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20M
|
||||
[P-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20P
|
||||
[h-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20h
|
||||
[k-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20k
|
||||
[l-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20l
|
||||
[n-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20n
|
||||
[r-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20r
|
||||
[s-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20s
|
||||
[T-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20T
|
||||
[UU-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20U
|
||||
[LL-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20L
|
||||
[Rnd-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Rnd
|
||||
[Temp-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Temp
|
||||
[UID-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20UID
|
||||
[Data-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data
|
||||
[Data0-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E0
|
||||
[Data1-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E1
|
||||
[Data2-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E2
|
||||
[Data3-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E3
|
||||
|
||||
# How is "rarreg.key" generated?
|
||||
|
||||
WinRAR uses an ECC-based signature algorithm to generate `rarreg.key`. The algorithm it used is a variant of Chinese SM2 digital signature algorithm. Different to many standard ECDSAs, the curve that WinRAR selected is a curve over composite field ![GF2p15p17-inlined].
|
||||
|
|
|
|||
|
|
@ -1,49 +1,24 @@
|
|||
[GF2-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%282%29
|
||||
[GF2p15-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%282%5E%7B15%7D%29
|
||||
[GF2p15p17-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29
|
||||
[A-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20A
|
||||
[B-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20B
|
||||
[D-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20D
|
||||
[G-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20G
|
||||
[M-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20M
|
||||
[P-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20P
|
||||
[h-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20h
|
||||
[k-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20k
|
||||
[l-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20l
|
||||
[n-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20n
|
||||
[r-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20r
|
||||
[s-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20s
|
||||
[T-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20T
|
||||
[UU-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20U
|
||||
[LL-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20L
|
||||
[Rnd-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Rnd
|
||||
[Temp-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Temp
|
||||
[UID-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20UID
|
||||
[Data-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data
|
||||
[Data0-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E0
|
||||
[Data1-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E1
|
||||
[Data2-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E2
|
||||
[Data3-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E3
|
||||
|
||||
# "rarreg.key"是如何生成的?
|
||||
|
||||
WinRAR 使用了基于 ECC 的签名算法来生成 `rarreg.key` 文件,其使用的签名算法是中国 SM2 数字签名算法的变体。与各种标准 ECDSA 不同的是,WinRAR 使用的椭圆曲线是一个基于复合域 ![GF2p15p17-inlined] 上的曲线。
|
||||
WinRAR 使用了基于 ECC 的签名算法来生成 `rarreg.key` 文件,其使用的签名算法是中国 SM2 数字签名算法的变体。与各种标准 ECDSA 不同的是,WinRAR 使用的椭圆曲线是一个基于复合域   上的曲线。
|
||||
|
||||
## 1. 复合域 ![GF2p15p17-inlined]
|
||||
## 1. 复合域  
|
||||
|
||||
基域 ![GF2p15-inlined] 采用标准基(多项式基)来表达,采用的不可约多项式为:
|
||||
基域  采用标准基(多项式基)来表达,采用的不可约多项式为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?P%28%5Calpha%29%3D%5Calpha%5E%7B15%7D+%5Calpha+1")
|
||||
<img src="assets/formula/1-light.svg#gh-light-mode-only">
|
||||
<img src="assets/formula/1-dark.svg#gh-dark-mode-only">
|
||||
</p>
|
||||
|
||||
各项系数全部位于 ![GF2-inlined]。设基域的标准基为:
|
||||
|
||||
各项系数全部位于 。设基域的标准基为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B_1%3D%5C%7B1%2C%5Calpha%2C%5Calpha%5E2%2C%5Cldots%2C%5Calpha%5E%7B14%7D%5C%7D")
|
||||
</p>
|
||||
|
||||
则位于基域 ![GF2p15-inlined] 上的元素 ![A-inlined] 可以用如下方式表达:
|
||||
则位于基域  上的元素 ![A-inlined] 可以用如下方式表达:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?A%3D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_i%5Calpha%5Ei%20%5Cquad%20%5Cquad%20%5Cquad%20a_i%5Cin%5Ctextrm%7BGF%7D%282%29")
|
||||
|
|
@ -51,19 +26,19 @@ WinRAR 使用了基于 ECC 的签名算法来生成 `rarreg.key` 文件,其使
|
|||
|
||||
---
|
||||
|
||||
复合域 ![GF2p15p17-inlined] 的不可约多项式为:
|
||||
复合域   的不可约多项式为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Q%28%5Cbeta%29%3D%5Cbeta%5E%7B17%7D+%5Cbeta%5E3+1")
|
||||
</p>
|
||||
|
||||
各项系数全部位于 ![GF2p15-inlined]。设复合域的标准基为:
|
||||
各项系数全部位于 。设复合域的标准基为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B_2%3D%5C%7B1%2C%5Cbeta%2C%5Cbeta%5E2%2C%5Cldots%2C%5Cbeta%5E%7B16%7D%5C%7D")
|
||||
</p>
|
||||
|
||||
则位于复合域 ![GF2p15p17-inlined] 上的元素 ![B-inlined] 可以用如下方式表达:
|
||||
则位于复合域   上的元素 ![B-inlined] 可以用如下方式表达:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%28%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%29%5Cbeta%5Ej%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%5Cbeta%5Ej%20%5Cquad%20%5Cquad%20%5Cquad%20a_%7Bj%2Ci%7D%5Cin%5Ctextrm%7BGF%7D%282%29")
|
||||
|
|
@ -71,7 +46,7 @@ WinRAR 使用了基于 ECC 的签名算法来生成 `rarreg.key` 文件,其使
|
|||
|
||||
---
|
||||
|
||||
为了方便表述我们用255比特的大数 ![D-inlined] 来表示位于复合域 ![GF2p15p17-inlined] 上的元素 ![B-inlined]。它们的对应关系为:
|
||||
为了方便表述我们用255比特的大数 ![D-inlined] 来表示位于复合域   上的元素 ![B-inlined]。它们的对应关系为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%5Cbeta%5Ej%20%5Cleftrightarrow%20D%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Ccdot%202%5E%7B15j+i%7D")
|
||||
|
|
@ -317,4 +292,3 @@ WinRAR的私钥 ![k-inlined] 为:
|
|||
</p>
|
||||
|
||||
* 将 ![Data-inlined] 按照每行54个字符输出。
|
||||
|
||||
|
|
|
|||
321
assets/README.HOW_DOES_IT_WORK.md.bak
Normal file
|
|
@ -0,0 +1,321 @@
|
|||
[GF2-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%282%29
|
||||
[GF2p15-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%282%5E%7B15%7D%29
|
||||
[GF2p15p17-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29
|
||||
[A-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20A
|
||||
[B-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20B
|
||||
[D-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20D
|
||||
[G-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20G
|
||||
[M-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20M
|
||||
[P-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20P
|
||||
[h-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20h
|
||||
[k-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20k
|
||||
[l-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20l
|
||||
[n-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20n
|
||||
[r-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20r
|
||||
[s-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20s
|
||||
[T-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20T
|
||||
[UU-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20U
|
||||
[LL-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20L
|
||||
[Rnd-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Rnd
|
||||
[Temp-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Temp
|
||||
[UID-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20UID
|
||||
[Data-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data
|
||||
[Data0-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E0
|
||||
[Data1-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E1
|
||||
[Data2-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E2
|
||||
[Data3-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E3
|
||||
|
||||
# How is "rarreg.key" generated?
|
||||
|
||||
WinRAR uses an ECC-based signature algorithm to generate `rarreg.key`. The algorithm it used is a variant of Chinese SM2 digital signature algorithm. Different to many standard ECDSAs, the curve that WinRAR selected is a curve over composite field ![GF2p15p17-inlined].
|
||||
|
||||
## 1. Composite field ![GF2p15p17-inlined]
|
||||
|
||||
Elements in ground field ![GF2p15-inlined] are represented with standard basis, i.e. polynomial basis. The irreducible polynomial is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?P%28%5Calpha%29%3D%5Calpha%5E%7B15%7D+%5Calpha+1")
|
||||
</p>
|
||||
|
||||
where each coefficients is in ![GF2-inlined]. If we use
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B_1%3D%5C%7B1%2C%5Calpha%2C%5Calpha%5E2%2C%5Cldots%2C%5Calpha%5E%7B14%7D%5C%7D")
|
||||
</p>
|
||||
|
||||
as the standard basis of the ground field, an element ![A-inlined] in ![GF2p15-inlined] can be denoted as
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?A%3D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_i%5Calpha%5Ei%20%5Cquad%20%5Cquad%20%5Cquad%20a_i%5Cin%5Ctextrm%7BGF%7D%282%29")
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
The irreducible polynomial of composite field ![GF2p15p17-inlined] is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Q%28%5Cbeta%29%3D%5Cbeta%5E%7B17%7D+%5Cbeta%5E3+1")
|
||||
</p>
|
||||
|
||||
where each coefficients is in ![GF2p15-inlined]. If we use
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B_2%3D%5C%7B1%2C%5Cbeta%2C%5Cbeta%5E2%2C%5Cldots%2C%5Cbeta%5E%7B16%7D%5C%7D")
|
||||
</p>
|
||||
|
||||
as the standard basis of the composite field, an element ![B-inlined] in ![GF2p15p17-inlined] can be denoted as
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%28%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%29%5Cbeta%5Ej%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%5Cbeta%5Ej%20%5Cquad%20%5Cquad%20%5Cquad%20a_%7Bj%2Ci%7D%5Cin%5Ctextrm%7BGF%7D%282%29")
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
For clarity, we use ![D-inlined], which is a 255-bits-long integer to denote an element ![B-inlined] in ![GF2p15p17-inlined]. The map between them is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%5Cbeta%5Ej%20%5Cleftrightarrow%20D%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Ccdot%202%5E%7B15j+i%7D")
|
||||
</p>
|
||||
|
||||
## 2. Elliptic curve over ![GF2p15p17-inlined]
|
||||
|
||||
The equation of the elliptic curve that WinRAR uses is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?y%5E2+xy%3Dx%5E3+161%20%5Cquad%20%5Cquad%20%5Cquad%20161%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29")
|
||||
</p>
|
||||
|
||||
The base point ![G-inlined] is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cbegin%7Baligned%7D%20G%26%3D%28G_x%2CG_y%29%20%5C%5C%20G_x%26%3D%5Ctextrm%7B0x56fdcbc6a27acee0cc2996e0096ae74feb1acf220a2341b898b549440297b8cc%7D%20%5Cquad%20G_x%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29%5C%5C%20G_y%26%3D%5Ctextrm%7B0x20da32e8afc90b7cf0e76bde44496b4d0794054e6ea60f388682463132f931a7%7D%20%5Cquad%20G_y%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29%20%5Cend%7Baligned%7D")
|
||||
</p>
|
||||
|
||||
whose order ![n-inlined] is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?n%3D%5Ctextrm%7B0x1026dd85081b82314691ced9bbec30547840e4bf72d8b5e0d258442bbcd31%7D%20%5Cquad%20n%5Cin%5Cnolinebreak%5Cmathbb%7BZ%7D")
|
||||
</p>
|
||||
|
||||
## 3. Message hash algorithm
|
||||
|
||||
We use
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?M%3Dm_0m_1%20%5Cldots%20m_%7Bl-1%7D%20%5Cquad%20%5Cquad%20m_i%5Cin%5B0%2C%20256%29")
|
||||
</p>
|
||||
|
||||
to denote a message whose length is ![l-inlined]. So the SHA1 value of ![M-inlined] should be
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Ctextrm%7BSHA%7D_1%28M%29%3DS_0%7C%7CS_1%7C%7CS_2%7C%7CS_3%7C%7CS_4%20%5Cquad%20%5Cquad%20S_i%5Cin%5B0%2C%202%5E%7B32%7D%29")
|
||||
</p>
|
||||
|
||||
where  are 5 state values when SHA1 outputs. Generally speaking, the final SHA1 value should be the join of these 5 state values while each of state values is serialized in big-endian.
|
||||
|
||||
However, WinRAR doesn't serialize the 5 state values. Instead, it use a big integer ![h-inlined] as the hash of the input message.
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?h%3D%28%5Csum_%7Bi%3D0%7D%5E%7B4%7DS_i%20%5Ccdot%202%5E%7B32i%7D%29+%5Ctextrm%7B0x1bd10xb4e33c7c0ffd8d43%7D%20%5Ccdot%202%5E%7B32*5%7D")
|
||||
</p>
|
||||
|
||||
## 4. ECC digital signature algorithm
|
||||
|
||||
We use ![k-inlined] to denote private key, ![P-inlined] to denote public key. So there must be
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?P%3Dk%20%5Ccdot%20G")
|
||||
</p>
|
||||
|
||||
If we use ![h-inlined] to denote the hash of input data, WinRAR use the following algorithm to perform signing:
|
||||
|
||||
1. Generate a random big integer ![Rnd-inlined] which satisfies .
|
||||
|
||||
2. Calculate ![r-inlined]
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?r%3D%28%28Rnd%20%5Ccdot%20G%29_x+h%29%5C%20%5C%20Mod%5C%20%5C%20n">
|
||||
</p>
|
||||
|
||||
where  means we take X coordinate of  and convert it from ![GF2p15p17-inlined] to a big integer.
|
||||
|
||||
If  or , go back to step 1.
|
||||
|
||||
3. Calculate ![s-inlined]
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?s%3D%28Rnd-kr%29%5C%20%5C%20Mod%5C%20%5C%20n">
|
||||
</p>
|
||||
|
||||
If , go back to step 1.
|
||||
|
||||
4. Output .
|
||||
|
||||
## 5. WinRAR private key generation algorithm
|
||||
|
||||
We use
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?T%3Dt_0t_1%20%5Cldots%20t_%7Bl-1%7D%20%5Cquad%20%5Cquad%20t_i%5Cin%5B0%2C256%29">
|
||||
</p>
|
||||
|
||||
to denote input data whose length is ![l-inlined]. WinRAR use it to generate private key ![k-inlined].
|
||||
|
||||
1. We use  to denote 6 32-bits-long integer. So there is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?g_j%3D%5Csum_%7Bi%3D0%7D%5E%7B3%7Dg_%7Bj%2Ci%7D%20%5Ccdot%202%5E%7B8i%7D%20%5Cquad%20%5Cquad%20g_%7Bj%2Ci%7D%5Cin%5B0%2C256%29">
|
||||
</p>
|
||||
|
||||
2. Let .
|
||||
|
||||
3. If , we calculate SHA1 value of ![T-inlined]. Then assign SHA1 state value  to :
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cbegin%7Baligned%7D%20%5Ctextrm%7BSHA%7D_1%28T%29%26%3DS_0%7C%7CS_1%7C%7CS_2%7C%7CS_3%7C%7CS_4%20%5C%5C%20g_1%26%3DS_0%20%5C%5C%20g_2%26%3DS_1%20%5C%5C%20g_3%26%3DS_2%20%5C%5C%20g_4%26%3DS_3%20%5C%5C%20g_5%26%3DS_4%20%5C%5C%20%5Cend%7Baligned%7D">
|
||||
</p>
|
||||
|
||||
Otherwise, when , we let
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cbegin%7Baligned%7D%20g_1%26%3D%5Ctextrm%7B0xeb3eb781%7D%20%5C%5C%20g_2%26%3D%5Ctextrm%7B0x50265329%7D%20%5C%5C%20g_3%26%3D%5Ctextrm%7B0xdc5ef4a3%7D%20%5C%5C%20g_4%26%3D%5Ctextrm%7B0x6847b9d5%7D%20%5C%5C%20g_5%26%3D%5Ctextrm%7B0xcde43b4c%7D%20%5C%5C%20%5Cend%7Baligned%7D">
|
||||
</p>
|
||||
|
||||
4. Regard  as counter, add itself by 1.
|
||||
|
||||
Calculate SHA1:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Ctextrm%7BSHA%7D_1%28g_%7B0%2C0%7D%7C%7Cg_%7B0%2C1%7D%7C%7Cg_%7B0%2C2%7D%7C%7Cg_%7B0%2C3%7D%7C%7Cg_%7B1%2C0%7D%7C%7Cg_%7B1%2C1%7D%7C%7C%5Cldots%7C%7Cg_%7B5%2C0%7D%7C%7Cg_%7B5%2C1%7D%7C%7Cg_%7B5%2C2%7D%7C%7Cg_%7B5%2C3%7D%29%3DS_0%7C%7CS_1%7C%7CS_2%7C%7CS_3%7C%7CS_4">
|
||||
</p>
|
||||
|
||||
We takes the lowest 16 bits of  and donote it as .
|
||||
|
||||
5. Repeat step 4 again with 14 times.
|
||||
|
||||
6. After that, we will get . Then output private key
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?k%3D%5Csum_%7Bi%3D1%7D%5E%7B15%7Dk_i%20%5Ccdot%202%5E%7B16i%7D">
|
||||
</p>
|
||||
|
||||
## 6. The private key and public key of WinRAR
|
||||
|
||||
Private key ![k-inlined] is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?k%3D%5Ctextrm%7B0x59fe6abcca90bdb95f0105271fa85fb9f11f467450c1ae9044b7fd61d65e%7D%20%5Cquad%20%5Cquad%20k%5Cin%5Cnolinebreak%5Cmathbb%7BZ%7D">
|
||||
</p>
|
||||
|
||||
This private key is generated by the algorithm describled in section 5 where the length of data ![T-inlined] is zero.
|
||||
|
||||
Public key ![P-inlined] is
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cbegin%7Baligned%7D%20P%26%3D%28P_x%2CP_y%29%20%5C%5C%20P_x%26%3D%5Ctextrm%7B0x3861220ed9b36c9753df09a159dfb148135d495db3af8373425ee9a28884ba1a%7D%20%5Cquad%20P_x%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29%20%5C%5C%20P_y%26%3D%5Ctextrm%7B0x12b64e62db43a56114554b0cbd573379338cea9124c8443c4f50e6c8b013ec20%7D%20%5Cquad%20P_y%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29%20%5Cend%7Baligned%7D">
|
||||
</p>
|
||||
|
||||
## 7. Generation of "rarreg.key"
|
||||
|
||||
The generation of license file `rarreg.key` requires 2 arguments:
|
||||
|
||||
1. Username, an ANSI-encoded string, without null-terminator. Denoted as
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?U%3Du_0u_1%20%5Cldots%20u_%7Bl-1%7D">
|
||||
</p>
|
||||
|
||||
2. License type, an ANSI-encoded string, without null-terminator. Denoted as
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?L%3Dl_0l_1%20%5Cldots%20l_%7Bl-1%7D">
|
||||
</p>
|
||||
|
||||
The following is the algorithm to generate `rarreg.key`.
|
||||
|
||||
1. Use the algorithm describled in section 5, with argument ![UU-inlined], to generate private key  and public key . Then output hexlified public key string with SM2 compressed public key format. The hexlified public key is denoted as ![Temp-inlined].
|
||||
|
||||
The length of ![Temp-inlined] should be 64. If less, pad with `'0'` until the length is 64.
|
||||
|
||||
2. Let ![Data3-inlined] be
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Data%5E3%3D%5Ctexttt%7B%2260%22%7D%7C%7CTemp_0%7C%7CTemp_1%7C%7C%5Cldots%7C%7CTemp_%7B47%7D">
|
||||
</p>
|
||||
|
||||
3. Use the algorithm describled in section 5, with argument ![Data3-inlined], to generate private key  and public key . Then output hexlified public key string with SM2 compressed public key format. The hexlified public key is denoted as ![Data0-inlined].
|
||||
|
||||
The length of ![Data0-inlined] should be 64. If less, pad with `'0'` until the length is 64.
|
||||
|
||||
4. Let ![UID-inlined] be
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?UID%3DTemp_%7B48%7D%7C%7CTemp_%7B49%7D%7C%7C%5Cldots%7C%7CTemp_%7B63%7D%7C%7CData%5E0_0%7C%7CData%5E0_1%7C%7CData%5E0_2%7C%7CData%5E0_3">
|
||||
</p>
|
||||
|
||||
5. Use the algorithm describled in section 4, with argument ![LL-inlined] and private key ![k-inlined] describled section 6, to get signature .
|
||||
|
||||
The bit length of  and  shall not be more than 240. Otherwise, repeat this step.
|
||||
|
||||
6. Convert  and  to hex-integer string  and , without `"0x"` prefix.
|
||||
|
||||
If the length of  or  is less than 60, pad character `'0'` until the length is 60.
|
||||
|
||||
7. Let ![Data1-inlined] be
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Data%5E1%3D%5Ctexttt%7B%2260%22%7D%7C%7CSZ%5E%7Bs_L%7D%7C%7CSZ%5E%7Br_L%7D">
|
||||
</p>
|
||||
|
||||
8. Let ![Temp-inlined] be
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Temp%3DU%7C%7CData%5E0">
|
||||
</p>
|
||||
|
||||
Use the algorithm describled in section 4, with argument ![Temp-inlined] and private key ![k-inlined] describled section 6, to get signature .
|
||||
|
||||
The bit length of  and  shall not be more than 240. Otherwise, repeat this step.
|
||||
|
||||
9. Convert  and  to hex-integer string  and , without `"0x"` prefix.
|
||||
|
||||
If the length of  or  is less than 60, pad character `'0'` until the length is 60.
|
||||
|
||||
10. Let ![Data2-inlined] be
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Data%5E2%3D%5Ctexttt%7B%2260%22%7D%7C%7CSZ%5E%7Bs_%7BTemp%7D%7D%7C%7CSZ%5E%7Br_%7BTemp%7D%7D">
|
||||
</p>
|
||||
|
||||
11. Calculate CRC32 value of
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?L%7C%7CU%7C%7CData%5E0%7C%7CData%5E1%7C%7CData%5E2%7C%7CData%5E3">
|
||||
</p>
|
||||
|
||||
The final checksum the complement of CRC32 value.
|
||||
|
||||
Then convert the checksum to decimal string . If the length is less than 10, pad character `'0'` until the length is 10.
|
||||
|
||||
12. Let ![Data-inlined] be
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cinline%20Data%3DData%5E0%7C%7CData%5E1%7C%7CData%5E2%7C%7CData%5E3%7C%7CSZ%5E%7Bchecksum%7D">
|
||||
</p>
|
||||
|
||||
13. Output with format
|
||||
|
||||
* A fixed header `"RAR registration data"`, taking one line.
|
||||
|
||||
* Username, taking one line.
|
||||
|
||||
* License type, taking one line
|
||||
|
||||
* UID, taking one line, with format:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Ctexttt%7B%22UID%3D%22%7D%7C%7CUID">
|
||||
</p>
|
||||
|
||||
* Output ![Data-inlined], with 54 characters a line.
|
||||
|
||||
319
assets/README.HOW_DOES_IT_WORK.zh-CN.md.bak
Normal file
|
|
@ -0,0 +1,319 @@
|
|||
[GF2-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%282%29
|
||||
[GF2p15-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%282%5E%7B15%7D%29
|
||||
[GF2p15p17-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29
|
||||
[A-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20A
|
||||
[B-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20B
|
||||
[D-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20D
|
||||
[G-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20G
|
||||
[M-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20M
|
||||
[P-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20P
|
||||
[h-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20h
|
||||
[k-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20k
|
||||
[l-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20l
|
||||
[n-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20n
|
||||
[r-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20r
|
||||
[s-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20s
|
||||
[T-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20T
|
||||
[UU-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20U
|
||||
[LL-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20L
|
||||
[Rnd-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Rnd
|
||||
[Temp-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Temp
|
||||
[UID-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20UID
|
||||
[Data-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data
|
||||
[Data0-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E0
|
||||
[Data1-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E1
|
||||
[Data2-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E2
|
||||
[Data3-inlined]: http://latex.codecogs.com/svg.latex?%5Cinline%20Data%5E3
|
||||
|
||||
# "rarreg.key"是如何生成的?
|
||||
|
||||
WinRAR 使用了基于 ECC 的签名算法来生成 `rarreg.key` 文件,其使用的签名算法是中国 SM2 数字签名算法的变体。与各种标准 ECDSA 不同的是,WinRAR 使用的椭圆曲线是一个基于复合域 ![GF2p15p17-inlined] 上的曲线。
|
||||
|
||||
## 1. 复合域 ![GF2p15p17-inlined]
|
||||
|
||||
基域 ![GF2p15-inlined] 采用标准基(多项式基)来表达,采用的不可约多项式为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?P%28%5Calpha%29%3D%5Calpha%5E%7B15%7D+%5Calpha+1">
|
||||
</p>
|
||||
|
||||
各项系数全部位于 ![GF2-inlined]。设基域的标准基为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B_1%3D%5C%7B1%2C%5Calpha%2C%5Calpha%5E2%2C%5Cldots%2C%5Calpha%5E%7B14%7D%5C%7D")
|
||||
</p>
|
||||
|
||||
则位于基域 ![GF2p15-inlined] 上的元素 ![A-inlined] 可以用如下方式表达:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?A%3D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_i%5Calpha%5Ei%20%5Cquad%20%5Cquad%20%5Cquad%20a_i%5Cin%5Ctextrm%7BGF%7D%282%29")
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
复合域 ![GF2p15p17-inlined] 的不可约多项式为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Q%28%5Cbeta%29%3D%5Cbeta%5E%7B17%7D+%5Cbeta%5E3+1")
|
||||
</p>
|
||||
|
||||
各项系数全部位于 ![GF2p15-inlined]。设复合域的标准基为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B_2%3D%5C%7B1%2C%5Cbeta%2C%5Cbeta%5E2%2C%5Cldots%2C%5Cbeta%5E%7B16%7D%5C%7D")
|
||||
</p>
|
||||
|
||||
则位于复合域 ![GF2p15p17-inlined] 上的元素 ![B-inlined] 可以用如下方式表达:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%28%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%29%5Cbeta%5Ej%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%5Cbeta%5Ej%20%5Cquad%20%5Cquad%20%5Cquad%20a_%7Bj%2Ci%7D%5Cin%5Ctextrm%7BGF%7D%282%29")
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
为了方便表述我们用255比特的大数 ![D-inlined] 来表示位于复合域 ![GF2p15p17-inlined] 上的元素 ![B-inlined]。它们的对应关系为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?B%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Calpha%5Ei%5Cbeta%5Ej%20%5Cleftrightarrow%20D%3D%5Csum_%7Bj%3D0%7D%5E%7B16%7D%5Csum_%7Bi%3D0%7D%5E%7B14%7Da_%7Bj%2Ci%7D%5Ccdot%202%5E%7B15j+i%7D")
|
||||
</p>
|
||||
|
||||
## 2. 复合域 ![GF2p15p17-inlined] 上的椭圆曲线
|
||||
|
||||
曲线方程为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?y%5E2+xy%3Dx%5E3+161%20%5Cquad%20%5Cquad%20%5Cquad%20161%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29")
|
||||
</p>
|
||||
|
||||
基点 ![G-inlined] 为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cbegin%7Baligned%7D%20G%26%3D%28G_x%2CG_y%29%20%5C%5C%20G_x%26%3D%5Ctextrm%7B0x56fdcbc6a27acee0cc2996e0096ae74feb1acf220a2341b898b549440297b8cc%7D%20%5Cquad%20G_x%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29%5C%5C%20G_y%26%3D%5Ctextrm%7B0x20da32e8afc90b7cf0e76bde44496b4d0794054e6ea60f388682463132f931a7%7D%20%5Cquad%20G_y%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29%20%5Cend%7Baligned%7D")
|
||||
</p>
|
||||
|
||||
基点 ![G-inlined] 的阶 ![n-inlined] 为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?n%3D%5Ctextrm%7B0x1026dd85081b82314691ced9bbec30547840e4bf72d8b5e0d258442bbcd31%7D%20%5Cquad%20n%5Cin%5Cnolinebreak%5Cmathbb%7BZ%7D")
|
||||
</p>
|
||||
|
||||
## 3. 消息哈希算法
|
||||
|
||||
设长度为 ![l-inlined] 的消息为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?M%3Dm_0m_1%20%5Cldots%20m_%7Bl-1%7D%20%5Cquad%20%5Cquad%20m_i%5Cin%5B0%2C%20256%29")
|
||||
</p>
|
||||
|
||||
则消息 ![M-inlined] 的SHA1值为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Ctextrm%7BSHA%7D_1%28M%29%3DS_0%7C%7CS_1%7C%7CS_2%7C%7CS_3%7C%7CS_4%20%5Cquad%20%5Cquad%20S_i%5Cin%5B0%2C%202%5E%7B32%7D%29")
|
||||
</p>
|
||||
|
||||
其中  为SHA1算法输出时的5个状态值;将这5个状态值按照大端字节序依次输出,即为的SHA1哈希值 。
|
||||
|
||||
WinRAR在做完SHA1计算后,采用大数 ![h-inlined] 作为ECC签名时消息的哈希:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?h%3D%28%5Csum_%7Bi%3D0%7D%5E%7B4%7DS_i%20%5Ccdot%202%5E%7B32i%7D%29+%5Ctextrm%7B0x1bd10xb4e33c7c0ffd8d43%7D%20%5Ccdot%202%5E%7B32*5%7D")
|
||||
</p>
|
||||
|
||||
|
||||
## 4. ECC签名算法
|
||||
|
||||
设私钥为 ![k-inlined],公钥为 ![P-inlined],即:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?P%3Dk%20%5Ccdot%20G")
|
||||
</p>
|
||||
|
||||
消息哈希为 ![h-inlined],则签名  为:
|
||||
|
||||
1. 生成随机数 ![Rnd-inlined],满足 。
|
||||
|
||||
2. 计算 ![r-inlined]
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?r%3D%28%28Rnd%20%5Ccdot%20G%29_x+h%29%5C%20%5C%20Mod%5C%20%5C%20n">
|
||||
</p>
|
||||
|
||||
其中  表示取  的X坐标,同时将X坐标从 ![GF2p15p17-inlined] 转换为大数。
|
||||
|
||||
若  或者  则回到步骤1。
|
||||
|
||||
3. 计算 ![s-inlined]
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?s%3D%28Rnd-kr%29%5C%20%5C%20Mod%5C%20%5C%20n">
|
||||
</p>
|
||||
|
||||
若  则回到步骤1。
|
||||
|
||||
4. 输出 。
|
||||
|
||||
## 5. WinRAR的私钥生成算法
|
||||
|
||||
该算法会利用长度为 ![l-inlined] 的数据
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?T%3Dt_0t_1%20%5Cldots%20t_%7Bl-1%7D%20%5Cquad%20%5Cquad%20t_i%5Cin%5B0%2C256%29">
|
||||
</p>
|
||||
|
||||
来生成私钥 ![k-inlined]。
|
||||
|
||||
1. 设6个32位整数为 ,则有
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?g_j%3D%5Csum_%7Bi%3D0%7D%5E%7B3%7Dg_%7Bj%2Ci%7D%20%5Ccdot%202%5E%7B8i%7D%20%5Cquad%20%5Cquad%20g_%7Bj%2Ci%7D%5Cin%5B0%2C256%29">
|
||||
</p>
|
||||
|
||||
2. 令 。
|
||||
|
||||
3. 如果  则计算 ![T-inlined] 的SHA1值,并将状态值  赋值给 :
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cbegin%7Baligned%7D%20%5Ctextrm%7BSHA%7D_1%28T%29%26%3DS_0%7C%7CS_1%7C%7CS_2%7C%7CS_3%7C%7CS_4%20%5C%5C%20g_1%26%3DS_0%20%5C%5C%20g_2%26%3DS_1%20%5C%5C%20g_3%26%3DS_2%20%5C%5C%20g_4%26%3DS_3%20%5C%5C%20g_5%26%3DS_4%20%5C%5C%20%5Cend%7Baligned%7D">
|
||||
</p>
|
||||
|
||||
否则,即  时,令:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cbegin%7Baligned%7D%20g_1%26%3D%5Ctextrm%7B0xeb3eb781%7D%20%5C%5C%20g_2%26%3D%5Ctextrm%7B0x50265329%7D%20%5C%5C%20g_3%26%3D%5Ctextrm%7B0xdc5ef4a3%7D%20%5C%5C%20g_4%26%3D%5Ctextrm%7B0x6847b9d5%7D%20%5C%5C%20g_5%26%3D%5Ctextrm%7B0xcde43b4c%7D%20%5C%5C%20%5Cend%7Baligned%7D">
|
||||
</p>
|
||||
|
||||
4. 把  作为计数器,自增1。
|
||||
|
||||
计算SHA1值:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Ctextrm%7BSHA%7D_1%28g_%7B0%2C0%7D%7C%7Cg_%7B0%2C1%7D%7C%7Cg_%7B0%2C2%7D%7C%7Cg_%7B0%2C3%7D%7C%7Cg_%7B1%2C0%7D%7C%7Cg_%7B1%2C1%7D%7C%7C%5Cldots%7C%7Cg_%7B5%2C0%7D%7C%7Cg_%7B5%2C1%7D%7C%7Cg_%7B5%2C2%7D%7C%7Cg_%7B5%2C3%7D%29%3DS_0%7C%7CS_1%7C%7CS_2%7C%7CS_3%7C%7CS_4">
|
||||
</p>
|
||||
|
||||
取  的低16位并记为 。
|
||||
|
||||
5. 步骤4再重复14次。
|
||||
|
||||
6. 重复执行完后会得到 ,则输出私钥
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?k%3D%5Csum_%7Bi%3D1%7D%5E%7B15%7Dk_i%20%5Ccdot%202%5E%7B16i%7D">
|
||||
</p>
|
||||
|
||||
## 6. WinRAR的公钥和私钥
|
||||
|
||||
WinRAR的私钥 ![k-inlined] 为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?k%3D%5Ctextrm%7B0x59fe6abcca90bdb95f0105271fa85fb9f11f467450c1ae9044b7fd61d65e%7D%20%5Cquad%20%5Cquad%20k%5Cin%5Cnolinebreak%5Cmathbb%7BZ%7D">
|
||||
</p>
|
||||
|
||||
该私钥是通过算法5生成的,其中数据 ![T-inlined] 的长度为0。
|
||||
|
||||
公钥 ![P-inlined] 为:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cbegin%7Baligned%7D%20P%26%3D%28P_x%2CP_y%29%20%5C%5C%20P_x%26%3D%5Ctextrm%7B0x3861220ed9b36c9753df09a159dfb148135d495db3af8373425ee9a28884ba1a%7D%20%5Cquad%20P_x%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29%20%5C%5C%20P_y%26%3D%5Ctextrm%7B0x12b64e62db43a56114554b0cbd573379338cea9124c8443c4f50e6c8b013ec20%7D%20%5Cquad%20P_y%5Cin%5Ctextrm%7BGF%7D%28%282%5E%7B15%7D%29%5E%7B17%7D%29%20%5Cend%7Baligned%7D">
|
||||
</p>
|
||||
|
||||
## 7. 授权文件"rarreg.key"的生成
|
||||
|
||||
授权文件的生成需要两个参数:
|
||||
|
||||
1. 用户名的ANSI字符串,不包括null-terminator;记为
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?U%3Du_0u_1%20%5Cldots%20u_%7Bl-1%7D">
|
||||
</p>
|
||||
|
||||
2. 授权类型的ANSI字符串,不包括null-terminator;记为
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?L%3Dl_0l_1%20%5Cldots%20l_%7Bl-1%7D">
|
||||
</p>
|
||||
|
||||
`rarreg.key` 的生成算法如下:
|
||||
|
||||
1. 使用用户名 ![UU-inlined] 通过算法5计算出私钥  以及公钥 ,并将公钥  按照SM2压缩公钥格式以Hex字符串(ASCII编码)的形式输出。得到的Hex字符串记为临时值 ![Temp-inlined]。
|
||||
|
||||
![Temp-inlined] 的长度应该为64;若长度不足,则在前面补字符`'0'`,直到长度为64。
|
||||
|
||||
2. 令字符串 ![Data3-inlined]为
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Data%5E3%3D%5Ctexttt%7B%2260%22%7D%7C%7CTemp_0%7C%7CTemp_1%7C%7C%5Cldots%7C%7CTemp_%7B47%7D">
|
||||
</p>
|
||||
|
||||
3. 使用 ![Data3-inlined] 通过算法5计算出私钥  以及公钥 ,并将公钥  按照SM2压缩公钥格式以Hex字符串(ASCII编码)的形式输出。得到的Hex字符串记为 ![Data0-inlined]。
|
||||
|
||||
![Data0-inlined] 的长度应该为64;若长度不足,则在前面补字符`'0'`,直到长度为64。
|
||||
|
||||
4. 令字符串 ![UID-inlined]为
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?UID%3DTemp_%7B48%7D%7C%7CTemp_%7B49%7D%7C%7C%5Cldots%7C%7CTemp_%7B63%7D%7C%7CData%5E0_0%7C%7CData%5E0_1%7C%7CData%5E0_2%7C%7CData%5E0_3">
|
||||
</p>
|
||||
|
||||
5. 对授权类型 ![LL-inlined] 使用算法4得到签名 ,其中私钥见第6节。
|
||||
|
||||
要求  和  的长度都不得超过240比特,否则重复该步骤。
|
||||
|
||||
6. 将  和  以16进制形式输出(无`"0x"`前缀),分别记为  和 。
|
||||
|
||||
若长度不满60,则在前面补字符`'0'`,直到长度为60。
|
||||
|
||||
7. 令字符串 ![Data1-inlined]为
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Data%5E1%3D%5Ctexttt%7B%2260%22%7D%7C%7CSZ%5E%7Bs_L%7D%7C%7CSZ%5E%7Br_L%7D">
|
||||
</p>
|
||||
|
||||
8. 令字符串 ![Temp-inlined]为
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Temp%3DU%7C%7CData%5E0">
|
||||
</p>
|
||||
|
||||
对 ![Temp-inlined] 使用算法4得到签名 ,其中私钥见第6节。
|
||||
|
||||
要求  和  的长度都不得超过240比特,否则重复该步骤。
|
||||
|
||||
9. 将  和  以16进制形式输出(无`"0x"`前缀),分别记为  和 。
|
||||
|
||||
若长度不满60,则在前面补字符`'0'`,直到长度为60。
|
||||
|
||||
10. 令字符串 ![Data2-inlined]为
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?Data%5E2%3D%5Ctexttt%7B%2260%22%7D%7C%7CSZ%5E%7Bs_%7BTemp%7D%7D%7C%7CSZ%5E%7Br_%7BTemp%7D%7D">
|
||||
</p>
|
||||
|
||||
11. 对
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?L%7C%7CU%7C%7CData%5E0%7C%7CData%5E1%7C%7CData%5E2%7C%7CData%5E3">
|
||||
</p>
|
||||
|
||||
计算CRC32值,最终校验和为CRC32值的反。将校验和以10进制形式输出,若长度不满10,则在前面补字符`'0'`,直到长度为10,记为 。
|
||||
|
||||
12. 令字符串 ![Data-inlined]为
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Cinline%20Data%3DData%5E0%7C%7CData%5E1%7C%7CData%5E2%7C%7CData%5E3%7C%7CSZ%5E%7Bchecksum%7D">
|
||||
</p>
|
||||
|
||||
13. 格式化输出。
|
||||
|
||||
* 固定文件头`"RAR registration data"`,占一行。
|
||||
|
||||
* 用户名,占一行。
|
||||
|
||||
* 授权类型,占一行。
|
||||
|
||||
* UID,占一行:
|
||||
|
||||
<p align="center">
|
||||
<img src="http://latex.codecogs.com/svg.latex?%5Ctexttt%7B%22UID%3D%22%7D%7C%7CUID">
|
||||
</p>
|
||||
|
||||
* 将 ![Data-inlined] 按照每行54个字符输出。
|
||||
29
assets/formula/1-dark.svg
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='112.199176pt' height='14.957875pt' viewBox='-.239051 -.235254 112.199176 14.957875'>
|
||||
<defs>
|
||||
<path id='g1-49' d='M2.502615-5.076961C2.502615-5.292154 2.486675-5.300125 2.271482-5.300125C1.944707-4.98132 1.522291-4.790037 .765131-4.790037V-4.527024C.980324-4.527024 1.41071-4.527024 1.872976-4.742217V-.653549C1.872976-.358655 1.849066-.263014 1.091905-.263014H.812951V0C1.139726-.02391 1.825156-.02391 2.183811-.02391S3.235866-.02391 3.56264 0V-.263014H3.283686C2.526526-.263014 2.502615-.358655 2.502615-.653549V-5.076961Z'/>
|
||||
<path id='g1-53' d='M1.115816-4.479203C1.219427-4.447323 1.538232-4.367621 1.872976-4.367621C2.86924-4.367621 3.474969-5.068991 3.474969-5.188543C3.474969-5.276214 3.419178-5.300125 3.379328-5.300125C3.363387-5.300125 3.347447-5.300125 3.275716-5.260274C2.964882-5.140722 2.598257-5.045081 2.16787-5.045081C1.697634-5.045081 1.307098-5.164633 1.060025-5.260274C.980324-5.300125 .964384-5.300125 .956413-5.300125C.852802-5.300125 .852802-5.212453 .852802-5.068991V-2.733748C.852802-2.590286 .852802-2.494645 .980324-2.494645C1.044085-2.494645 1.067995-2.526526 1.107846-2.590286C1.203487-2.709838 1.506351-3.116314 2.183811-3.116314C2.630137-3.116314 2.84533-2.749689 2.917061-2.598257C3.052553-2.311333 3.068493-1.944707 3.068493-1.633873C3.068493-1.338979 3.060523-.908593 2.83736-.557908C2.685928-.318804 2.367123-.071731 1.944707-.071731C1.42665-.071731 .916563-.398506 .73325-.916563C.757161-.908593 .804981-.908593 .812951-.908593C1.036115-.908593 1.211457-1.052055 1.211457-1.299128C1.211457-1.594022 .980324-1.697634 .820922-1.697634C.67746-1.697634 .422416-1.617933 .422416-1.275218C.422416-.557908 1.044085 .167372 1.960648 .167372C2.956912 .167372 3.801743-.605729 3.801743-1.594022C3.801743-2.518555 3.132254-3.339477 2.191781-3.339477C1.793275-3.339477 1.41868-3.211955 1.115816-2.940971V-4.479203Z'/>
|
||||
<path id='g2-40' d='M3.88543 2.905106C3.88543 2.86924 3.88543 2.84533 3.682192 2.642092C2.486675 1.43462 1.817186-.537983 1.817186-2.976837C1.817186-5.296139 2.379078-7.292653 3.765878-8.703362C3.88543-8.810959 3.88543-8.834869 3.88543-8.870735C3.88543-8.942466 3.825654-8.966376 3.777833-8.966376C3.622416-8.966376 2.642092-8.105604 2.056289-6.933998C1.446575-5.726526 1.171606-4.447323 1.171606-2.976837C1.171606-1.912827 1.338979-.490162 1.960648 .789041C2.666002 2.223661 3.646326 3.000747 3.777833 3.000747C3.825654 3.000747 3.88543 2.976837 3.88543 2.905106Z'/>
|
||||
<path id='g2-41' d='M3.371357-2.976837C3.371357-3.88543 3.251806-5.36787 2.582316-6.75467C1.876961-8.18929 .896638-8.966376 .765131-8.966376C.71731-8.966376 .657534-8.942466 .657534-8.870735C.657534-8.834869 .657534-8.810959 .860772-8.607721C2.056289-7.400249 2.725778-5.427646 2.725778-2.988792C2.725778-.669489 2.163885 1.327024 .777086 2.737733C.657534 2.84533 .657534 2.86924 .657534 2.905106C.657534 2.976837 .71731 3.000747 .765131 3.000747C.920548 3.000747 1.900872 2.139975 2.486675 .968369C3.096389-.251059 3.371357-1.542217 3.371357-2.976837Z'/>
|
||||
<path id='g2-43' d='M4.770112-2.761644H8.069738C8.237111-2.761644 8.452304-2.761644 8.452304-2.976837C8.452304-3.203985 8.249066-3.203985 8.069738-3.203985H4.770112V-6.503611C4.770112-6.670984 4.770112-6.886177 4.554919-6.886177C4.327771-6.886177 4.327771-6.682939 4.327771-6.503611V-3.203985H1.028144C.860772-3.203985 .645579-3.203985 .645579-2.988792C.645579-2.761644 .848817-2.761644 1.028144-2.761644H4.327771V.537983C4.327771 .705355 4.327771 .920548 4.542964 .920548C4.770112 .920548 4.770112 .71731 4.770112 .537983V-2.761644Z'/>
|
||||
<path id='g2-49' d='M3.443088-7.663263C3.443088-7.938232 3.443088-7.950187 3.203985-7.950187C2.917061-7.627397 2.319303-7.185056 1.08792-7.185056V-6.838356C1.362889-6.838356 1.960648-6.838356 2.618182-7.149191V-.920548C2.618182-.490162 2.582316-.3467 1.530262-.3467H1.159651V0C1.482441-.02391 2.642092-.02391 3.036613-.02391S4.578829-.02391 4.901619 0V-.3467H4.531009C3.478954-.3467 3.443088-.490162 3.443088-.920548V-7.663263Z'/>
|
||||
<path id='g2-61' d='M8.069738-3.873474C8.237111-3.873474 8.452304-3.873474 8.452304-4.088667C8.452304-4.315816 8.249066-4.315816 8.069738-4.315816H1.028144C.860772-4.315816 .645579-4.315816 .645579-4.100623C.645579-3.873474 .848817-3.873474 1.028144-3.873474H8.069738ZM8.069738-1.649813C8.237111-1.649813 8.452304-1.649813 8.452304-1.865006C8.452304-2.092154 8.249066-2.092154 8.069738-2.092154H1.028144C.860772-2.092154 .645579-2.092154 .645579-1.876961C.645579-1.649813 .848817-1.649813 1.028144-1.649813H8.069738Z'/>
|
||||
<path id='g0-11' d='M5.535243-3.024658C5.535243-4.184309 4.877709-5.272229 3.610461-5.272229C2.044334-5.272229 .478207-3.56264 .478207-1.865006C.478207-.824907 1.123786 .119552 2.343213 .119552C3.084433 .119552 3.969116-.167372 4.817933-.884682C4.985305-.215193 5.355915 .119552 5.869988 .119552C6.515567 .119552 6.838356-.549938 6.838356-.705355C6.838356-.812951 6.75467-.812951 6.718804-.812951C6.623163-.812951 6.611208-.777086 6.575342-.681445C6.467746-.382565 6.192777-.119552 5.905853-.119552C5.535243-.119552 5.535243-.884682 5.535243-1.613948C6.75467-3.072478 7.041594-4.578829 7.041594-4.590785C7.041594-4.698381 6.945953-4.698381 6.910087-4.698381C6.802491-4.698381 6.790535-4.662516 6.742715-4.447323C6.587298-3.921295 6.276463-2.988792 5.535243-2.008468V-3.024658ZM4.782067-1.171606C3.730012-.227148 2.785554-.119552 2.367123-.119552C1.518306-.119552 1.279203-.872727 1.279203-1.43462C1.279203-1.948692 1.542217-3.16812 1.912827-3.825654C2.402989-4.662516 3.072478-5.033126 3.610461-5.033126C4.770112-5.033126 4.770112-3.514819 4.770112-2.510585C4.770112-2.211706 4.758157-1.900872 4.758157-1.601993C4.758157-1.362889 4.770112-1.303113 4.782067-1.171606Z'/>
|
||||
<path id='g0-80' d='M3.53873-3.801743H5.547198C7.197011-3.801743 8.846824-5.021171 8.846824-6.38406C8.846824-7.316563 8.057783-8.16538 6.551432-8.16538H2.857285C2.630137-8.16538 2.52254-8.16538 2.52254-7.938232C2.52254-7.81868 2.630137-7.81868 2.809465-7.81868C3.53873-7.81868 3.53873-7.723039 3.53873-7.591532C3.53873-7.567621 3.53873-7.49589 3.490909-7.316563L1.876961-.884682C1.769365-.466252 1.745455-.3467 .908593-.3467C.681445-.3467 .561893-.3467 .561893-.131507C.561893 0 .669489 0 .74122 0C.968369 0 1.207472-.02391 1.43462-.02391H2.833375C3.060523-.02391 3.311582 0 3.53873 0C3.634371 0 3.765878 0 3.765878-.227148C3.765878-.3467 3.658281-.3467 3.478954-.3467C2.761644-.3467 2.749689-.430386 2.749689-.549938C2.749689-.609714 2.761644-.6934 2.773599-.753176L3.53873-3.801743ZM4.399502-7.352428C4.507098-7.79477 4.554919-7.81868 5.021171-7.81868H6.204732C7.10137-7.81868 7.84259-7.531756 7.84259-6.635118C7.84259-6.324284 7.687173-5.308095 7.137235-4.758157C6.933998-4.542964 6.360149-4.088667 5.272229-4.088667H3.58655L4.399502-7.352428Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -63.986043 -62.969593)'>
|
||||
<use x='56.413267' y='65.753425' xlink:href='#g0-80'/>
|
||||
<use x='65.584366' y='65.753425' xlink:href='#g2-40'/>
|
||||
<use x='70.136691' y='65.753425' xlink:href='#g0-11'/>
|
||||
<use x='77.658415' y='65.753425' xlink:href='#g2-41'/>
|
||||
<use x='85.531571' y='65.753425' xlink:href='#g2-61'/>
|
||||
<use x='97.957051' y='65.753425' xlink:href='#g0-11'/>
|
||||
<use x='105.478776' y='60.817239' xlink:href='#g1-49'/>
|
||||
<use x='109.712958' y='60.817239' xlink:href='#g1-53'/>
|
||||
<use x='117.101937' y='65.753425' xlink:href='#g2-43'/>
|
||||
<use x='128.863252' y='65.753425' xlink:href='#g0-11'/>
|
||||
<use x='139.041639' y='65.753425' xlink:href='#g2-43'/>
|
||||
<use x='150.802954' y='65.753425' xlink:href='#g2-49'/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
29
assets/formula/1-light.svg
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='112.199176pt' height='14.957875pt' viewBox='-.239051 -.235254 112.199176 14.957875'>
|
||||
<defs>
|
||||
<path id='g1-49' d='M2.502615-5.076961C2.502615-5.292154 2.486675-5.300125 2.271482-5.300125C1.944707-4.98132 1.522291-4.790037 .765131-4.790037V-4.527024C.980324-4.527024 1.41071-4.527024 1.872976-4.742217V-.653549C1.872976-.358655 1.849066-.263014 1.091905-.263014H.812951V0C1.139726-.02391 1.825156-.02391 2.183811-.02391S3.235866-.02391 3.56264 0V-.263014H3.283686C2.526526-.263014 2.502615-.358655 2.502615-.653549V-5.076961Z'/>
|
||||
<path id='g1-53' d='M1.115816-4.479203C1.219427-4.447323 1.538232-4.367621 1.872976-4.367621C2.86924-4.367621 3.474969-5.068991 3.474969-5.188543C3.474969-5.276214 3.419178-5.300125 3.379328-5.300125C3.363387-5.300125 3.347447-5.300125 3.275716-5.260274C2.964882-5.140722 2.598257-5.045081 2.16787-5.045081C1.697634-5.045081 1.307098-5.164633 1.060025-5.260274C.980324-5.300125 .964384-5.300125 .956413-5.300125C.852802-5.300125 .852802-5.212453 .852802-5.068991V-2.733748C.852802-2.590286 .852802-2.494645 .980324-2.494645C1.044085-2.494645 1.067995-2.526526 1.107846-2.590286C1.203487-2.709838 1.506351-3.116314 2.183811-3.116314C2.630137-3.116314 2.84533-2.749689 2.917061-2.598257C3.052553-2.311333 3.068493-1.944707 3.068493-1.633873C3.068493-1.338979 3.060523-.908593 2.83736-.557908C2.685928-.318804 2.367123-.071731 1.944707-.071731C1.42665-.071731 .916563-.398506 .73325-.916563C.757161-.908593 .804981-.908593 .812951-.908593C1.036115-.908593 1.211457-1.052055 1.211457-1.299128C1.211457-1.594022 .980324-1.697634 .820922-1.697634C.67746-1.697634 .422416-1.617933 .422416-1.275218C.422416-.557908 1.044085 .167372 1.960648 .167372C2.956912 .167372 3.801743-.605729 3.801743-1.594022C3.801743-2.518555 3.132254-3.339477 2.191781-3.339477C1.793275-3.339477 1.41868-3.211955 1.115816-2.940971V-4.479203Z'/>
|
||||
<path id='g2-40' d='M3.88543 2.905106C3.88543 2.86924 3.88543 2.84533 3.682192 2.642092C2.486675 1.43462 1.817186-.537983 1.817186-2.976837C1.817186-5.296139 2.379078-7.292653 3.765878-8.703362C3.88543-8.810959 3.88543-8.834869 3.88543-8.870735C3.88543-8.942466 3.825654-8.966376 3.777833-8.966376C3.622416-8.966376 2.642092-8.105604 2.056289-6.933998C1.446575-5.726526 1.171606-4.447323 1.171606-2.976837C1.171606-1.912827 1.338979-.490162 1.960648 .789041C2.666002 2.223661 3.646326 3.000747 3.777833 3.000747C3.825654 3.000747 3.88543 2.976837 3.88543 2.905106Z'/>
|
||||
<path id='g2-41' d='M3.371357-2.976837C3.371357-3.88543 3.251806-5.36787 2.582316-6.75467C1.876961-8.18929 .896638-8.966376 .765131-8.966376C.71731-8.966376 .657534-8.942466 .657534-8.870735C.657534-8.834869 .657534-8.810959 .860772-8.607721C2.056289-7.400249 2.725778-5.427646 2.725778-2.988792C2.725778-.669489 2.163885 1.327024 .777086 2.737733C.657534 2.84533 .657534 2.86924 .657534 2.905106C.657534 2.976837 .71731 3.000747 .765131 3.000747C.920548 3.000747 1.900872 2.139975 2.486675 .968369C3.096389-.251059 3.371357-1.542217 3.371357-2.976837Z'/>
|
||||
<path id='g2-43' d='M4.770112-2.761644H8.069738C8.237111-2.761644 8.452304-2.761644 8.452304-2.976837C8.452304-3.203985 8.249066-3.203985 8.069738-3.203985H4.770112V-6.503611C4.770112-6.670984 4.770112-6.886177 4.554919-6.886177C4.327771-6.886177 4.327771-6.682939 4.327771-6.503611V-3.203985H1.028144C.860772-3.203985 .645579-3.203985 .645579-2.988792C.645579-2.761644 .848817-2.761644 1.028144-2.761644H4.327771V.537983C4.327771 .705355 4.327771 .920548 4.542964 .920548C4.770112 .920548 4.770112 .71731 4.770112 .537983V-2.761644Z'/>
|
||||
<path id='g2-49' d='M3.443088-7.663263C3.443088-7.938232 3.443088-7.950187 3.203985-7.950187C2.917061-7.627397 2.319303-7.185056 1.08792-7.185056V-6.838356C1.362889-6.838356 1.960648-6.838356 2.618182-7.149191V-.920548C2.618182-.490162 2.582316-.3467 1.530262-.3467H1.159651V0C1.482441-.02391 2.642092-.02391 3.036613-.02391S4.578829-.02391 4.901619 0V-.3467H4.531009C3.478954-.3467 3.443088-.490162 3.443088-.920548V-7.663263Z'/>
|
||||
<path id='g2-61' d='M8.069738-3.873474C8.237111-3.873474 8.452304-3.873474 8.452304-4.088667C8.452304-4.315816 8.249066-4.315816 8.069738-4.315816H1.028144C.860772-4.315816 .645579-4.315816 .645579-4.100623C.645579-3.873474 .848817-3.873474 1.028144-3.873474H8.069738ZM8.069738-1.649813C8.237111-1.649813 8.452304-1.649813 8.452304-1.865006C8.452304-2.092154 8.249066-2.092154 8.069738-2.092154H1.028144C.860772-2.092154 .645579-2.092154 .645579-1.876961C.645579-1.649813 .848817-1.649813 1.028144-1.649813H8.069738Z'/>
|
||||
<path id='g0-11' d='M5.535243-3.024658C5.535243-4.184309 4.877709-5.272229 3.610461-5.272229C2.044334-5.272229 .478207-3.56264 .478207-1.865006C.478207-.824907 1.123786 .119552 2.343213 .119552C3.084433 .119552 3.969116-.167372 4.817933-.884682C4.985305-.215193 5.355915 .119552 5.869988 .119552C6.515567 .119552 6.838356-.549938 6.838356-.705355C6.838356-.812951 6.75467-.812951 6.718804-.812951C6.623163-.812951 6.611208-.777086 6.575342-.681445C6.467746-.382565 6.192777-.119552 5.905853-.119552C5.535243-.119552 5.535243-.884682 5.535243-1.613948C6.75467-3.072478 7.041594-4.578829 7.041594-4.590785C7.041594-4.698381 6.945953-4.698381 6.910087-4.698381C6.802491-4.698381 6.790535-4.662516 6.742715-4.447323C6.587298-3.921295 6.276463-2.988792 5.535243-2.008468V-3.024658ZM4.782067-1.171606C3.730012-.227148 2.785554-.119552 2.367123-.119552C1.518306-.119552 1.279203-.872727 1.279203-1.43462C1.279203-1.948692 1.542217-3.16812 1.912827-3.825654C2.402989-4.662516 3.072478-5.033126 3.610461-5.033126C4.770112-5.033126 4.770112-3.514819 4.770112-2.510585C4.770112-2.211706 4.758157-1.900872 4.758157-1.601993C4.758157-1.362889 4.770112-1.303113 4.782067-1.171606Z'/>
|
||||
<path id='g0-80' d='M3.53873-3.801743H5.547198C7.197011-3.801743 8.846824-5.021171 8.846824-6.38406C8.846824-7.316563 8.057783-8.16538 6.551432-8.16538H2.857285C2.630137-8.16538 2.52254-8.16538 2.52254-7.938232C2.52254-7.81868 2.630137-7.81868 2.809465-7.81868C3.53873-7.81868 3.53873-7.723039 3.53873-7.591532C3.53873-7.567621 3.53873-7.49589 3.490909-7.316563L1.876961-.884682C1.769365-.466252 1.745455-.3467 .908593-.3467C.681445-.3467 .561893-.3467 .561893-.131507C.561893 0 .669489 0 .74122 0C.968369 0 1.207472-.02391 1.43462-.02391H2.833375C3.060523-.02391 3.311582 0 3.53873 0C3.634371 0 3.765878 0 3.765878-.227148C3.765878-.3467 3.658281-.3467 3.478954-.3467C2.761644-.3467 2.749689-.430386 2.749689-.549938C2.749689-.609714 2.761644-.6934 2.773599-.753176L3.53873-3.801743ZM4.399502-7.352428C4.507098-7.79477 4.554919-7.81868 5.021171-7.81868H6.204732C7.10137-7.81868 7.84259-7.531756 7.84259-6.635118C7.84259-6.324284 7.687173-5.308095 7.137235-4.758157C6.933998-4.542964 6.360149-4.088667 5.272229-4.088667H3.58655L4.399502-7.352428Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -63.986043 -62.969593)'>
|
||||
<use x='56.413267' y='65.753425' xlink:href='#g0-80'/>
|
||||
<use x='65.584366' y='65.753425' xlink:href='#g2-40'/>
|
||||
<use x='70.136691' y='65.753425' xlink:href='#g0-11'/>
|
||||
<use x='77.658415' y='65.753425' xlink:href='#g2-41'/>
|
||||
<use x='85.531571' y='65.753425' xlink:href='#g2-61'/>
|
||||
<use x='97.957051' y='65.753425' xlink:href='#g0-11'/>
|
||||
<use x='105.478776' y='60.817239' xlink:href='#g1-49'/>
|
||||
<use x='109.712958' y='60.817239' xlink:href='#g1-53'/>
|
||||
<use x='117.101937' y='65.753425' xlink:href='#g2-43'/>
|
||||
<use x='128.863252' y='65.753425' xlink:href='#g0-11'/>
|
||||
<use x='139.041639' y='65.753425' xlink:href='#g2-43'/>
|
||||
<use x='150.802954' y='65.753425' xlink:href='#g2-49'/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
18
assets/formula/GF2-inlined-dark.svg
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg fill="#fff" version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='32.24069pt' height='12.327269pt' viewBox='-.299738 -.256625 32.24069 12.327269'>
|
||||
<defs>
|
||||
<path id='g0-40' d='M3.610908 2.618181C3.610908 2.585454 3.610908 2.563636 3.425454 2.378181C2.061818 1.003636 1.712727-1.058182 1.712727-2.727272C1.712727-4.625453 2.127272-6.523635 3.46909-7.887271C3.610908-8.01818 3.610908-8.039998 3.610908-8.072725C3.610908-8.149089 3.567272-8.181816 3.501817-8.181816C3.392726-8.181816 2.410908-7.439998 1.767272-6.054544C1.210909-4.854544 1.08-3.643635 1.08-2.727272C1.08-1.876363 1.2-.556363 1.799999 .676363C2.454545 2.018181 3.392726 2.727272 3.501817 2.727272C3.567272 2.727272 3.610908 2.694545 3.610908 2.618181Z'/>
|
||||
<path id='g0-41' d='M3.152726-2.727272C3.152726-3.578181 3.032726-4.89818 2.432727-6.130907C1.778181-7.472725 .84-8.181816 .730909-8.181816C.665454-8.181816 .621818-8.13818 .621818-8.072725C.621818-8.039998 .621818-8.01818 .829091-7.821816C1.898181-6.741816 2.519999-5.007271 2.519999-2.727272C2.519999-.861818 2.116363 1.058182 .763636 2.432727C.621818 2.563636 .621818 2.585454 .621818 2.618181C.621818 2.683636 .665454 2.727272 .730909 2.727272C.84 2.727272 1.821818 1.985454 2.465454 .6C3.021817-.6 3.152726-1.810909 3.152726-2.727272Z'/>
|
||||
<path id='g0-50' d='M1.385454-.84L2.541817-1.963636C4.243635-3.46909 4.89818-4.058181 4.89818-5.149089C4.89818-6.392725 3.916363-7.265453 2.585454-7.265453C1.352727-7.265453 .545454-6.261816 .545454-5.290908C.545454-4.679999 1.090909-4.679999 1.123636-4.679999C1.309091-4.679999 1.690909-4.810908 1.690909-5.25818C1.690909-5.541817 1.494545-5.825453 1.112727-5.825453C1.025454-5.825453 1.003636-5.825453 .970909-5.814544C1.221818-6.523635 1.810909-6.927271 2.443636-6.927271C3.436363-6.927271 3.905453-6.043635 3.905453-5.149089C3.905453-4.276362 3.359999-3.414545 2.759999-2.738181L.665454-.403636C.545454-.283636 .545454-.261818 .545454 0H4.592726L4.89818-1.898181H4.625453C4.570908-1.570909 4.494544-1.090909 4.385453-.927272C4.30909-.84 3.58909-.84 3.34909-.84H1.385454Z'/>
|
||||
<path id='g0-70' d='M6.349089-7.41818H.36V-7.079998H.621818C1.461818-7.079998 1.483636-6.959998 1.483636-6.567271V-.850909C1.483636-.458182 1.461818-.338182 .621818-.338182H.36V0C.741818-.032727 1.592727-.032727 2.018181-.032727C2.465454-.032727 3.458181-.032727 3.850908 0V-.338182H3.490908C2.454545-.338182 2.454545-.48 2.454545-.861818V-3.545454H3.392726C4.439999-3.545454 4.54909-3.196363 4.54909-2.26909H4.821817V-5.159999H4.54909C4.54909-4.243635 4.439999-3.883635 3.392726-3.883635H2.454545V-6.643635C2.454545-7.003634 2.476363-7.079998 2.98909-7.079998H4.298181C5.934544-7.079998 6.207271-6.469089 6.381816-4.963635H6.654544L6.349089-7.41818Z'/>
|
||||
<path id='g0-71' d='M6.469089-.687273C6.610907-.447273 7.047271-.010909 7.167271-.010909C7.265453-.010909 7.265453-.098182 7.265453-.261818V-2.159999C7.265453-2.585454 7.309089-2.639999 8.01818-2.639999V-2.978181C7.614543-2.967272 7.014543-2.945454 6.687271-2.945454C6.250907-2.945454 5.323635-2.945454 4.930908-2.978181V-2.639999H5.279999C6.261816-2.639999 6.294544-2.519999 6.294544-2.116363V-1.418181C6.294544-.196364 4.90909-.098182 4.603635-.098182C3.894544-.098182 1.734545-.48 1.734545-3.730908C1.734545-6.992725 3.883635-7.352725 4.538181-7.352725C5.705453-7.352725 6.69818-6.370907 6.916362-4.767271C6.93818-4.614544 6.93818-4.581817 7.090907-4.581817C7.265453-4.581817 7.265453-4.614544 7.265453-4.843635V-7.429089C7.265453-7.614543 7.265453-7.690907 7.145453-7.690907C7.101816-7.690907 7.05818-7.690907 6.970907-7.559998L6.425453-6.752725C6.076362-7.101816 5.487271-7.690907 4.407271-7.690907C2.378181-7.690907 .610909-5.967271 .610909-3.730908S2.356363 .24 4.42909 .24C5.225453 .24 6.09818-.043636 6.469089-.687273Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -80.23 -68.689878)'>
|
||||
<use x='70.734745' y='68.742217' xlink:href='#g0-71'/>
|
||||
<use x='79.29537' y='68.742217' xlink:href='#g0-70'/>
|
||||
<use x='86.416599' y='68.742217' xlink:href='#g0-40'/>
|
||||
<use x='90.659037' y='68.742217' xlink:href='#g0-50'/>
|
||||
<use x='96.113602' y='68.742217' xlink:href='#g0-41'/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
18
assets/formula/GF2-inlined-light.svg
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='32.24069pt' height='12.327269pt' viewBox='-.299738 -.256625 32.24069 12.327269'>
|
||||
<defs>
|
||||
<path id='g0-40' d='M3.610908 2.618181C3.610908 2.585454 3.610908 2.563636 3.425454 2.378181C2.061818 1.003636 1.712727-1.058182 1.712727-2.727272C1.712727-4.625453 2.127272-6.523635 3.46909-7.887271C3.610908-8.01818 3.610908-8.039998 3.610908-8.072725C3.610908-8.149089 3.567272-8.181816 3.501817-8.181816C3.392726-8.181816 2.410908-7.439998 1.767272-6.054544C1.210909-4.854544 1.08-3.643635 1.08-2.727272C1.08-1.876363 1.2-.556363 1.799999 .676363C2.454545 2.018181 3.392726 2.727272 3.501817 2.727272C3.567272 2.727272 3.610908 2.694545 3.610908 2.618181Z'/>
|
||||
<path id='g0-41' d='M3.152726-2.727272C3.152726-3.578181 3.032726-4.89818 2.432727-6.130907C1.778181-7.472725 .84-8.181816 .730909-8.181816C.665454-8.181816 .621818-8.13818 .621818-8.072725C.621818-8.039998 .621818-8.01818 .829091-7.821816C1.898181-6.741816 2.519999-5.007271 2.519999-2.727272C2.519999-.861818 2.116363 1.058182 .763636 2.432727C.621818 2.563636 .621818 2.585454 .621818 2.618181C.621818 2.683636 .665454 2.727272 .730909 2.727272C.84 2.727272 1.821818 1.985454 2.465454 .6C3.021817-.6 3.152726-1.810909 3.152726-2.727272Z'/>
|
||||
<path id='g0-50' d='M1.385454-.84L2.541817-1.963636C4.243635-3.46909 4.89818-4.058181 4.89818-5.149089C4.89818-6.392725 3.916363-7.265453 2.585454-7.265453C1.352727-7.265453 .545454-6.261816 .545454-5.290908C.545454-4.679999 1.090909-4.679999 1.123636-4.679999C1.309091-4.679999 1.690909-4.810908 1.690909-5.25818C1.690909-5.541817 1.494545-5.825453 1.112727-5.825453C1.025454-5.825453 1.003636-5.825453 .970909-5.814544C1.221818-6.523635 1.810909-6.927271 2.443636-6.927271C3.436363-6.927271 3.905453-6.043635 3.905453-5.149089C3.905453-4.276362 3.359999-3.414545 2.759999-2.738181L.665454-.403636C.545454-.283636 .545454-.261818 .545454 0H4.592726L4.89818-1.898181H4.625453C4.570908-1.570909 4.494544-1.090909 4.385453-.927272C4.30909-.84 3.58909-.84 3.34909-.84H1.385454Z'/>
|
||||
<path id='g0-70' d='M6.349089-7.41818H.36V-7.079998H.621818C1.461818-7.079998 1.483636-6.959998 1.483636-6.567271V-.850909C1.483636-.458182 1.461818-.338182 .621818-.338182H.36V0C.741818-.032727 1.592727-.032727 2.018181-.032727C2.465454-.032727 3.458181-.032727 3.850908 0V-.338182H3.490908C2.454545-.338182 2.454545-.48 2.454545-.861818V-3.545454H3.392726C4.439999-3.545454 4.54909-3.196363 4.54909-2.26909H4.821817V-5.159999H4.54909C4.54909-4.243635 4.439999-3.883635 3.392726-3.883635H2.454545V-6.643635C2.454545-7.003634 2.476363-7.079998 2.98909-7.079998H4.298181C5.934544-7.079998 6.207271-6.469089 6.381816-4.963635H6.654544L6.349089-7.41818Z'/>
|
||||
<path id='g0-71' d='M6.469089-.687273C6.610907-.447273 7.047271-.010909 7.167271-.010909C7.265453-.010909 7.265453-.098182 7.265453-.261818V-2.159999C7.265453-2.585454 7.309089-2.639999 8.01818-2.639999V-2.978181C7.614543-2.967272 7.014543-2.945454 6.687271-2.945454C6.250907-2.945454 5.323635-2.945454 4.930908-2.978181V-2.639999H5.279999C6.261816-2.639999 6.294544-2.519999 6.294544-2.116363V-1.418181C6.294544-.196364 4.90909-.098182 4.603635-.098182C3.894544-.098182 1.734545-.48 1.734545-3.730908C1.734545-6.992725 3.883635-7.352725 4.538181-7.352725C5.705453-7.352725 6.69818-6.370907 6.916362-4.767271C6.93818-4.614544 6.93818-4.581817 7.090907-4.581817C7.265453-4.581817 7.265453-4.614544 7.265453-4.843635V-7.429089C7.265453-7.614543 7.265453-7.690907 7.145453-7.690907C7.101816-7.690907 7.05818-7.690907 6.970907-7.559998L6.425453-6.752725C6.076362-7.101816 5.487271-7.690907 4.407271-7.690907C2.378181-7.690907 .610909-5.967271 .610909-3.730908S2.356363 .24 4.42909 .24C5.225453 .24 6.09818-.043636 6.469089-.687273Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -80.23 -68.689878)'>
|
||||
<use x='70.734745' y='68.742217' xlink:href='#g0-71'/>
|
||||
<use x='79.29537' y='68.742217' xlink:href='#g0-70'/>
|
||||
<use x='86.416599' y='68.742217' xlink:href='#g0-40'/>
|
||||
<use x='90.659037' y='68.742217' xlink:href='#g0-50'/>
|
||||
<use x='96.113602' y='68.742217' xlink:href='#g0-41'/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
22
assets/formula/GF2p15-inlined-dark.svg
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg fill="#fff" version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='42.372832pt' height='13.544422pt' viewBox='-.299738 -.25206 42.372832 13.544422'>
|
||||
<defs>
|
||||
<path id='g0-49' d='M2.502615-5.076961C2.502615-5.292154 2.486675-5.300125 2.271482-5.300125C1.944707-4.98132 1.522291-4.790037 .765131-4.790037V-4.527024C.980324-4.527024 1.41071-4.527024 1.872976-4.742217V-.653549C1.872976-.358655 1.849066-.263014 1.091905-.263014H.812951V0C1.139726-.02391 1.825156-.02391 2.183811-.02391S3.235866-.02391 3.56264 0V-.263014H3.283686C2.526526-.263014 2.502615-.358655 2.502615-.653549V-5.076961Z'/>
|
||||
<path id='g0-53' d='M1.115816-4.479203C1.219427-4.447323 1.538232-4.367621 1.872976-4.367621C2.86924-4.367621 3.474969-5.068991 3.474969-5.188543C3.474969-5.276214 3.419178-5.300125 3.379328-5.300125C3.363387-5.300125 3.347447-5.300125 3.275716-5.260274C2.964882-5.140722 2.598257-5.045081 2.16787-5.045081C1.697634-5.045081 1.307098-5.164633 1.060025-5.260274C.980324-5.300125 .964384-5.300125 .956413-5.300125C.852802-5.300125 .852802-5.212453 .852802-5.068991V-2.733748C.852802-2.590286 .852802-2.494645 .980324-2.494645C1.044085-2.494645 1.067995-2.526526 1.107846-2.590286C1.203487-2.709838 1.506351-3.116314 2.183811-3.116314C2.630137-3.116314 2.84533-2.749689 2.917061-2.598257C3.052553-2.311333 3.068493-1.944707 3.068493-1.633873C3.068493-1.338979 3.060523-.908593 2.83736-.557908C2.685928-.318804 2.367123-.071731 1.944707-.071731C1.42665-.071731 .916563-.398506 .73325-.916563C.757161-.908593 .804981-.908593 .812951-.908593C1.036115-.908593 1.211457-1.052055 1.211457-1.299128C1.211457-1.594022 .980324-1.697634 .820922-1.697634C.67746-1.697634 .422416-1.617933 .422416-1.275218C.422416-.557908 1.044085 .167372 1.960648 .167372C2.956912 .167372 3.801743-.605729 3.801743-1.594022C3.801743-2.518555 3.132254-3.339477 2.191781-3.339477C1.793275-3.339477 1.41868-3.211955 1.115816-2.940971V-4.479203Z'/>
|
||||
<path id='g1-40' d='M3.610908 2.618181C3.610908 2.585454 3.610908 2.563636 3.425454 2.378181C2.061818 1.003636 1.712727-1.058182 1.712727-2.727272C1.712727-4.625453 2.127272-6.523635 3.46909-7.887271C3.610908-8.01818 3.610908-8.039998 3.610908-8.072725C3.610908-8.149089 3.567272-8.181816 3.501817-8.181816C3.392726-8.181816 2.410908-7.439998 1.767272-6.054544C1.210909-4.854544 1.08-3.643635 1.08-2.727272C1.08-1.876363 1.2-.556363 1.799999 .676363C2.454545 2.018181 3.392726 2.727272 3.501817 2.727272C3.567272 2.727272 3.610908 2.694545 3.610908 2.618181Z'/>
|
||||
<path id='g1-41' d='M3.152726-2.727272C3.152726-3.578181 3.032726-4.89818 2.432727-6.130907C1.778181-7.472725 .84-8.181816 .730909-8.181816C.665454-8.181816 .621818-8.13818 .621818-8.072725C.621818-8.039998 .621818-8.01818 .829091-7.821816C1.898181-6.741816 2.519999-5.007271 2.519999-2.727272C2.519999-.861818 2.116363 1.058182 .763636 2.432727C.621818 2.563636 .621818 2.585454 .621818 2.618181C.621818 2.683636 .665454 2.727272 .730909 2.727272C.84 2.727272 1.821818 1.985454 2.465454 .6C3.021817-.6 3.152726-1.810909 3.152726-2.727272Z'/>
|
||||
<path id='g1-50' d='M1.385454-.84L2.541817-1.963636C4.243635-3.46909 4.89818-4.058181 4.89818-5.149089C4.89818-6.392725 3.916363-7.265453 2.585454-7.265453C1.352727-7.265453 .545454-6.261816 .545454-5.290908C.545454-4.679999 1.090909-4.679999 1.123636-4.679999C1.309091-4.679999 1.690909-4.810908 1.690909-5.25818C1.690909-5.541817 1.494545-5.825453 1.112727-5.825453C1.025454-5.825453 1.003636-5.825453 .970909-5.814544C1.221818-6.523635 1.810909-6.927271 2.443636-6.927271C3.436363-6.927271 3.905453-6.043635 3.905453-5.149089C3.905453-4.276362 3.359999-3.414545 2.759999-2.738181L.665454-.403636C.545454-.283636 .545454-.261818 .545454 0H4.592726L4.89818-1.898181H4.625453C4.570908-1.570909 4.494544-1.090909 4.385453-.927272C4.30909-.84 3.58909-.84 3.34909-.84H1.385454Z'/>
|
||||
<path id='g1-70' d='M6.349089-7.41818H.36V-7.079998H.621818C1.461818-7.079998 1.483636-6.959998 1.483636-6.567271V-.850909C1.483636-.458182 1.461818-.338182 .621818-.338182H.36V0C.741818-.032727 1.592727-.032727 2.018181-.032727C2.465454-.032727 3.458181-.032727 3.850908 0V-.338182H3.490908C2.454545-.338182 2.454545-.48 2.454545-.861818V-3.545454H3.392726C4.439999-3.545454 4.54909-3.196363 4.54909-2.26909H4.821817V-5.159999H4.54909C4.54909-4.243635 4.439999-3.883635 3.392726-3.883635H2.454545V-6.643635C2.454545-7.003634 2.476363-7.079998 2.98909-7.079998H4.298181C5.934544-7.079998 6.207271-6.469089 6.381816-4.963635H6.654544L6.349089-7.41818Z'/>
|
||||
<path id='g1-71' d='M6.469089-.687273C6.610907-.447273 7.047271-.010909 7.167271-.010909C7.265453-.010909 7.265453-.098182 7.265453-.261818V-2.159999C7.265453-2.585454 7.309089-2.639999 8.01818-2.639999V-2.978181C7.614543-2.967272 7.014543-2.945454 6.687271-2.945454C6.250907-2.945454 5.323635-2.945454 4.930908-2.978181V-2.639999H5.279999C6.261816-2.639999 6.294544-2.519999 6.294544-2.116363V-1.418181C6.294544-.196364 4.90909-.098182 4.603635-.098182C3.894544-.098182 1.734545-.48 1.734545-3.730908C1.734545-6.992725 3.883635-7.352725 4.538181-7.352725C5.705453-7.352725 6.69818-6.370907 6.916362-4.767271C6.93818-4.614544 6.93818-4.581817 7.090907-4.581817C7.265453-4.581817 7.265453-4.614544 7.265453-4.843635V-7.429089C7.265453-7.614543 7.265453-7.690907 7.145453-7.690907C7.101816-7.690907 7.05818-7.690907 6.970907-7.559998L6.425453-6.752725C6.076362-7.101816 5.487271-7.690907 4.407271-7.690907C2.378181-7.690907 .610909-5.967271 .610909-3.730908S2.356363 .24 4.42909 .24C5.225453 .24 6.09818-.043636 6.469089-.687273Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -80.23 -67.46816)'>
|
||||
<use x='70.734745' y='68.742217' xlink:href='#g1-71'/>
|
||||
<use x='79.29537' y='68.742217' xlink:href='#g1-70'/>
|
||||
<use x='86.416599' y='68.742217' xlink:href='#g1-40'/>
|
||||
<use x='90.659037' y='68.742217' xlink:href='#g1-50'/>
|
||||
<use x='96.113602' y='64.783399' xlink:href='#g0-49'/>
|
||||
<use x='100.347785' y='64.783399' xlink:href='#g0-53'/>
|
||||
<use x='105.0801' y='68.742217' xlink:href='#g1-41'/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
22
assets/formula/GF2p15-inlined-light.svg
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='42.372832pt' height='13.544422pt' viewBox='-.299738 -.25206 42.372832 13.544422'>
|
||||
<defs>
|
||||
<path id='g0-49' d='M2.502615-5.076961C2.502615-5.292154 2.486675-5.300125 2.271482-5.300125C1.944707-4.98132 1.522291-4.790037 .765131-4.790037V-4.527024C.980324-4.527024 1.41071-4.527024 1.872976-4.742217V-.653549C1.872976-.358655 1.849066-.263014 1.091905-.263014H.812951V0C1.139726-.02391 1.825156-.02391 2.183811-.02391S3.235866-.02391 3.56264 0V-.263014H3.283686C2.526526-.263014 2.502615-.358655 2.502615-.653549V-5.076961Z'/>
|
||||
<path id='g0-53' d='M1.115816-4.479203C1.219427-4.447323 1.538232-4.367621 1.872976-4.367621C2.86924-4.367621 3.474969-5.068991 3.474969-5.188543C3.474969-5.276214 3.419178-5.300125 3.379328-5.300125C3.363387-5.300125 3.347447-5.300125 3.275716-5.260274C2.964882-5.140722 2.598257-5.045081 2.16787-5.045081C1.697634-5.045081 1.307098-5.164633 1.060025-5.260274C.980324-5.300125 .964384-5.300125 .956413-5.300125C.852802-5.300125 .852802-5.212453 .852802-5.068991V-2.733748C.852802-2.590286 .852802-2.494645 .980324-2.494645C1.044085-2.494645 1.067995-2.526526 1.107846-2.590286C1.203487-2.709838 1.506351-3.116314 2.183811-3.116314C2.630137-3.116314 2.84533-2.749689 2.917061-2.598257C3.052553-2.311333 3.068493-1.944707 3.068493-1.633873C3.068493-1.338979 3.060523-.908593 2.83736-.557908C2.685928-.318804 2.367123-.071731 1.944707-.071731C1.42665-.071731 .916563-.398506 .73325-.916563C.757161-.908593 .804981-.908593 .812951-.908593C1.036115-.908593 1.211457-1.052055 1.211457-1.299128C1.211457-1.594022 .980324-1.697634 .820922-1.697634C.67746-1.697634 .422416-1.617933 .422416-1.275218C.422416-.557908 1.044085 .167372 1.960648 .167372C2.956912 .167372 3.801743-.605729 3.801743-1.594022C3.801743-2.518555 3.132254-3.339477 2.191781-3.339477C1.793275-3.339477 1.41868-3.211955 1.115816-2.940971V-4.479203Z'/>
|
||||
<path id='g1-40' d='M3.610908 2.618181C3.610908 2.585454 3.610908 2.563636 3.425454 2.378181C2.061818 1.003636 1.712727-1.058182 1.712727-2.727272C1.712727-4.625453 2.127272-6.523635 3.46909-7.887271C3.610908-8.01818 3.610908-8.039998 3.610908-8.072725C3.610908-8.149089 3.567272-8.181816 3.501817-8.181816C3.392726-8.181816 2.410908-7.439998 1.767272-6.054544C1.210909-4.854544 1.08-3.643635 1.08-2.727272C1.08-1.876363 1.2-.556363 1.799999 .676363C2.454545 2.018181 3.392726 2.727272 3.501817 2.727272C3.567272 2.727272 3.610908 2.694545 3.610908 2.618181Z'/>
|
||||
<path id='g1-41' d='M3.152726-2.727272C3.152726-3.578181 3.032726-4.89818 2.432727-6.130907C1.778181-7.472725 .84-8.181816 .730909-8.181816C.665454-8.181816 .621818-8.13818 .621818-8.072725C.621818-8.039998 .621818-8.01818 .829091-7.821816C1.898181-6.741816 2.519999-5.007271 2.519999-2.727272C2.519999-.861818 2.116363 1.058182 .763636 2.432727C.621818 2.563636 .621818 2.585454 .621818 2.618181C.621818 2.683636 .665454 2.727272 .730909 2.727272C.84 2.727272 1.821818 1.985454 2.465454 .6C3.021817-.6 3.152726-1.810909 3.152726-2.727272Z'/>
|
||||
<path id='g1-50' d='M1.385454-.84L2.541817-1.963636C4.243635-3.46909 4.89818-4.058181 4.89818-5.149089C4.89818-6.392725 3.916363-7.265453 2.585454-7.265453C1.352727-7.265453 .545454-6.261816 .545454-5.290908C.545454-4.679999 1.090909-4.679999 1.123636-4.679999C1.309091-4.679999 1.690909-4.810908 1.690909-5.25818C1.690909-5.541817 1.494545-5.825453 1.112727-5.825453C1.025454-5.825453 1.003636-5.825453 .970909-5.814544C1.221818-6.523635 1.810909-6.927271 2.443636-6.927271C3.436363-6.927271 3.905453-6.043635 3.905453-5.149089C3.905453-4.276362 3.359999-3.414545 2.759999-2.738181L.665454-.403636C.545454-.283636 .545454-.261818 .545454 0H4.592726L4.89818-1.898181H4.625453C4.570908-1.570909 4.494544-1.090909 4.385453-.927272C4.30909-.84 3.58909-.84 3.34909-.84H1.385454Z'/>
|
||||
<path id='g1-70' d='M6.349089-7.41818H.36V-7.079998H.621818C1.461818-7.079998 1.483636-6.959998 1.483636-6.567271V-.850909C1.483636-.458182 1.461818-.338182 .621818-.338182H.36V0C.741818-.032727 1.592727-.032727 2.018181-.032727C2.465454-.032727 3.458181-.032727 3.850908 0V-.338182H3.490908C2.454545-.338182 2.454545-.48 2.454545-.861818V-3.545454H3.392726C4.439999-3.545454 4.54909-3.196363 4.54909-2.26909H4.821817V-5.159999H4.54909C4.54909-4.243635 4.439999-3.883635 3.392726-3.883635H2.454545V-6.643635C2.454545-7.003634 2.476363-7.079998 2.98909-7.079998H4.298181C5.934544-7.079998 6.207271-6.469089 6.381816-4.963635H6.654544L6.349089-7.41818Z'/>
|
||||
<path id='g1-71' d='M6.469089-.687273C6.610907-.447273 7.047271-.010909 7.167271-.010909C7.265453-.010909 7.265453-.098182 7.265453-.261818V-2.159999C7.265453-2.585454 7.309089-2.639999 8.01818-2.639999V-2.978181C7.614543-2.967272 7.014543-2.945454 6.687271-2.945454C6.250907-2.945454 5.323635-2.945454 4.930908-2.978181V-2.639999H5.279999C6.261816-2.639999 6.294544-2.519999 6.294544-2.116363V-1.418181C6.294544-.196364 4.90909-.098182 4.603635-.098182C3.894544-.098182 1.734545-.48 1.734545-3.730908C1.734545-6.992725 3.883635-7.352725 4.538181-7.352725C5.705453-7.352725 6.69818-6.370907 6.916362-4.767271C6.93818-4.614544 6.93818-4.581817 7.090907-4.581817C7.265453-4.581817 7.265453-4.614544 7.265453-4.843635V-7.429089C7.265453-7.614543 7.265453-7.690907 7.145453-7.690907C7.101816-7.690907 7.05818-7.690907 6.970907-7.559998L6.425453-6.752725C6.076362-7.101816 5.487271-7.690907 4.407271-7.690907C2.378181-7.690907 .610909-5.967271 .610909-3.730908S2.356363 .24 4.42909 .24C5.225453 .24 6.09818-.043636 6.469089-.687273Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -80.23 -67.46816)'>
|
||||
<use x='70.734745' y='68.742217' xlink:href='#g1-71'/>
|
||||
<use x='79.29537' y='68.742217' xlink:href='#g1-70'/>
|
||||
<use x='86.416599' y='68.742217' xlink:href='#g1-40'/>
|
||||
<use x='90.659037' y='68.742217' xlink:href='#g1-50'/>
|
||||
<use x='96.113602' y='64.783399' xlink:href='#g0-49'/>
|
||||
<use x='100.347785' y='64.783399' xlink:href='#g0-53'/>
|
||||
<use x='105.0801' y='68.742217' xlink:href='#g1-41'/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
27
assets/formula/GF2p15p17-inlined-dark.svg
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg fill="#fff" version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='62.092885pt' height='13.643491pt' viewBox='-.299738 -.251689 62.092885 13.643491'>
|
||||
<defs>
|
||||
<path id='g0-49' d='M2.502615-5.076961C2.502615-5.292154 2.486675-5.300125 2.271482-5.300125C1.944707-4.98132 1.522291-4.790037 .765131-4.790037V-4.527024C.980324-4.527024 1.41071-4.527024 1.872976-4.742217V-.653549C1.872976-.358655 1.849066-.263014 1.091905-.263014H.812951V0C1.139726-.02391 1.825156-.02391 2.183811-.02391S3.235866-.02391 3.56264 0V-.263014H3.283686C2.526526-.263014 2.502615-.358655 2.502615-.653549V-5.076961Z'/>
|
||||
<path id='g0-53' d='M1.115816-4.479203C1.219427-4.447323 1.538232-4.367621 1.872976-4.367621C2.86924-4.367621 3.474969-5.068991 3.474969-5.188543C3.474969-5.276214 3.419178-5.300125 3.379328-5.300125C3.363387-5.300125 3.347447-5.300125 3.275716-5.260274C2.964882-5.140722 2.598257-5.045081 2.16787-5.045081C1.697634-5.045081 1.307098-5.164633 1.060025-5.260274C.980324-5.300125 .964384-5.300125 .956413-5.300125C.852802-5.300125 .852802-5.212453 .852802-5.068991V-2.733748C.852802-2.590286 .852802-2.494645 .980324-2.494645C1.044085-2.494645 1.067995-2.526526 1.107846-2.590286C1.203487-2.709838 1.506351-3.116314 2.183811-3.116314C2.630137-3.116314 2.84533-2.749689 2.917061-2.598257C3.052553-2.311333 3.068493-1.944707 3.068493-1.633873C3.068493-1.338979 3.060523-.908593 2.83736-.557908C2.685928-.318804 2.367123-.071731 1.944707-.071731C1.42665-.071731 .916563-.398506 .73325-.916563C.757161-.908593 .804981-.908593 .812951-.908593C1.036115-.908593 1.211457-1.052055 1.211457-1.299128C1.211457-1.594022 .980324-1.697634 .820922-1.697634C.67746-1.697634 .422416-1.617933 .422416-1.275218C.422416-.557908 1.044085 .167372 1.960648 .167372C2.956912 .167372 3.801743-.605729 3.801743-1.594022C3.801743-2.518555 3.132254-3.339477 2.191781-3.339477C1.793275-3.339477 1.41868-3.211955 1.115816-2.940971V-4.479203Z'/>
|
||||
<path id='g0-55' d='M4.032877-4.853798C4.104608-4.941469 4.104608-4.95741 4.104608-5.132752H2.080199C1.880946-5.132752 1.633873-5.140722 1.43462-5.156663C1.020174-5.188543 1.012204-5.260274 .988294-5.387796H.74122L.470237-3.706102H.71731C.73325-3.825654 .820922-4.375592 .932503-4.439352C1.020174-4.479203 1.617933-4.479203 1.737484-4.479203H3.427148L2.606227-3.379328C1.697634-2.16787 1.506351-.908593 1.506351-.278954C1.506351-.199253 1.506351 .167372 1.880946 .167372S2.255542-.191283 2.255542-.286924V-.669489C2.255542-1.817186 2.446824-2.757659 2.83736-3.275716L4.032877-4.853798Z'/>
|
||||
<path id='g1-40' d='M3.610908 2.618181C3.610908 2.585454 3.610908 2.563636 3.425454 2.378181C2.061818 1.003636 1.712727-1.058182 1.712727-2.727272C1.712727-4.625453 2.127272-6.523635 3.46909-7.887271C3.610908-8.01818 3.610908-8.039998 3.610908-8.072725C3.610908-8.149089 3.567272-8.181816 3.501817-8.181816C3.392726-8.181816 2.410908-7.439998 1.767272-6.054544C1.210909-4.854544 1.08-3.643635 1.08-2.727272C1.08-1.876363 1.2-.556363 1.799999 .676363C2.454545 2.018181 3.392726 2.727272 3.501817 2.727272C3.567272 2.727272 3.610908 2.694545 3.610908 2.618181Z'/>
|
||||
<path id='g1-41' d='M3.152726-2.727272C3.152726-3.578181 3.032726-4.89818 2.432727-6.130907C1.778181-7.472725 .84-8.181816 .730909-8.181816C.665454-8.181816 .621818-8.13818 .621818-8.072725C.621818-8.039998 .621818-8.01818 .829091-7.821816C1.898181-6.741816 2.519999-5.007271 2.519999-2.727272C2.519999-.861818 2.116363 1.058182 .763636 2.432727C.621818 2.563636 .621818 2.585454 .621818 2.618181C.621818 2.683636 .665454 2.727272 .730909 2.727272C.84 2.727272 1.821818 1.985454 2.465454 .6C3.021817-.6 3.152726-1.810909 3.152726-2.727272Z'/>
|
||||
<path id='g1-50' d='M1.385454-.84L2.541817-1.963636C4.243635-3.46909 4.89818-4.058181 4.89818-5.149089C4.89818-6.392725 3.916363-7.265453 2.585454-7.265453C1.352727-7.265453 .545454-6.261816 .545454-5.290908C.545454-4.679999 1.090909-4.679999 1.123636-4.679999C1.309091-4.679999 1.690909-4.810908 1.690909-5.25818C1.690909-5.541817 1.494545-5.825453 1.112727-5.825453C1.025454-5.825453 1.003636-5.825453 .970909-5.814544C1.221818-6.523635 1.810909-6.927271 2.443636-6.927271C3.436363-6.927271 3.905453-6.043635 3.905453-5.149089C3.905453-4.276362 3.359999-3.414545 2.759999-2.738181L.665454-.403636C.545454-.283636 .545454-.261818 .545454 0H4.592726L4.89818-1.898181H4.625453C4.570908-1.570909 4.494544-1.090909 4.385453-.927272C4.30909-.84 3.58909-.84 3.34909-.84H1.385454Z'/>
|
||||
<path id='g1-70' d='M6.349089-7.41818H.36V-7.079998H.621818C1.461818-7.079998 1.483636-6.959998 1.483636-6.567271V-.850909C1.483636-.458182 1.461818-.338182 .621818-.338182H.36V0C.741818-.032727 1.592727-.032727 2.018181-.032727C2.465454-.032727 3.458181-.032727 3.850908 0V-.338182H3.490908C2.454545-.338182 2.454545-.48 2.454545-.861818V-3.545454H3.392726C4.439999-3.545454 4.54909-3.196363 4.54909-2.26909H4.821817V-5.159999H4.54909C4.54909-4.243635 4.439999-3.883635 3.392726-3.883635H2.454545V-6.643635C2.454545-7.003634 2.476363-7.079998 2.98909-7.079998H4.298181C5.934544-7.079998 6.207271-6.469089 6.381816-4.963635H6.654544L6.349089-7.41818Z'/>
|
||||
<path id='g1-71' d='M6.469089-.687273C6.610907-.447273 7.047271-.010909 7.167271-.010909C7.265453-.010909 7.265453-.098182 7.265453-.261818V-2.159999C7.265453-2.585454 7.309089-2.639999 8.01818-2.639999V-2.978181C7.614543-2.967272 7.014543-2.945454 6.687271-2.945454C6.250907-2.945454 5.323635-2.945454 4.930908-2.978181V-2.639999H5.279999C6.261816-2.639999 6.294544-2.519999 6.294544-2.116363V-1.418181C6.294544-.196364 4.90909-.098182 4.603635-.098182C3.894544-.098182 1.734545-.48 1.734545-3.730908C1.734545-6.992725 3.883635-7.352725 4.538181-7.352725C5.705453-7.352725 6.69818-6.370907 6.916362-4.767271C6.93818-4.614544 6.93818-4.581817 7.090907-4.581817C7.265453-4.581817 7.265453-4.614544 7.265453-4.843635V-7.429089C7.265453-7.614543 7.265453-7.690907 7.145453-7.690907C7.101816-7.690907 7.05818-7.690907 6.970907-7.559998L6.425453-6.752725C6.076362-7.101816 5.487271-7.690907 4.407271-7.690907C2.378181-7.690907 .610909-5.967271 .610909-3.730908S2.356363 .24 4.42909 .24C5.225453 .24 6.09818-.043636 6.469089-.687273Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -80.23 -67.36872)'>
|
||||
<use x='70.734745' y='68.742217' xlink:href='#g1-71'/>
|
||||
<use x='79.29537' y='68.742217' xlink:href='#g1-70'/>
|
||||
<use x='86.416599' y='68.742217' xlink:href='#g1-40'/>
|
||||
<use x='90.659037' y='68.742217' xlink:href='#g1-40'/>
|
||||
<use x='94.901476' y='68.742217' xlink:href='#g1-50'/>
|
||||
<use x='100.35604' y='64.783399' xlink:href='#g0-49'/>
|
||||
<use x='104.590223' y='64.783399' xlink:href='#g0-53'/>
|
||||
<use x='109.322538' y='68.742217' xlink:href='#g1-41'/>
|
||||
<use x='113.564976' y='64.783399' xlink:href='#g0-49'/>
|
||||
<use x='117.799159' y='64.783399' xlink:href='#g0-55'/>
|
||||
<use x='122.531474' y='68.742217' xlink:href='#g1-41'/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.7 KiB |
27
assets/formula/GF2p15p17-inlined-light.svg
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='62.092885pt' height='13.643491pt' viewBox='-.299738 -.251689 62.092885 13.643491'>
|
||||
<defs>
|
||||
<path id='g0-49' d='M2.502615-5.076961C2.502615-5.292154 2.486675-5.300125 2.271482-5.300125C1.944707-4.98132 1.522291-4.790037 .765131-4.790037V-4.527024C.980324-4.527024 1.41071-4.527024 1.872976-4.742217V-.653549C1.872976-.358655 1.849066-.263014 1.091905-.263014H.812951V0C1.139726-.02391 1.825156-.02391 2.183811-.02391S3.235866-.02391 3.56264 0V-.263014H3.283686C2.526526-.263014 2.502615-.358655 2.502615-.653549V-5.076961Z'/>
|
||||
<path id='g0-53' d='M1.115816-4.479203C1.219427-4.447323 1.538232-4.367621 1.872976-4.367621C2.86924-4.367621 3.474969-5.068991 3.474969-5.188543C3.474969-5.276214 3.419178-5.300125 3.379328-5.300125C3.363387-5.300125 3.347447-5.300125 3.275716-5.260274C2.964882-5.140722 2.598257-5.045081 2.16787-5.045081C1.697634-5.045081 1.307098-5.164633 1.060025-5.260274C.980324-5.300125 .964384-5.300125 .956413-5.300125C.852802-5.300125 .852802-5.212453 .852802-5.068991V-2.733748C.852802-2.590286 .852802-2.494645 .980324-2.494645C1.044085-2.494645 1.067995-2.526526 1.107846-2.590286C1.203487-2.709838 1.506351-3.116314 2.183811-3.116314C2.630137-3.116314 2.84533-2.749689 2.917061-2.598257C3.052553-2.311333 3.068493-1.944707 3.068493-1.633873C3.068493-1.338979 3.060523-.908593 2.83736-.557908C2.685928-.318804 2.367123-.071731 1.944707-.071731C1.42665-.071731 .916563-.398506 .73325-.916563C.757161-.908593 .804981-.908593 .812951-.908593C1.036115-.908593 1.211457-1.052055 1.211457-1.299128C1.211457-1.594022 .980324-1.697634 .820922-1.697634C.67746-1.697634 .422416-1.617933 .422416-1.275218C.422416-.557908 1.044085 .167372 1.960648 .167372C2.956912 .167372 3.801743-.605729 3.801743-1.594022C3.801743-2.518555 3.132254-3.339477 2.191781-3.339477C1.793275-3.339477 1.41868-3.211955 1.115816-2.940971V-4.479203Z'/>
|
||||
<path id='g0-55' d='M4.032877-4.853798C4.104608-4.941469 4.104608-4.95741 4.104608-5.132752H2.080199C1.880946-5.132752 1.633873-5.140722 1.43462-5.156663C1.020174-5.188543 1.012204-5.260274 .988294-5.387796H.74122L.470237-3.706102H.71731C.73325-3.825654 .820922-4.375592 .932503-4.439352C1.020174-4.479203 1.617933-4.479203 1.737484-4.479203H3.427148L2.606227-3.379328C1.697634-2.16787 1.506351-.908593 1.506351-.278954C1.506351-.199253 1.506351 .167372 1.880946 .167372S2.255542-.191283 2.255542-.286924V-.669489C2.255542-1.817186 2.446824-2.757659 2.83736-3.275716L4.032877-4.853798Z'/>
|
||||
<path id='g1-40' d='M3.610908 2.618181C3.610908 2.585454 3.610908 2.563636 3.425454 2.378181C2.061818 1.003636 1.712727-1.058182 1.712727-2.727272C1.712727-4.625453 2.127272-6.523635 3.46909-7.887271C3.610908-8.01818 3.610908-8.039998 3.610908-8.072725C3.610908-8.149089 3.567272-8.181816 3.501817-8.181816C3.392726-8.181816 2.410908-7.439998 1.767272-6.054544C1.210909-4.854544 1.08-3.643635 1.08-2.727272C1.08-1.876363 1.2-.556363 1.799999 .676363C2.454545 2.018181 3.392726 2.727272 3.501817 2.727272C3.567272 2.727272 3.610908 2.694545 3.610908 2.618181Z'/>
|
||||
<path id='g1-41' d='M3.152726-2.727272C3.152726-3.578181 3.032726-4.89818 2.432727-6.130907C1.778181-7.472725 .84-8.181816 .730909-8.181816C.665454-8.181816 .621818-8.13818 .621818-8.072725C.621818-8.039998 .621818-8.01818 .829091-7.821816C1.898181-6.741816 2.519999-5.007271 2.519999-2.727272C2.519999-.861818 2.116363 1.058182 .763636 2.432727C.621818 2.563636 .621818 2.585454 .621818 2.618181C.621818 2.683636 .665454 2.727272 .730909 2.727272C.84 2.727272 1.821818 1.985454 2.465454 .6C3.021817-.6 3.152726-1.810909 3.152726-2.727272Z'/>
|
||||
<path id='g1-50' d='M1.385454-.84L2.541817-1.963636C4.243635-3.46909 4.89818-4.058181 4.89818-5.149089C4.89818-6.392725 3.916363-7.265453 2.585454-7.265453C1.352727-7.265453 .545454-6.261816 .545454-5.290908C.545454-4.679999 1.090909-4.679999 1.123636-4.679999C1.309091-4.679999 1.690909-4.810908 1.690909-5.25818C1.690909-5.541817 1.494545-5.825453 1.112727-5.825453C1.025454-5.825453 1.003636-5.825453 .970909-5.814544C1.221818-6.523635 1.810909-6.927271 2.443636-6.927271C3.436363-6.927271 3.905453-6.043635 3.905453-5.149089C3.905453-4.276362 3.359999-3.414545 2.759999-2.738181L.665454-.403636C.545454-.283636 .545454-.261818 .545454 0H4.592726L4.89818-1.898181H4.625453C4.570908-1.570909 4.494544-1.090909 4.385453-.927272C4.30909-.84 3.58909-.84 3.34909-.84H1.385454Z'/>
|
||||
<path id='g1-70' d='M6.349089-7.41818H.36V-7.079998H.621818C1.461818-7.079998 1.483636-6.959998 1.483636-6.567271V-.850909C1.483636-.458182 1.461818-.338182 .621818-.338182H.36V0C.741818-.032727 1.592727-.032727 2.018181-.032727C2.465454-.032727 3.458181-.032727 3.850908 0V-.338182H3.490908C2.454545-.338182 2.454545-.48 2.454545-.861818V-3.545454H3.392726C4.439999-3.545454 4.54909-3.196363 4.54909-2.26909H4.821817V-5.159999H4.54909C4.54909-4.243635 4.439999-3.883635 3.392726-3.883635H2.454545V-6.643635C2.454545-7.003634 2.476363-7.079998 2.98909-7.079998H4.298181C5.934544-7.079998 6.207271-6.469089 6.381816-4.963635H6.654544L6.349089-7.41818Z'/>
|
||||
<path id='g1-71' d='M6.469089-.687273C6.610907-.447273 7.047271-.010909 7.167271-.010909C7.265453-.010909 7.265453-.098182 7.265453-.261818V-2.159999C7.265453-2.585454 7.309089-2.639999 8.01818-2.639999V-2.978181C7.614543-2.967272 7.014543-2.945454 6.687271-2.945454C6.250907-2.945454 5.323635-2.945454 4.930908-2.978181V-2.639999H5.279999C6.261816-2.639999 6.294544-2.519999 6.294544-2.116363V-1.418181C6.294544-.196364 4.90909-.098182 4.603635-.098182C3.894544-.098182 1.734545-.48 1.734545-3.730908C1.734545-6.992725 3.883635-7.352725 4.538181-7.352725C5.705453-7.352725 6.69818-6.370907 6.916362-4.767271C6.93818-4.614544 6.93818-4.581817 7.090907-4.581817C7.265453-4.581817 7.265453-4.614544 7.265453-4.843635V-7.429089C7.265453-7.614543 7.265453-7.690907 7.145453-7.690907C7.101816-7.690907 7.05818-7.690907 6.970907-7.559998L6.425453-6.752725C6.076362-7.101816 5.487271-7.690907 4.407271-7.690907C2.378181-7.690907 .610909-5.967271 .610909-3.730908S2.356363 .24 4.42909 .24C5.225453 .24 6.09818-.043636 6.469089-.687273Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -80.23 -67.36872)'>
|
||||
<use x='70.734745' y='68.742217' xlink:href='#g1-71'/>
|
||||
<use x='79.29537' y='68.742217' xlink:href='#g1-70'/>
|
||||
<use x='86.416599' y='68.742217' xlink:href='#g1-40'/>
|
||||
<use x='90.659037' y='68.742217' xlink:href='#g1-40'/>
|
||||
<use x='94.901476' y='68.742217' xlink:href='#g1-50'/>
|
||||
<use x='100.35604' y='64.783399' xlink:href='#g0-49'/>
|
||||
<use x='104.590223' y='64.783399' xlink:href='#g0-53'/>
|
||||
<use x='109.322538' y='68.742217' xlink:href='#g1-41'/>
|
||||
<use x='113.564976' y='64.783399' xlink:href='#g0-49'/>
|
||||
<use x='117.799159' y='64.783399' xlink:href='#g0-55'/>
|
||||
<use x='122.531474' y='68.742217' xlink:href='#g1-41'/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.7 KiB |
1
assets/formula/Image display.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
https://stackoverflow.com/questions/65413712/changing-readme-md-image-display-conditional-to-github-light-mode-dark-mode
|
||||