Skip to content

Lattice module

General lattice functions

pqlattice.lattice.volume

volume(lattice_basis: SquareMatrix) -> int

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required

Returns:

Type Description
int

description

pqlattice.lattice.rank

rank(lattice_basis: SquareMatrix) -> int

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required

Returns:

Type Description
int

description

pqlattice.lattice.hadamard_ratio

hadamard_ratio(lattice_basis: SquareMatrix) -> float

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required

Returns:

Type Description
float

description

pqlattice.lattice.discriminant

discriminant(lattice_basis: SquareMatrix) -> int

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required

Returns:

Type Description
int

description

pqlattice.lattice.gaussian_heuristic

gaussian_heuristic(lattice_basis: SquareMatrix) -> float

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required

Returns:

Type Description
float

description

pqlattice.lattice.is_lll_reduced

is_lll_reduced(
    lattice_basis: SquareMatrix, delta: float = 0.99
) -> bool

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required
delta float

description, by default 0.99

0.99

Returns:

Type Description
bool

description

pqlattice.lattice.is_size_reduced

is_size_reduced(lattice_basis: SquareMatrix) -> bool

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required

Returns:

Type Description
bool

description


Lattice reduction algorithms

pqlattice.lattice.gso

gso(B: Matrix) -> tuple[Matrix, SquareMatrix]

summary

Parameters:

Name Type Description Default
B Matrix

description

required

Returns:

Type Description
tuple[Matrix, SquareMatrix]

description

pqlattice.lattice.lll

lll(
    lattice_basis: SquareMatrix, delta: float = 0.99
) -> SquareMatrix

pqlattice.lattice.bkz

bkz(
    lattice_basis: SquareMatrix,
    block_size: int = 10,
    delta: float = 0.99,
) -> SquareMatrix

pqlattice.lattice.hkz

hkz(
    lattice_basis: SquareMatrix, delta: float = 0.99
) -> SquareMatrix

pqlattice.lattice.glr_2dim

glr_2dim(lattice_basis: SquareMatrix) -> SquareMatrix

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required

Returns:

Type Description
SquareMatrix

description

Raises:

Type Description
ValueError

description


SVP and CVP

pqlattice.lattice.shortest_vector

shortest_vector(lattice_basis: SquareMatrix) -> Vector

pqlattice.lattice.babai_closest_vector

babai_closest_vector(
    lattice_basis: SquareMatrix, target_vector: Vector
) -> Vector

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required
target_vector Vector

description

required

Returns:

Type Description
Vector

description

pqlattice.lattice.babai_nearest_plane

babai_nearest_plane(
    lattice_basis: SquareMatrix, target_vector: Vector
) -> Vector

summary

Parameters:

Name Type Description Default
lattice_basis SquareMatrix

description

required
target_vector Vector

description

required

Returns:

Type Description
Vector

description


Lattice embeddings

pqlattice.lattice.embeddings.sis_basis

sis_basis(A: Matrix, q: int) -> SquareMatrix

lattice: L = { x | Ax = 0 mod q }

Parameters:

Name Type Description Default
A Matrix

description

required
q int

description

required

Returns:

Type Description
SquareMatrix

description

pqlattice.lattice.embeddings.lwe_basis

lwe_basis(A: Matrix, q: int) -> SquareMatrix

lattice: L = { y | y = xA mod q }

Parameters:

Name Type Description Default
A Matrix

description

required
q int

description

required

Returns:

Type Description
SquareMatrix

description

pqlattice.lattice.embeddings.kannan

kannan(A: Matrix, b: Vector, q: int) -> SquareMatrix

summary

Parameters:

Name Type Description Default
A Matrix

description

required
b Vector

description

required
q int

description

required

Returns:

Type Description
SquareMatrix

description

pqlattice.lattice.embeddings.bai_galbraith

bai_galbraith(
    A: Matrix, b: Vector, q: int, M: int
) -> SquareMatrix

summary

Parameters:

Name Type Description Default
A Matrix

description

required
b Vector

description

required
q int

description

required
M int

description

required

Returns:

Type Description
SquareMatrix

description

pqlattice.lattice.embeddings.subset_sum

subset_sum(sequence: Vector, S: int) -> SquareMatrix

summary

Parameters:

Name Type Description Default
sequence Vector

description

required
S int

description

required

Returns:

Type Description
SquareMatrix

description

pqlattice.lattice.embeddings.ntru

ntru(quotient: Vector, q: int, h: Vector) -> SquareMatrix

construct the ntru lattice basis

Parameters:

Name Type Description Default
quotient Vector

description

required
q int

description

required
h Vector

description

required

Returns:

Type Description
SquareMatrix

description