digraph situation {
	rankdir=LR;
	a [ label="Alice" shape="none" ];
	b [ label="Bob" shape="none" ];
	o [ label="Oscar" shape="none" ];
	i [ label="unsicherer\nKanal" ];
	e [ label="e" shape="box" ];
	d [ label="d" shape="box" ];
	g [ label="Gen" shape="box"];
	1 [ style="invisible" shape="point" width=0 ];
	2 [ style="invisible" shape="point" width=0 ];
	3 [ style="invisible" shape="point" width=0 ];
	4 [ style="invisible" shape="point" width=0 ];

	{
		rank=same;
		a;
		g;
	}

	{
		rank=same;
		e;
		1;
	}

	{
		rank=same;
		d;
		2;
	}

	{
		rank=same;
		i; o;
	}

	a -> e [ label="x" ];
	e -> i [ label="y" ];
	i -> d [ label="y" ];
	d -> b [ label="x" ];

	g -> 1 [ arrowhead="none" ];
	1 -> e [ label="k" ];
	1 -> 3 [ arrowhead="none" ];
	3 -> 4 [ arrowhead="none"; penwidth=10; label="sicherer Kanal\n " ];
	4 -> 2 [ arrowhead="none" ];
	2 -> d [ label="k" ];

	i -> o [ label="y" ];
}
